답변1
이 문제를 올바르게 해결할 수 있는 방법은 거의 없습니다. 파일 시스템은 dd로 수백 메가바이트를 덮어쓰는 것은 물론이고 작은 부분이라도 잃는 것을 싫어합니다.
cmp datasource /dev/target
이 경우 내가 원하는 것은 dd 출력에서 또는 iso 이미지 파일을 디스크 데이터(예: ) 와 비교하여 얼마나 많은 데이터를 덮어썼는지 정확히 확인하는 것입니다 . 그런 다음 확인된 누락된 세그먼트를 0으로 만듭니다.
예: (사용에 따른 책임은 본인에게 있습니다. 모든 실험을 전체 디스크 복사본에서 실행하거나기록 중 복사 덮어쓰기)
# cmp isofile.img /dev/diska
cmp: EOF on isofile.img after byte 68157440, in line 266228
# dd bs=1 count=68157440 if=/dev/zero of=/dev/diska
# cmp isofile.img /dev/diskb
isofile.img /dev/diskb differ: byte 34603009, line 135095
# head -c $((34603009-1)) /dev/zero > /dev/diskb
손상된 영역을 제로화해도 데이터가 복원되지 않습니다. 그러나 이는 복구 소프트웨어가 블록 크기 및 파티션 오프셋에 대해 잘못된 가정을 하는 것을 방지하고 관심 없는 데이터를 복구하는 데 시간을 낭비하는 것을 방지하는 데 도움이 됩니다. 유효한 이미지 파일에서 나온 것이기 때문에 유효해 보이는 완전히 가짜 데이터보다 데이터가 전혀 없는 것이 더 좋습니다.
앞으로는 꼭 백업해 두세요.
답변2
나에게도 그런 일이 한 번 있었다. "TestDisk"를 사용하여 대부분의 파일을 복구했습니다.(오류를 인식하면 dd가 중지되었습니다.) 자세한 설명이 있습니다.여기손실된 파일을 복구하는 방법에 대해