손상된 파일 시스템을 다른 하드 드라이브의 파일로 이미징하기 전에 읽을 수 없는 데이터의 양을 확인하기 위해 테스트 실행 ddrescue
(구조 결과를 에 보내기 )을 결정했습니다./dev/null
# ddrescue -d -b 4096 -r 3 -f /dev/sda1 /dev/null sda1.log
결국 완료하는데 3일이 걸렸습니다. 이제 현실적인 이미지를 만들 준비가 되었습니다. 하지만 완료되기까지 3일을 더 기다리고 싶지 않습니다. 그런데 다행히 로그 파일이 있어서 ddrescue
불량 섹터는 건드리지 않고 좋은 섹터만 강제로 구출하는 것이 가능한가요 ?
일부 문서를 읽은 후 다음과 같은 아이디어를 생각해 냈습니다.
# ddrescue -d -b 4096 --fill=+ /dev/sda1 /mnt/sda1.img sda1.log
이것이 작동할까요? 좋은 섹터만 다시 읽는 또 다른 (선호되는) 방법이 있습니까?
답변1
설명서를 주의 깊게 읽고 ddrescue
다음 옵션을 찾으십시오.
-m file
--domain-logfile=file
복구 도메인을 완료된 것으로 표시된 로그 파일의 블록으로 제한합니다.문서. 이는 복구 중에 대상 드라이브에 오류가 발생한 경우 유용합니다.
따라서 호출은 ddrescue
다음과 같습니다.
# ddrescue -d -b 4096 -m sda1.log /dev/sda1 /mnt/sda1.img logfile2.log
답변2
이제 ddecue의 기능을 이해했으므로 손상된 디스크에서 데이터를 복구할 때 /dev/null에 쓰는 데 이를 사용해서는 안 됩니다. 대신 실제 이미지 파일에 쓰는 데 사용하여 "적어도 뭔가"를 얻어야 합니다.
예를 들어, 새 디스크가 해당 디스크를 저장소로 반환하는지 알고 싶다면 /dev/null에 쓰는 것이 좋습니다.
이 경우 "/dev/null 시도"의 로그 파일을 사용하는 대신 빈/새 로그 파일을 사용한 다음 수행하는 작업에 따라 여러 패스를 시도하게 됩니다.
답변3
2018년 빠른 편집:
나는 ddrescue
몇 년 전에 하드 드라이브를 구출하기 위해 가끔 이것을 사용했습니다.
dd
표면적으로 손상된 하드 드라이브보다 빠릅니다.
하지만 dd
첫 번째 게시물을 통해 사실을 그대로 유지하는 것이 정말 안전합니다.
원본 게시물
이것은아주 나쁜 생각!!
ddrescue를 연습 실행하여 복구 출력을 /dev/null에 던집니다.
내가 말한 건손상된 파일 시스템을 다른 하드 드라이브의 파일로 이미징하기 전에...
디스크 드라이브가 손상되면 일반적으로 손상 정도가 증가합니다.드라이브에 액세스하려고 할 때마다.
그래서이것손상된 드라이브를 구출하는 좋은 방법은 다음과 같습니다.한 번의 논스톱 작업으로 처음부터 끝까지 전체 디스크를 이미지화하세요!. 이후: 디스크 드라이브를 분리하고 조용히 보관하십시오. 이와 마찬가지로, 손상된 드라이브를 덜 만질수록 무언가를 복구할 가능성이 높아집니다.
파손된 재료와 기계적으로 접촉할 때마다 더 많은 손상이 발생할 가능성이 있으므로 마지막 작업에 대한 로그는 다음과 같습니다.참조가 아님어떤 블록이 손상되었는지 확인지금.
이것은 올바른 dd
구문 입니다원시 dd 읽기불량 블록도 마찬가지입니다.
dd bs=512 if=/dev/sdX of=/backuprepo/sdXBroken.img conv=noerror,sync
그리고 나는 그것이 참을성있게 작동하도록 두었습니다.