최근에 파티션 테이블을 변경하고 싶어서 모든 데이터를 백업하고 변경했는데, 작업을 완료한 후 프로젝트 파일 중 일부가 GitHub에 푸시되지 않은 것을 발견하고 다음 명령을 사용하여 복원을 시도했습니다.테스트 디스크하지만 작동하지 않습니다. 저도 하나 만들었지 deep search
만 여전히 찾을 수 없습니다. 누군가 해당 데이터를 복구하는 방법을 알려주세요. 이는 매우 중요합니다!
답변1
새 파티션에 새 파일을 만들었으므로 이전 파일이 완전히 손실되고 새 파일로 덮어쓰여질 수 있습니다. 이런 일이 발생하지 않았고 파일이 여전히 어딘가에 존재한다고 가정하십시오.
도구가 도움이 되지 않으므로 수동으로 파일을 검색해 볼 수 있습니다. 이렇게 하려면 파일에 있는 문자열을 알아야 합니다. 가급적이면오직당신이 찾고있는 파일에서.
my forgotten source code
디스크에서 문자열을 찾고 있다고 가정해 보겠습니다 /dev/sda
.
- 물리적 디스크에서 모든 문자열 찾기: 디스크가 매우 큰 경우 시간이 오래 걸릴 수 있습니다.
strings -24 -t d /dev/sda | grep -i "my forgotten source code"
-24
: 찾을 문자열의 최소 길이입니다. 그에 따라 조정하세요.-t d
:십진수로 인쇄 오프셋
문자열이 발견된 오프셋을 반환합니다. 결과가 없으면 파일을 덮어썼을 수 있으며 복구가 불가능할 수 있습니다. 반면에 문자열이 여러 파일이나 파일의 여러 Git 개정판에 나타나면 많은 결과를 얻을 수 있습니다. 시간이 너무 오래 걸리거나 일치하는 항목이 너무 많으면 결과를 나중에 다시 분석할 수 있도록 결과를 파일에 저장하는 것이 좋습니다. 손실된 파일을 삭제하지 않으려면 동일한 디스크에 파일을 저장하지 마세요!
- 발견된 오프셋 근처의 디스크 바이트를 찾습니다. 오프셋 1024에서 문자열을 찾았다고 가정합니다.
xxd -s 1024 /dev/sda | less
-s 1024
오프셋 1024에서 시작하는 디스크 바이트를 읽습니다. 문자열 시작 전에 읽어야 하는 경우 그에 따라 조정하십시오.