ntfs-3g_ntfsprogs 빌드해 보신분 계신가요??

searchin19의 이미지

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 파티션의 파일과 삭제 파일 정보를 읽을 수 없네요.

이에 대해 조언을 해주실 분 계신가요??

익명 사용자의 이미지

혹시 관리자 권한으로 실행시켜 보셨나요? 그리고 오류 메시지가 있다면 뭐라고 하나요?

만약 단순히 파일 복구가 목적이라면 그냥 리눅스 머신에 하드를 잠시 연결시키는 것도 나쁜 방법은 아니라고 생각합니다.

searchin19의 이미지

윈도우 관리자 권한으로 실행한적은 없습니다만, 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/wiki/TestDisk_Compilation

http://www.cgsecurity.org/wiki/Compile_Win

http://www.cgsecurity.org/wiki/TestDisk_Compilation#How_to_compile_ntfsprogs

Get the latest version of ntfsprogs from 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.

SetFilePointerEx 문제는 아닌거 같고, make 했을 때화 make libs 했을 때의 차이가 아닐까 짐작해 봅니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.