dd를 사용하여 디스크를 동일한 디스크에 백업

dd를 사용하여 디스크를 동일한 디스크에 백업

내 컴퓨터의 하드 드라이브를 백업하기 위해 를 사용해 보았지만 dd다소 혼란스러운 결과를 얻었습니다. 여러 소스에서 본 적이 있습니다(예:http://www.backuphowto.info/linux-backup-hard-disk-clone-dd,http://debianhelp.co.uk/ddcommand.htm) 여기에는 다음과 같은 내용이 포함되어 있습니다.

dd if=/dev/sda of=~/backup.img

1) 아주 혼란스럽지 않다면 이것은 전체 디스크를 디스크의 파일로 백업하려고 시도하는 것입니다. 그렇지 않습니까?

이 방법을 사용하려고 시도했지만 먼저 공간을 절약하기 위해 출력을 압축했습니다. 사용 가능한 데이터를 모두 복사하여 압축 파일이 많은 공간을 차지하는 것을 방지하기 위해 zerofree디스크의 모든 사용되지 않는 공간에 0을 쓰곤 했습니다. 내 디스크의 총 용량은 ~320GB이고 그 중 약 100GB가 사용되었으며 ~220GB의 여유 공간이 남아 있습니다.

다음 명령을 사용하려고 시도했을 때 :

dd if=/dev/sda | gzip -c > ~/image.img.gz

백업을 종료하기 전에 백업된 파일의 크기가 ~160GB에 도달했습니다(외부 디스크에 백업하는 방법을 알아내기 위한 작업으로 이후 성공했습니다).

2) 백업이 왜 그렇게 많은 공간을 차지합니까? dd쓰고 있는 파일을 보고 그 파일도 백업하려고 하기 때문인가요 ? 아니면 제가 제대로 사용하지 못해 zerofree이를 방지하려는 노력에도 불구하고 무작위로 정크 데이터가 잔뜩 백업되어 있는 것일 수도 있나요?

답변1

수정되는 동안에는 하드 드라이브를 정확하게 복제할 수 없습니다.

매우 혼란스럽지 않다면 전체 디스크를 디스크의 파일로 백업하려고 시도할 것입니다. 그렇지 않습니까?

네, 노력하겠습니다. 이 dd명령은 (드라이브에서) 블록을 읽고, 블록을 압축하고, (해당 드라이브의 파일에) 블록을 쓴 후 다음 블록으로 이동합니다. 이미지에는 backup.img해당 파일에 대해 부분적으로 기록된 파일 시스템 포인터와 부분적으로 기록된 파일 시스템 포인터가 있습니다.

참고: 여기서는 자세한 내용이 관련이 없으므로 dd와 사이의 파이프 버퍼링을 크게 단순화했습니다 .gzip

백업이 왜 그렇게 많은 공간을 차지할까요?

가능한 원인은 부분적으로 작성된 파일을 복사하려고 하기 때문입니다 backup.img. 다른 요인으로는 사용 중인 파일 시스템의 파일 시스템 구조에 대한 고급 지식이 필요합니다.

관련 정보