QEMU 디스크 이미지의 크기를 조정할 수 있습니까?


12

제목에서 알 수 있듯이 : Linux에서 QEMU 디스크 이미지의 크기를 조정할 수 있습니까? 그렇다면 파티션 내의 파티션은 어떻게됩니까? 그들은 자동으로 크기가 조정됩니까 (의심) 또는 그 뒤에 사용되지 않는 공간의 새로운 블록이 있습니까?

답변:


12

에서 여기 :

!!! 아래를 시도하기 전에 디스크 이미지를 백업하십시오 !!!

스파 스 원시 이미지를 사용하는 경우

dd if=/dev/zero of=hdd.img seek=N obs=1MB count=0"

여기서 hdd.img는 크기를 조정하려는 원시 형식 이미지이고 N은 이미지를 원하는 새 크기 (MB)입니다. N의 단위를 변경하려면 기가 바이트 (1000x1000x1000) 단위의 ob를 1GB와 같은 다른 것으로 변경하십시오.

원시 이미지의 크기를 조정하고 싶지만 이미지가 희박하지 않게하려면 (실제로 파일에서 0을 원함) "dd if = / dev / zero of = image seek = S count = NS obs = 1" 대신 N은 새 크기이고 S는 이전 크기 (바이트)입니다.

qcow2 이미지의 크기를 조정하려는 경우 아직 지원되지 않습니다.

이 이메일은 16 진 편집기로 qcow 이미지 크기를 조정하는 실험을 보여줍니다.

내가 아는 한 다른 형식 (VMware, Bochs, cow 또는 cloop)으로 이미지 크기를 조정하거나 성장시키는 것은 지원되지 않습니다.

Windows 호스트에서는 'copy'명령을 사용하여 원시 형식 디스크 이미지의 크기를 조정할 수 있습니다. qemu-img를 사용하여 필요한 경우 기존 이미지를 원시 형식으로 변환 할 수 있습니다. 기존 원시 형식 디스크 이미지 끝에 추가되는 임시 원시 형식 디스크 이미지를 사용합니다. 이 임시 이미지의 크기는 기존 이미지가 확장 될 크기입니다.

qemu-img create -f raw temp.img 300M

그런 다음 아래 명령을 실행해야합니다. orig.img는 더 크게 만들려는 기존 원시 형식 이미지이고, temp.img는 이전에 만든 임시 이미지 파일이고 new.img는 크기가 조정 된 결과 이미지입니다.

copy /b orig.img+temp.img new.img

그런 다음 새 이미지에서 기존 파티션과 파일 시스템을 다시 파티션하고 크기를 조정해야합니다. 이를 수행하는 한 가지 방법은 gparted livecd iso 및 새 디스크 이미지로 QEMU에서 gparted gpart를 부팅하는 것입니다.


위의 방법으로 작동하지 않는 경우 확인하려는 다른 링크 :

http://qemu-forum.ipi.fi/viewtopic.php?p=12362
http://kev.coolcavemen.com/2007/04/how-to-grow-any-qemu-system-image/
http : / /bryan-murdock.blogspot.com/2007/12/resize-qemukvm-windows-disk-image.html
http://www.larsen-b.com/Article/329.html
http://www.brabbel.net / wp / archives / 174


17

qcow2 이미지는 qemu의 새로운 / 현재 버전으로 커지도록 크기를 조정할 수 있습니다. 예를 들어, 나는 arch.qcow2 thats 2G를 가지고 있고 50G가되기를 원합니다.

qemu-img resize arch.qcow2 50G

그런 다음 qemu가 알려줍니다.

image resized

그게 다야 오늘 방금 해냈어 redhat은 실제로 qemu에 대한 훌륭한 문서를 가지고 있습니다.


3
그러나 증가 된 공간은 미분 할 것입니다. 일부 파티션 도구를 사용하여 가상 디스크의 크기를 조정해야합니다.
Yamaneko

탁월한 솔루션!
RckLN

qemu-img 버전 1.0에서 알려줍니다qemu-img: This image format does not support resize
HDave

4

2017에 대한 짧은 대답 : 기존 원시 이미지에 30GB를 추가하려면이 명령을 사용했습니다.

qemu-img resize nameofimg.img +30G

기존 이미지 파일에 30GB가 추가됩니다 (새 파일을 만들 필요 없음). 그런 다음 게스트 VM에서 기존 파티션을 확장 할 수 있습니다 (예 : "디스크 관리").

추가 정보 및 옵션 :

man qemu-img

또한보십시오 : qemu 위키> qemu-img


1

그래 넌 할수있어. 그리고 파티션이나 테이블을 변경하지 않습니다. 전체 디스크 크기를 갖기 위해 파티션 테이블을 업데이트해야 할 수도 있고, 끝날 때 사용하지 않은 빈 공간이 생길 것입니다. 파티션을 잘라 내면 축소되거나 데이터의 마지막 부분이 손실됩니다 .

qemu 모니터에 있고 (또는 아마도 QMP를 사용 하는 경우) 인터페이스가이를 지원하는 경우 (예 : 여기서 테스트 한 rbd를 사용하는 virtio-scsi-pci) VM을 재부팅하지 않고 다음을 수행 할 수 있습니다.

(qemu) info block -v disk1
disk1 (#block165): rbd:rbd/manjaro (raw)
    Cache mode:       writeback

Images:
image: rbd:rbd/manjaro
file format: raw
virtual size: 4.0G (4294967296 bytes)
[...]

(qemu) block_resize disk1 5120

poof, 이미지는 MiB에서 지정한 크기로 크기가 조정되고 VM은 새로운 크기를 보여줍니다.

qemu 2.7.0에서 다음을 테스트했습니다.

  • Ceph의 RBD-작업, 빠른 성장 또는 축소
  • qcow2 디스크 파일-작동 속도가 느리고 증가
  • 원시 디스크 파일-작동, 빠르게, 증가 또는 축소
  • 원시 LVM 디스크-모니터에서 정상적으로 보이지만 효과가 없습니다.

바닥에있는 테이블을 감상하십시오. 정말 도움이되었습니다.
cloaked1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.