ext2/ext3/ext4에 파일이 어떻게 배치되어 있나요?

ext2/ext3/ext4에 파일이 어떻게 배치되어 있나요?

며칠 전 ext4 형식 플래시 카드의 모든 메타데이터를 덮어썼습니다.

이제 어떻게 이런 일이 일어났는지 추측해 보겠습니다. 이것은 순수한 추측입니다. 다른 카드를 사용한 직후에 이런 일이 일어났습니다. 이제 카드의 볼륨 레이블이 다른 카드와 동일합니다. 그래서 다른 카드를 뽑았을 때 다른 카드를 동기화/마운트 해제하지 못한 것으로 의심됩니다. 카드 리더기는 카드를 뽑을 때 시스템에 제대로 알리지 못하여 다음 시스템에서 동기화를 생성했지만 시스템은 내가 카드를 변경했다는 사실을 알지 못했으며 메타데이터를 덮어썼습니다.

이런 일이 발생했을 때 제가 가장 먼저 한 일은 dd를 사용하여 이미지를 만드는 것이었습니다. 두 번째로 한 일은 이미지를 읽기 전용으로 만드는 것이었습니다. 세 번째로 제가 한 일은 쓰기 가능한 이미지 복사본을 만드는 것이었습니다.

나는 일부 항목을 복구했지만 전부는 복구하지 못한 photorec을 발견했습니다. 나는 이것이 비파괴적인 이유 중 하나라고 생각합니다.

복구된 파일 중 일부는 텍스트이기 때문에 photorec이 파일 형식에 대한 최소한의 정보를 사용하는 것으로 의심됩니다.

카드에서 다른 파일을 복구하려면 ext2에서 파일이 어떻게 배치되어 있는지 알아야 합니다. 기본은 파일이 블록으로 나뉘어 섹터에 기록되고 다음 섹터를 찾는 방법에 대한 정보가 현재 섹터에 기록된다는 것입니다.

진행하기 위해 필요한 것은 다음 섹터에 대한 포인터가 어떻게 작성되는지에 대한 정보입니다.

추신: photorec 코드를 읽고 있지만 읽는 데 몇 가지 문제가 있습니다. 나인지 아니면 코드가 보기 흉한지 모르겠습니다.

PPS: ext 파일 시스템이 어떻게 배치되는지에 대한 정보를 찾았지만 기본 파일 레이아웃 정보를 찾을 수 없는 것 같습니다.

답변1

PhotoRec은 알려진 파일 형식과 유사한 연속된 바이트 청크를 검색하여 디스크(또는 디스크 이미지)를 검색합니다(예를 들어 세그먼트 헤더로 JFIF/EXIF(JPEG)를 인식할 수 있음). 매우 간단하지만 제한적입니다.

탐정 키트파일 시스템을 파헤치는 데 훌륭한 도구입니다. 약간의 주의를 기울이면(그리고 해당 도구를 스크립팅하고 디스크 이미지가 잘못된 경우 16진수 편집) 복구에 사용할 수 있습니다.

ext를 더 깊이 이해하는 도구를 찾으려면 다음을 시도해 보십시오.ext4magic? (아직까지는 이 기능을 사용할 필요가 없었습니다.)

Documentation/filesystems/ext2.txt커널 소스에는 일반 구조에 대한 높은 수준의 개요가 있습니다. 그만큼Ext4 위키포함한 좋은 정보가 있습니다Ext4 디스크 레이아웃더 자세한 내용이 포함되어 있습니다(대부분 ext[23]에도 적용됨).

하지만 그렇습니다. 파일의 데이터는 블록으로 분할됩니다. ext2에서 각 파일은 직접 블록(데이터 블록에 대한 포인터), 간접 블록(직접 블록에 대한 포인터 포함), 이중 간접 블록 및 삼중 간접 블록을 포함하는 inode로 표시됩니다. 백링크가 없으므로 데이터 블록의 형제를 찾으려면 먼저 모든 inode와 블록 포인터를 스캔하여 소유자를 찾아야 합니다.

관련 정보