며칠 전 ext4 형식의 플래시 카드에 있는 모든 메타데이터를 덮어썼습니다.
이제 어떻게 이런 일이 일어났는지 추측해 보겠습니다. 이것은 순수한 추측입니다. 다른 카드를 사용한 후 이런 일이 발생했습니다. 이제 카드의 볼륨 레이블이 다른 카드와 동일합니다. 그래서 다른 카드를 뽑았을 때 다른 카드를 동기화/마운트 해제하지 못한 것으로 의심됩니다. 카드를 뽑았을 때 카드 리더가 시스템에 제대로 알리지 못하여 다음 시스템에서 동기화를 생성하고 시스템은 내가 카드를 변경한 것을 알지 못하고 메타데이터를 덮어씁니다.
이런 일이 발생하면 가장 먼저 하는 일은 dd를 사용하여 이미지를 만드는 것입니다. 두 번째로 한 일은 이미지를 읽기 전용으로 만드는 것이었습니다. 세 번째로 제가 한 일은 쓰기 가능한 이미지 복사본을 만드는 것이었습니다.
일부 항목은 성공적으로 복원했지만 모든 항목은 복원하지 못한 photorec을 발견했습니다. 그 이유 중 하나는 비파괴적이기 때문이라고 생각합니다.
복구된 파일 중 일부는 텍스트이기 때문에 photorec이 파일 형식에 대한 최소한의 정보를 사용하는 것으로 의심됩니다.
카드에서 다른 파일을 복구하려면 파일이 ext2에 어떻게 배치되어 있는지 알아야 합니다. 기본 원칙은 파일을 청크로 나누고, 이 청크를 섹터에 기록하고, 다음 섹터에 대한 정보를 찾는 방법을 현재 섹터에 어떻게든 기록한다는 것입니다.
나에게 가장 필요한 것은 다음 섹터에 대한 포인터를 작성하는 방법에 대한 정보입니다.
추신: photorec 코드를 읽고 있는데 읽는 데 몇 가지 문제가 있습니다. 내 문제인지 아니면 코드가 보기 흉한지 모르겠습니다.
PPS: ext 파일 시스템이 어떻게 배치되어 있는지에 대한 일부 정보를 찾았지만 기본 파일 레이아웃 정보를 찾을 수 없는 것 같습니다.
답변1
PhotoRec은 디스크(또는 디스크 이미지)를 스캔하여 알려진 파일 형식과 유사한 연속 바이트 블록을 검색합니다(예: 세그먼트 헤더로 JFIF/EXIF(JPEG)를 식별할 수 있음). 매우 간단하지만 제한적입니다.
탐정 키트파일 시스템을 탐구하기 위한 훌륭한 도구입니다. 약간의 주의를 기울이면(도구를 스크립팅하고 디스크 이미지가 잘못된 경우 16진수 편집) 복구에 사용할 수 있습니다.
확장 도구에 대해 더 깊이 이해하려면 다음을 시도해 보세요.ext4magic? (아직 이 기능을 사용해본 적은 없습니다.)
Documentation/filesystems/ext2.txt
일반 구조에 대한 높은 수준의 개요는 커널 소스 코드에서 확인할 수 있습니다. 이것Ext4 위키포함해서 좋은 정보가 있어요Ext4 디스크 레이아웃자세한 내용이 포함되어 있습니다(주로 ext[23]에도 적용됨).
하지만 그렇습니다. 파일의 데이터는 여러 개의 청크로 나누어져 있습니다. ext2에서 각 파일은 직접 블록(데이터 블록에 대한 포인터), 간접 블록(직접 블록에 대한 포인터 포함), 이중 간접 블록 및 삼중 간접 블록을 포함하는 inode로 표시됩니다. 백링크가 없으므로 데이터 블록의 형제를 찾으려면 먼저 모든 inode와 블록 포인터를 스캔하여 소유자를 찾아야 합니다.