Linux 명령을 사용하여 SSD를 백업하고 싶지만 dd
이 방법이 얼마나 안정적인지 잘 모르겠습니다. 내가 읽은 곳에서는 오류를 확인하거나 보고하지 않는다고 생각하므로 dd
분명히 사실이라면 이것이 거래 중단이 될 것입니다.
다음 명령은 다음과 같습니다.
sudo dd status=progress bs=512K if=/dev/nvme0n1 of=/media/d/ssd.img
따라서 dd
명시된 사용 사례에서 이 명령이 얼마나 신뢰할 수 있는지 설명해주세요.
그리고 더 안정적이고 간단한 대안이 있습니까?
답변1
요약하자면: 사용ddrescue
재개/계속 기능을 지원하고 자동 로깅 및 기타 다양한 옵션이 있습니다. 자세한 내용은 다음을 참조하세요.ddrescue 홈 페이지.
구문 예:
ddrescue /dev/sde yourimagename.image sde.log
복구에 대한 귀하의 의견을 고려하여 위 명령의 이미지를 동일한 크기의 다른 드라이브로 복구하려는 경우:
ddrescue -f yourimagehere.image /dev/sde restore.logfile
또한,이것은ddrescue
dd보다 빠릅니다. 적어도 dd
및 +의 속도를 비교할 때 그렇게 보입니다 pv
.
답변2
"오류를 확인하거나 보고하지 않음"에 대한 원래 설명은 아마도 기본적으로 "dd"가 잘못된 읽기를 채우지 않기 때문일 것입니다. 따라서 블록 지향 장치의 경우 잘못된 블록뿐만 아니라 모든 후속 블록도 올바르지 않습니다. 정렬됨). 다른 사람들이 말했듯이 이 문제는 블록이 블록 경계에 있도록 dd에 지시하는 'conv=noerror,sync' 옵션을 사용하여 해결할 수 있습니다. 파일 시스템 블록 크기(일반적으로 4096바이트)와 일치하는 블록 크기 설정으로 연결되어야 하지만 더 낮을 수도 있습니다.
백업이 훨씬 덜 세분화되어 있기 때문에 파일 백업 사용에 대한 Johan Myréen의 의견에 동의합니다. 한 파일을 백업할 때 발생하는 오류가 반드시 다른 파일에 영향을 미치는 것은 아닙니다. 파일 데이터 오류를 수정하는 파일 시스템(예: zfs, btrfs 및 기타 몇 가지 구성)을 사용할 수도 있으므로 최소한 오류가 언제 발생하는지 알 수 있고 이를 수정할 수 있습니다.
잘못된 백업을 감지하는 또 다른 방법은 원래 장치(마운트되지 않음!!) 및 dd 백업 파일에서 "sha256"과 같은 메시지 다이제스트 해시 코드를 사용하는 것입니다. 물론 동일해야 합니다.
마지막으로, 백업에 대한 모범 사례는 절대로 하나의 백업에만 의존하지 않는 것입니다. 최소 2개를 유지하세요!
답변3
디스크 복제 유틸리티 - 예:크론질라파티션 테이블 등을 포함하여 디스크의 압축 복사본이 생성되지만 ext4 등과 같은 잘 알려진 파일 시스템에서 할당되지 않은 공간과 사용되지 않은 공간은 무시됩니다.
분명히 사용되지 않는 공간을 복사하지 않고 데이터만 복사하는 것이 훨씬 빠릅니다.
NVME 스토리지가 작동하지 않는 것으로 의심되는 경우의지하다rsync
읽기 작업의 경우 복제 작업 외에도 소프트웨어를 사용하여 대부분/모든 데이터를 추출하는 것을 고려할 수 있습니다 .
답변4
dd
이름에서 알 수 있듯이 디스크 이미지 백업을 만듭니다. 1TB 드라이브가 100GB를 사용한 경우 디스크 이미지는 여전히 1TB입니다. 제로 블록이 존재한다는 것을 알고 있고 명령이 있는 경우 conv=sparse
이 옵션이 존재합니다 .dd
ddrescue
--sparse
그러나 백업 목적으로는 원본 디스크 이미지가 필요하지 않을 수도 있습니다. 대부분의 백업 사용 사례에서는 tarball을 사용하여 파일을 복사 rsync
하거나 모든 것을 (아마도 압축된) tarball에 넣는 것으로 충분하며 파일 수준에서 작업하려면 파일 시스템을 사용하는 것이 탑재된 이미지로 직접 작업하는 것보다 나을 수 있습니다. rsync
파일의 차이점만 전송하는 편리한 델타 전송 알고리즘도 있습니다.업데이트 중백업(추가 소프트웨어가 필요한 증분 백업과 다름)