qcow2
コンテナーの仮想サイズを小さくして、10 GBのディスクを備えたOpenStackフレーバーに収まるようにしています。
root@node-10:~# qemu-img info zztop.qcow
image: zztop.qcow
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 2.6G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
ガイド here に従い、ディスクの末尾をゼロで埋めてから、qemu-img convert -O qcow2
を実行します。ただし、結果のqcow2は同じディスクサイズと仮想サイズを保持します。
Qcow2の仮想サイズを下げて、80GB未満のOpenStackフレーバーに収まるようにするにはどうすればよいですか?
仮想サイズを縮小したい場合は、 virt-resize
qemu-img convert -O raw guest.img guest.raw
qemu-img resize guest.raw 3G
qemu-img convert -O qcow2 -o compat=0.10 guest.raw guest.img
1-存在する場合、fstabのスワップファイルを無効にする
2-gpartedをマウントしますVM cd-rom
3-VMを起動し、gpartedを起動して、パーティションのサイズを小さくします
4-スワップパーティションを削除して再作成するか、すべてのパーティションがディスクの先頭で互いに隣接していることを確認します。パーティションを縮小した後、ディスクの最後にスワップがあるという問題があったので、これが修正されました。
5-VMをシャットダウンする
6-同じディレクトリでqcow2ファイルを見つけ、「qemu-img create -f qcow2 -o preallocation = metadata new-disk.qcow2 80G」を実行します(80Gは新しいディスクサイズです)
7-virt-resizeを使用-'virt-resize old-disk.qcow2 new-disk.qcow2'
8-new-diskをcoptしてVMのファイル名を修正し、VMを開始してスワップを再度有効にします: 'swapon/dev/sda5'
9-fstabを編集してswapを追加します: '/ dev/sda5 swap swap defaults 0 0'
できました。
ホスト側からのみ操作すると、ゲストファイルシステムが破損したままになる可能性があります。
したがって、完了するには この回答 を使用し、ホストから変更を加える前に、VMの内部からgparted
などのパーティション分割ツールを使用してVMのストレージパーティションサイズを変更する必要があります。そのため、仮想ディスクの合計サイズは、仮想ストレージの必要なサイズよりも小さくなります。その後、最初の3つのステップを実行できます。
@ user370956の回答の改善
画像の実際のサイズを5.9Gから3.5Gおよびv。サイズに正常に縮小することもできました。
cp guest.img quest.backup
qemu-img convert -O raw guest.img guest.raw
-cdrom
としてマウントされたライブISOを起動し、guest.raw
を-drive
としてマウントされたqemu-system-x86_64 -machine type=pc,accel=kvm -boot order=d -drive file=guest.raw,format=raw -cdrom ~/Downloads/debian-live-9.6.0-AMD64-lxde.iso -m 2G
を起動します。fsck -a
qemu-img resize guest.raw 3G
qemu-img convert -O qcow2 guest.raw guest.img
qemu-img resize guest.img +1G