파일 시스템: 루트 inode나 저널 없이 ext4에서 파일 이름을 복구하시겠습니까?

파일 시스템: 루트 inode나 저널 없이 ext4에서 파일 이름을 복구하시겠습니까?

파티션의 처음 몇 메가바이트를 0으로 만들었을 때 루트 inode와 저널이 모두 실수로 ext4 파일 시스템에서 삭제되었습니다. 그러나 내 모든 데이터는 photorec을 통해 성공적으로 복구되었습니다. 원본 데이터 외에 다른 것도 복구할 수 있나요? 파일명이 있나요? 메타데이터? 아니면 이 모든 것이 일반적으로 디스크 파티션의 시작 부분에 저장됩니까?

답변1

실행은 e2fsck파일 시스템을 복구하는 가장 좋은 방법인 경우가 많으며 파일 시스템의 일부가 손실된 경우에도 매우 효과적인 작업을 수행할 수 있습니다. 이는 ext2/3/4가 파일 시스템 메타데이터(inode, 비트맵 등, 디렉터리는 제외)에 상대적으로 정적인 레이아웃을 사용하고 파일 시스템의 나머지 복사본의 여러 위치에 중복된 슈퍼블록 및 키 그룹 설명자 테이블을 가지고 있기 때문입니다.

파일 시스템이 포맷된 방식(및 시기)에 따라 파일 시스템의 시작 부분에는 루트 inode 자체 외에 중요한 정보가 많이 포함되지 않을 수 있습니다. 첫 번째 그룹에는 많은 inode가 있을 수 있지만 일반적으로 파일 시스템이 가득 차지 않으면 사용되지 않습니다. e2fsck 실행은 사용 중 발견된 디렉터리 항목(파일 이름 포함)이 없는 모든 파일과 디렉터리를 이 디렉터리에 배치합니다 lost+found. 파일과 디렉터리의 이름은 유사 #1234하지만 콘텐츠, UID, GID로 식별하고 파일 시스템의 적절한 위치로 이동할 수 있습니다(아마도 상위 디렉터리를 다시 만든 후).

디렉토리 블록 과 같은 보다 정교한 도구를 사용하면 ext3grep더 많은 정보를 복구할 수 있지만(최근에 업데이트되지 않은 오래된 ext3 파일 시스템을 사용하는 경우) 파일 시스템의 전체 시작 부분이 삭제되므로 복구할 수 있는 정보는 제한적입니다. 복원됩니다.

답변2

파일 이름 등은 디스크의 inode에 분산되어 있으므로 (대부분, 일부는 0으로 설정되었을 수 있음) 여전히 존재해야 합니다.

그것을 찾는 방법은 또 다른 문제입니다. 루트 inode가 손실되면 어떤 블록에 inode가 포함되어 있는지 알아낼 수 있는 방법이 없다고 생각합니다. 즉, 원시 데이터 블록을 읽고 어떤 블록이 무엇인지 추측하는 프로그램이 남게 되며, inode는 식별하기 어렵습니다. 이를 수행할 수 있는 프로그램이 있는지 모르겠습니다(들어본 적이 없습니다).

관련 정보