TestDisk Compilation
From CGSecurity
This document explains how to compile TestDisk and PhotoRec.
Contents |
Libraries
- libncurses - Required, TestDisk and PhotoRec use a text user interface, Ncurses library and development files must be available.
- Ext2fs library - Optional, used by TestDisk to list files from ext2/ext3 partition
- EWF library - Optional, TestDisk and PhotoRec use it to access Expert Witness Compression Format files (ie Encase files)
- Jpeg library - Optional, used by PhotoRec to improved JPEG recovery rate
- NTFS library - Optional, used by TestDisk to list files from NTFS partition
- Reiserfs library - Optional, used by TestDisk to list files from reiserfs partition
Ext2fs Library
Ext2fs library is usually installed with your OS, so you don't need to compile it yourself. Otherwise get latest version of e2fsprogs at http://e2fsprogs.sourceforge.net
tar xzf e2fsprogs-1.38.tgz cd e2fsprogs-1.38 ./configure --with-cc=gcc make libs make install
EWF library
EWF library source code can be downloaded from https://www.uitwisselplatform.nl/projects/libewf/.
tar xzf libewf-beta-20070408.tar.gz cd libewf-20070408 ./configure make libs make install
Jpeg library
Libjpeg library is usually installed with your OS, so you don't need to compile it yourself.
Otherwise download libjpeg source from ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
tar xzf jpegsrc.v6b.tar.gz cd jpeg-6b ./configure --enable-shared --enable-static make sudo make install
Mac OS X 10.3 ships with GNU libtool, albeit under a slightly different name, glibtool. You may have to run
ln -s `which glibtool` ./libtool
How to compile ntfsprogs
Get the latest version of ntfsprogs from http://linux-ntfs.sf.net/
tar xzf ntfsprogs-1.13.0.tar.gz cd ntfsprogs-1.13.0 ./configure make libs make install
To get a working version under NT 4, use configure --disable-default-device-io-ops
because SetFilePointerEx used by win32_io.c is not exported by NT 4 DLL.
ReiserFS Library
Get progsreiserfs-0.3.1-rc8.tar.gz at http://reiserfs.osdn.org.ua/
tar xzf progsreiserfs-*.tar.gz cd progreiserfs-0.3.1-rc8 ./configure --disable-nls make make install
How to compile TestDisk
Standard method
To compile TestDisk and PhotoRec, run
./configure make
You may need to specify parameters to configure, see configure --help.
Example:
./configure --with-reiserfs-lib=/home/kmaster/perso/testdisk-5.2/progsreiserfs-0.3.1-rc8/libreiserfs/.libs/ --with-reiserfs-includes=/home/kmaster/perso/testdisk-5.2/progsreiserfs-0.3.1-rc8/include/ --with-ntfs-lib=/home/kmaster/perso/testdisk-5.2/ntfsprogs-1.8.5/libntfs/.libs/ --with-ntfs-includes=/home/kmaster/perso/testdisk-5.2/ntfsprogs-1.8.5/include/ --with-ext2fs-lib=/home/kmaster/perso/testdisk-5.2/e2fsprogs-1.34/lib --with-ext2fs-includes=/home/kmaster/perso/testdisk-5.2/e2fsprogs-1.34/lib
Static version
If you need to run the binary on systems that lack one of the previous libraries, create a static binary with
make static
Static compressed binary
If you need a small binary for binary distribution, get the UPX packer at http://upx.sourceforge.net/ and run
strip src/testdisk src/photorec upx src/testdisk src/photorec
Note that Linux UPX needs to decompress program files before running, and it will request some space on /tmp to do this. The running executable must be allowed in this directory (mount -o remount,exec /tmp).
OS Notes
Please read notes about your OS:
Cross-compilation
- Linux to PowerPC Darwin/MacOSX cross-compiler
Return to TestDisk page