2011-03-08 9 views
0

나는 ext2 파티션을 읽을 수있는 윈도우 용 리더 프로그램을 작성해야한다. 나는의 수퍼 블록을 읽을 때ext2 "이미지"파일과 실제 ext2 장치

내 테스트를 위해

나는 EXT2로 포맷 된 드라이브와 나는 어떤 이유에서 mkfs에게 (산을 수행하고 리눅스에서 잘 작동 파일)

을 사용하여 만든 파일을 사용하고 있습니다 드라이브 (실제 하나) 나는 모든 올바른 메타 데이터 (즉, 블록 크기, inode 수 등)를 얻지 만 파일에 똑같은 일을하는 것은 나쁜 결과를 리턴한다.

2 사이의 차이점은 무엇입니까?

\\ \ X : 을 사용하여 드라이브를 열고 mkfs를 사용하여 파일을 만듭니다.

답변

1

파티션의 ext2와 사이에는 차이가 없어야하며 파일 내에 저장되어야합니다 (실제로는 확인하지 않았습니다.). 그러나 IIRC에서 기본 슈퍼 블록의 오프셋은 베어 디스크 (예 : /dev/sda1 대신 /dev/sda)에 설치하는 경우 1024 대신 2048입니다. 이것은 MBR과 다른 쓰레기를 수용하는 것입니다. (필자는 지금 스키밍에서 문서를 찾을 수 없지만이 문제는 내가 만난 일로 마음이 찢어져 있습니다.) 그러나 맨손으로 드라이브에 설치하는 것은 다소 드문 일이기 때문에 이것이 문제가 아닌지 의심 스럽습니다.

필자는 몇 년 전 ext2 유틸리티를 몇 달 전에 썼고 손으로 쓰기 시작한 후에 헤더/라이브러리/etc와 함께 제공되는 Ted Ts'o (ext2 파일 시스템 생성자)의 e2fsprogs을 사용하도록 전환했습니다. 더 유연하고 신뢰할 수있는 방식으로 모든 작업을 수행 할 수 있습니다.

오프셋 번호 0x438을 마법 번호 0xEF53의 파일/파티션으로 확인하고 전체 슈퍼 블록을 가져 오기 전에 ext2/3 파일 시스템이 아니라고 생각하고 정신 테스트로 간주 할 수 있습니다 .

다음은 도움이 될만한 문서입니다. http://www.nongnu.org/ext2-doc/ext2.html