300GB 하드디스크의 1/3만 사용하는 경우. dd를 사용하여 드라이브를 복제할 수 있습니까(그러나 100GB만 사용됨)?
dd if=/dev/sda of=clone.img
답변1
파일 시스템의 일부를 추가할 수 없습니다.
이를 사용하여 dd
하드 드라이브의 일부일 수도 있는 전체 파티션을 복사할 수 있습니다.
dd
파티션 일부의 복사본을 사용할 수 있는지 문의하셨습니다 .
일반적인 경우 이는 작동하지 않습니다.
이는 파일 시스템의 일부만 복사한다는 의미입니다. 실제 데이터가 사용 가능한 공간의 시작 부분에 있어야 할 이유가 없습니다. 그렇더라도 일반적으로 다른 섹션에는 관련 정보가 있습니다.
이와 같은 작업은 dd
파티션에서 데이터가 어떻게 구성되어 있는지 이해해야 하는 다른 도구를 사용하여 작동할 수 있습니다. 즉, 파일 시스템을 이해해야 합니다.
일반 파일 시스템 드라이버가 데이터가 디스크에 배열되는 방식을 이해하고 tar
해당 데이터를 다른 곳에 저장하기 위해 패키징하는 방법이나 이와 유사한 방법을 사용하는 것이 더 유용할 것 같습니다.
파일 시스템 크기를 조정한 다음 dd를 사용하십시오.
요청한 것과 유사한 작업을 수행하는 한 가지 방법은 파티션 크기를 조정하는 것입니다.
첫 번째 단계는 1/3만 채워진 300GB 파티션을 100GB가 조금 넘고 거의 꽉 찬 파티션으로 크기를 조정하는 것입니다.
gparted
GNOME 중심 라이브러리 GUI 프런트엔드 libparted
이며 일반적으로 권장되는 파티션 관리자이지만 parted
CLI 프런트엔드도 존재합니다(실제로는 libparted의 참조 구현). cfdisk
등도 fdisk
CLI 옵션이며 대부분의 Linux 배포판만큼 사용자 친화적이지는 않지만 gparted
핵심 유틸리티 패키지의 일부로 포함되어야 합니다.
dd
크기를 조정한 후에는 전체 파일 시스템이 있는 전체 파티션에서 표준 방식으로 사용할 수 있습니다 .
파일 시스템 아카이빙 도구
수행하려는 작업에 따라 다음이 도움이 될 수도 있습니다.
fsarchiver
동일한 도구를 사용하여 압축을 풀어야 하는 압축 형식의 파일 시스템에서 사용자 정의 이미지를 생성하는 도구입니다.
일반적으로 사용자 정의 형식으로 인해 이미지를 생성하는 데 이 도구를 사용하는 것을 권장하지 않지만 중간 상태에서는 의미가 있을 수 있습니다. 파일 시스템의 빈 부분에 공간이 필요하지 않은 기존 파티션의 이미지를 생성합니다. 그런 다음 이를 사용하여 다른 파티션 및 다른 파일 시스템에 추출할 수 있습니다. 파일 시스템은 fsarchiver
압축 풀기의 일부로 생성됩니다.
답변2
partclone
(CloneZilla와 동일한 작성자)가 이를 수행할 수 있습니다. 하지만 DD 호환 이미지 형식을 사용하지 않는 것 같습니다.
partimage
지원 수준이 낮은 파일 시스템을 사용하여 이 작업을 수행할 수도 있습니다.
이미지를 파일로 복원하여 이미지를 DD 호환 형식으로 변환할 수 있어야 합니다.(당신이 원할 수도 있습니다또한 스파스 파일로 변환합니다.)
이미지는 여전히 블록 이미지이기 때문에 더 작은 디스크에 복원할 수 없지만 파일 시스템에 대한 지식을 사용하여 사용되지 않는 부분을 건너뜁니다.
partimage
파일 시스템별 버전이 있으므로 정확한 명령에는 소스 파일 시스템과 같은 추가 정보가 필요합니다 .
답변3
백업을 위해 추가로 200GB의 공간을 낭비하고 싶지 않다면 GNU 유틸리티를 사용하여 zerofree
파일 시스템에서 사용되지 않는 모든 공간을 지정된 값으로 설정할 수 있습니다. 0xFF
SSD의 마모를 줄이고 성능을 향상시키려면 이 값을 사용하십시오 . (플래시 메모리에서 지워진 페이지는 기본적으로 모두 0xFF이기 때문입니다. 이로 인해 드라이브에서 작업 수행 속도도 크게 향상됩니다.) 일단 완료되면 파티션에서 사용되지 않은 모든 바이트는 0xFF 바이트가 됩니다. 이제 실행 길이 압축을 지원하는 압축 알고리즘을 사용하면 0xFF 바이트의 모든 청크가 몇 메가바이트로 줄어듭니다. 따라서 귀하의 명령은 다음과 같습니다: (루트로서)
zerofree -v -f 0xFF /dev/nvme1n1p4
dd if=/dev/nvme1n1p4 | lzma > ./backup-image.img.lzma
결과 이미지는 드라이브에서 사용된 공간보다 훨씬 크거나 작지 않아야 합니다.
나중에 이 백업을 디스크에 복원하려면 다음을 수행하면 됩니다.
dd if=./backup-image.img.lzma | unlzma | dd of=/dev/sda1