ntfs-3g_ntfsprogs 빌드해 보신분 계신가요??
글쓴이: searchin19 / 작성시간: 목, 2016/05/19 - 9:16오전
Cygwin 을 이용해 윈도우에서 TestDisk (삭제 파일 복구 기능의 오픈소스) 의 빌드를 시도하고 있습니다.
http://www.cgsecurity.org/ 에서 바이너리를 이용해 윈도우에서의 동작을 테스트하고 이를 필요에 따라 수정하기 위해 빌드 환경을
구축하려 하는데요.
그런데 TestDisk 가 ntfsprogs 에 의존성을 가지고 있습니다
그래서, Cygwin 에서 ntfs-3g_ntfsprogs-2016.2.22 의 빌드를 시도하였습니다.
하지만 [ntfs-3g can be built for Linux, FreeBSD, Mac OS X, NetBSD, and Solaris only] 라는 메시지가 뜨더군요.
어쩔 수 없이, 우분투 개발 서버에서 ntfs-3g_ntfsprogs-2016.2.22 의 빌드를 시도하였습니다. 사용한 명령은 다음과 같습니다.
./configure CFLAGS=-D_FILE_OFFSET_BITS=64 --prefix=/home/torrent/TEMP-3G CFLAGS=-I/usr/include CFLAGS=-L/usr/lib CFLAGS=-static --target=i686-pc-linux
2기가 이상 파일 지원, 아웃풋이 위치할 폴더, 참조 헤더 경로, 참조 라이브러리 경로, 라이브러리는 static 으로 참조, 이를 사용할 시스템
은 Cygwin 으로 지정하기 위해 위와 같이 옵션을 주었습니다.
이경우 빌드는 성공하고, 아웃풋이 TEMP-3G 폴더에 생성됩니다.
그 파일들을 개발 PC 로 다운로드 받아 Cygwin 에서 빌드되는 TestDisk 에 연결하였습니다. 이 때 사용한 명령은 다음과 같습니다.
./configure CFLAGS=-D_FILE_OFFSET_BITS=64 CFLAGS=-static \ --with-ewf-lib=/usr/lib --with-ewf-includes=/usr/include/ CFLAGS=-lewf \ --with-ext2fs-lib=/usr/lib --with-ext2fs-includes=/usr/include/ext2fs CFLAGS=-lext2fs \ --with-ntfs-lib=/home/KimSumin/TEMP-3G/lib --with-ntfs-includes=/home/KimSumin/TEMP-3G/include/ntfs-3g CFLAGS=-lntfs-3g \ --with-ntfs3g-lib=/home/KimSumin/TEMP-3G/lib --with-ntfs3g-includes=/home/KimSumin/TEMP-3G/include/ntfs-3g CFLAGS=-lntfs-3g \ --without-reiserfs
역시 2기가 이상 파일 지원, 라이브러리는 static 참조, TestDisk 가 참조하는 ewf, ext2fs, ntfs 의 헤더, 라이브러리 경로와 참조해야
할 라이브러리명, 그리고 사용하지 않을 라이브러리까지 지정하기 위한 옵션입니다.
빌드는 성공했고, TestDisk.exe 를 얻어낼 수 있었습니다. 하지만 이 파일으로는 NTFS 파티션의 파일과 삭제 파일 정보를 읽을 수 없네요.
이에 대해 조언을 해주실 분 계신가요??
Forums:
혹시 관리자 권한으로 실행시켜 보셨나요? 그리고 오류
혹시 관리자 권한으로 실행시켜 보셨나요? 그리고 오류 메시지가 있다면 뭐라고 하나요?
만약 단순히 파일 복구가 목적이라면 그냥 리눅스 머신에 하드를 잠시 연결시키는 것도 나쁜 방법은 아니라고 생각합니다.
윈도우 관리자 권한으로 실행한적은 없습니다만, EWF
윈도우 관리자 권한으로 실행한적은 없습니다만, EWF 이미지에 담긴 FAT32 와 Ext2 파티션의 파일, 삭제 파일을 읽을
수 있는것을 볼 때 관리자 권한과는 무관하다고 생각됩니다.
ntfs-3g_ntfsprogs 빌드를 Cygwin 에서 빌드하려 할 때나, 리눅스에서 --target=i686-pc-cygwin 을 주었을 때 발생하는
메시지는
ntfs-3g can be built for Linux, FreeBSD, Mac OS X, NetBSD, and Solaris only
와ntfsmount can be built only under Linux and FreeBSD
로 비슷한 내용입니다.
--target=i686-pc-linux 를 주었을 때는 별다른 에러 메시지 없이 실행 시 그저 NTFS 를 읽지 못한다고 뜹니다.
개인적으로 삭제 파일을 복구하려고 한다면야 굳이 빌드하지 않아도 방법이 많겠지만, 제 경우는 EWF 이미지에 담긴
불특정 파일 시스템에서 파일, 삭제 파일을 빼내야 하는 경우라 말씀하신 방법은 사용할 수 없네요.
지금은 Cygwin 을 포기하고 리눅스에서 TestDisk 를 크로스 컴파일해야 하나....하고 고민중입니다.
http://www.cgsecurity.org/wik
http://www.cgsecurity.org/wiki/TestDisk_Compilation
http://www.cgsecurity.org/wiki/Compile_Win
http://www.cgsecurity.org/wiki/TestDisk_Compilation#How_to_compile_ntfsprogs
SetFilePointerEx 문제는 아닌거 같고, make 했을 때화 make libs 했을 때의 차이가 아닐까 짐작해 봅니다.
댓글 달기