답변:
다음 답변은 GUI 솔루션이 아닌 TUI를 사용합니다 .
사용 사례에 따라 (시스템 백업에 사용) CloneZilla Live를 사용할 수 있습니다 . 그것은 만들 수 있습니다 :
주요 장점은 다음과 같습니다.
이 모든 장점 외에도 MBR도 복사 할 수 있습니다.
콜드 시스템 백업이 원하는 것이 아닌 경우에도 CloneZilla의 기반이되는 기술을 계속 사용할 수 있습니다 partclone
.
더 작은 디스크 이미지를 얻으려면 일반적으로 이미지의 초기 파일 시스템에서 제로 아웃 된 블록을 복사하지 않는 방식으로 수행됩니다. 이 개념 을 파일의 희소 공간 또는 파일의 구멍 뚫기 라고 하며 호스트 파일 시스템이이를 지원해야합니다. 비트 커맨드 라인이지만 이것을 시도하십시오 :
sudo apt-get install virt-manager qemu-utils
그리고 설치가 끝나면 다음을 사용할 수 있습니다.
qemu-img convert -f raw -O raw /dev/sdX /home/<user>/Ubuntu.img
그러면 디스크의 희소 이미지 (파일에 0이 기록되지 않음)가 생성됩니다. 여기서 -f = 형식, -O 출력 형식 sdX 디스크 (파티션도 사용할 수 있음). 이 프로그램에는 스냅 샷 및 다양한 출력 형식 (vdi, vmdk 등)과 같은 고급 기능이 있습니다. 귀하의 장소 이미지를 저장 스파 스 파일을 지원하는 파티션에 0을 디스크에 기록되기 때문에, 또는 다른 크기가 단지 큰대로 될 것입니다. 여유 공간이 항상 제로 공간을 의미하지는 않으며 파일 시스템에서 제로 공간의 양을 최대화하려고하기 때문에 파티션을 최대한 활용하려면 파티션에서 apt에서 찾 sfill
거나 zerofree
apt에서 찾은 프로그램을 실행 하십시오.
보너스 닌자 포인트. 리눅스는 디스크를 "파일"로 생각하기 때문에 파일을 보관하는 출력 파티션이 스파 스 파일을 알고 있다는 조건으로 일반 cp를 사용할 수도 있습니다.
sudo cp --sparse=always /dev/sdX /home/<user>/Ubuntu.img
cp를 사용하여 원시 사본을 작성합니다.
스파 스를 지원하는 파일 시스템의 예 : ext4, btrfs, xfs, ntfs (그러나 ntfs-3g는 스파 스 쓰기를 허용하지 않을 수 있음).
파일 시스템의 예 : fat32
sudo cp /home/<user>/Ubuntu.img /dev/sdX
, 또는 경우 멋진 DD sudo dd if=/home/<user>/Ubuntu.img of=/dev/sdX
. qemu-img convert도 마찬가지입니다. 말하자면 실제 하드웨어에 가상 머신을 설치하고 싶습니다. 다시 쓰면 디스크에 0을 쓰므 로 파티션의 지오메트리를 올바르게 처리해야하기 때문에 스파 스가 발생하지 않습니다 .
그 자체만으로 두 가지 조건을 만족시키는 프로그램이없는 것 같습니다.
1) '디스크'와 같은 GUI가 있어야합니다.
2) 사용 된 공간만큼 큰 디스크 이미지를 만듭니다.
다소 간단한 해결 방법에 대해 생각했지만 우분투에서 매우 일반적인 두 가지 GUI 프로그램이 있습니다.
하나는 동일한 '디스크'(gnome-disk-utility) 이며, 주어진 파티션의 백업 이미지를 생성하는 데 사용되며, 다른 하나는 Gparted가되어 백업 이미지를 생성하기 전에 파티션을 최대한 줄입니다. 그 후에 원래 크기로 다시 크기를 조정하십시오 .
그런 작업에서 불편하지 않은 것으로 보입니다. 파티션을 최소로 줄이면 몇 분 (10GB의 경우 약 1 분)이 걸리고 오른쪽에 빈 공간이 생깁니다. '디스크'를 사용하여 디스크의 백업 이미지를 만든 후 Gparted를 사용하면 파티션을 초기 상태까지 빈 공간으로 오른쪽으로 다시 크기를 조정할 수 있으며 몇 초 밖에 걸리지 않습니다.
우분투 설치 파티션에서 테스트 :
가능한 한 Gparted로 파티션 축소
디스크가있는 해당 파티션의 백업 이미지
디스크가있는 이미지를 이미지보다 큰 파티션으로 복원합니다. 해당 파티션을 먼저 마운트 해제해야합니다 . 'Disks'를 사용하여 시스템 파티션 (iso 이미지)을 올바르게 복원하는 방법 .
편집 : 파일 시스템에서 삭제 된 파일이 여전히 파티션에있는 경우 제대로 작동하지 않으므로 먼저 대상 파티션에서 사용 가능한 공간을 정리해야합니다.
dd if=/dev/zero of=<path_to_partition_volume>/file.dd && rm <path_to_partition_volume>/file.dd
그때:
를 사용하여 전체 파티션을 한 블록 씩 읽고와 dd
같은 압축 유틸리티로 모든 것을 출력 할 수 있습니다 gzip
. 가장 빠르거나 가장 낮은 압축 설정을 사용하더라도 압축 도구는 프로세스 중에 모든 여유 공간을 압축합니다.
로 gzip
:
sudo dd if=/dev/sdX | GZIP=-1 gzip >/path/to/backup.gz
( 가장 빠르거나 압축률이 낮도록 GZIP=-1
환경 변수 GZIP
를 일시적으로 설정 -1
)
백업을 복원하려면
gzip -d /path/to/backup.gz >/dev/sdX
옵션 ddrescue
과 함께 사용 하는 것은 -S
어떻습니까?
ddrescue -S /dev/sdXY /<path_to_backup>/backup.img
이것은 각 블록을 복제하지만 블록 장치에서 발견 된 0 개의 블록 /dev/sdXY
은/<path_to_backup>/backup.img
Clonezilla는 실제로 매우 친절 할 수 있습니다. 라이브 CD에는 명령 줄 사용법이 필요하지 않습니다. 마우스를 사용하지 않더라도 GUI라고 부르면 매우 기쁩니다. 많은 경우 기본값이 정상이라고 생각합니다. 문제는 명시 적으로 부르지 않은 것입니다. 임의의 Linux 시스템에 설치할 수있는 것으로 설계된 것은 아닙니다. 데비안 / 우분투 용으로 특별히 패키지되어 있으며 라이브 CD가 가장 쉬운 방법입니다.
Clonezilla / partclone은 파일 시스템 인식 복제를 사용하고 자체 압축 이미지 형식을 사용합니다.
제로 섹터 감지에 의존하지 않는 간단한 (마운트 가능) 스파 스 파일을 생성 할 수있는 GUI가 아닌 다른 가능성이 있습니다.
virt-sparsify /dev/your-block-device backup.img
/ tmp가 램 디스크이면 임시 파일을위한 추가 공간이 필요하다는 경고가 표시됩니다. 따라서 옵션을 추가해야 할 수도 있습니다 --tmp /var/tmp
.
virt-sparsify --version
하시겠습니까? 옵션은 내 ( man virt-sparsify
) 에 문서화되어 있습니다 ... 맹세 할 수는 없지만 적어도 현재 /tmp
는 tmpfs입니다. 을 사용할 수 있다면 --in-place
임시 저장 공간을 피하는 것처럼 보입니다. 마지막으로 시도해 볼 수도 있습니다 TMPDIR=/var/tmp virt-sparsify ...
. 내 버전의 문서에 따르면 1.28 이전 버전의 tmp 디렉토리를 설정해야한다고합니다.