파티션 이미지 생성(사용된 공간만)

파티션 이미지 생성(사용된 공간만)

sdb13.3GB 크기의 파티션이 있습니다 . 3.3GB에서 1.9GB만 사용하고 그 중 1.2GB가 빈 공간이다. 이 파티션의 이미지를 만들고 싶습니다. 하지만 이미지가 1.9GB의 공간만 사용하길 원합니다.

이제 dd를 사용하여 명령을 실행하면 다음과 같습니다.

dd if=/dev/sdb1 of=/home/data/Os.img bs=1M status=progress

dd가 3.3GB 이미지를 만들고 있지만 할당되지 않은 공간이 OS 이미지의 일부가 되는 것을 원하지 않습니다.

그래서 다른 해결책을 시도했습니다. 해결책을 찾았습니다.

dd if=/dev/sdb1 of=/home/data/OS.img bs=1M count=1946 status=progress

이 솔루션은 1.9GB 이미지를 생성하며, 블록 크기를 1M로 정의했으므로 개수는 1946이므로 총 1.9GB가 제공됩니다.

질문 이 dd 명령이 사용된 공간의 이미지만 생성하는지 아니면 사용된 공간과 사용되지 않은 공간이 모두 포함된 1.9GB 이미지만 생성하는지 알 수 없습니다.

사용된 공간에 대해서만 이미지를 생성하는 다른 방법이 있나요?

답변1

이 답변되었습니다여기.

먼저 파티션의 이미지를 만듭니다.

그런 다음 losstup을 사용하여 이미지를 마운트합니다. 디스크가 아니라 파티션이므로 partscan 플래그가 필요하지 않습니다.

# lsblk
# losetup --find foo.img

새로 생성된 루프 장치 찾기

# lsblk
loop1    7:1    0   4096M  0 loop 

큰 빈 파일을 작성하여 남은 공간을 0으로 만듭니다.

# mount /dev/loop1 /mnt
# dd if=/dev/zero of=/mnt/filler conv=fsync bs=1M
# rm /mnt/filler
# umount /dev/loop1

이제 이미지를 압축해 보세요.

# ls -s
4096M foo.img
# gzip foo.img
# ls -s
11M foo.img.gz

이제 파티션 이미징이 완료되었습니다.

파티션에 ext4 파일 시스템이 있는 경우 다음 명령을 사용하여 크기를 조정할 수 있습니다.2fs 크기 조정최소 크기로. 그러면 모든 데이터가 첫 번째 블록으로 이동됩니다.

e2fsck -f /dev/loop1
resize2fs -M /dev/loop1

답변2

당신은 그것을 사용할 수 있습니다클론속그리고 가장 큰 파일이 압축된 파일 집합이 포함된 디렉터리인 Clonezilla 이미지를 생성합니다. Clonezilla는 파일 시스템에서 사용 중인 것으로 표시된 파티션의 블록만 복사할 만큼 똑똑하므로 dd.

그러나 미러의 내용을 파티션에 복원하는 경우 대상은 [적어도] 동일한 크기의 파티션이어야 하므로 복원 작업 후 대상의 크기를 더 작게 하려면 다른 방법을 사용해야 합니다.


이미징 및 복구 작업 후 더 작은 파티션 크기를 원할 경우 파일 수준에서 수행해야 합니다. 당신은 할 수

  • 전체 파일 시스템의 [압축된] tar 파일인 tarball을 만듭니다.

  • 원하는 크기의 파일 시스템으로 새 파티션을 만듭니다.

  • tarball에서 모든 파일이 포함된 디렉토리 트리를 추출합니다.

다른 운영 체제에서 부팅하고, 복사할 파티션을 비활성화하고, tar높은 권한으로 실행합니다.

  • 복사할 파티션의 최상위 디렉터리로 변경

    sudo tar -cvzf /path-to/file.tar.gz .
    

복원하는 경우(다른 OS에서도 부팅)

  • tar 파일에서 추출하려는 파티션의 맨 위로 디렉토리를 변경하십시오.

    sudo tar -xvf /path-to/file.tar.gz
    

이 결과와 복제 작업 결과 사이의 중요한 차이점에 유의하세요.

  • 파티션의 UUID는 다릅니다. 복사된 파티션에 시스템 파티션이 포함된 경우 UUID를 원래 파티션의 UUID로 변경하거나 및에서 UUID에 대한 참조를 변경하여 새 UUID와 일치해야 합니다 /etc/fstab./boot/grub/grub.cfg

관련 정보