it-swarm-korea.com

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

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

12
Richie Marquez

여기 에서 :

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

희소 원시 이미지를 사용하는 경우 다음을 수행하십시오.

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

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

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

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

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

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

Windows 호스트에서는 '복사'명령을 사용하여 원시 형식 디스크 이미지의 크기를 조정할 수 있습니다. 필요한 경우 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를 부팅하는 것입니다.


위의 방법이 작동하지 않는 경우 확인해야 할 다른 링크 :

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

12
fretje

Qcow2 이미지는 qemu의 새/현재 버전에 맞게 크기를 조정할 수 있습니다. 예를 들어 2G 인 Arch.qcow2가 있고 50G가되기를 원합니다.이 경우 다음을 입력합니다.

qemu-img resize Arch.qcow2 50G

그러면 qemu는 나에게 말합니다.

image resized

그게 다야, 나는 오늘 이것을했다. redhat에는 실제로 qemu에 대한 Nice 문서가 있습니다.

17
user1026169

2017 년의 짧은 대답 : 추가하기 기존 원시 이미지에 30GB 추가 방금 다음 명령을 사용했습니다.

qemu-img resize nameofimg.img +30G

이렇게하면 기존 이미지 파일에 30GB가 추가됩니다 (새 파일을 만들 필요 없음). 그런 다음 게스트에서 VM Windows 10에서 "디스크 관리"를 사용하여 기존 파티션을 쉽게 확장 할 수 있습니다.

추가 정보 및 옵션 :

man qemu-img

참조 : qemu wiki> qemu-img

3
firepol

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

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

그리고 휙, 이미지는 MiB에서 지정한 크기로 크기가 조정되고 VM는 새 크기를 표시합니다.

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

  • Ceph의 RBD-작동, 빠르게, 확장 또는 축소
  • qcow2 디스크 파일-작동, 느림, 성장 만
  • 원시 디스크 파일-작동, 빠르게, 확장 또는 축소
  • 원시 LVM 디스크-모니터에서 정상적으로 보이지만 효과가 없습니다
1
Peter