QEMUディスクイメージのサイズを変更することはできますか?


10

タイトルが言うように:LinuxでQEMUディスクイメージのサイズを変更することは可能ですか?もしそうなら、その中のパーティションはどうなりますか?それらも自動的にサイズ変更されますか(疑わしい)、またはそれらに続いて未使用スペースの新しいブロックがありますか?

回答:


12

ここから:

!!! 以下を試す前にディスクイメージをバックアップしてください!!!

スパース生画像を使用している場合は、

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

ここで、hdd.imgはサイズを変更する生の形式の画像で、Nは画像の新しいサイズ(メガバイト単位)です。Nの単位を変更するには、ギガバイト(1000x1000x1000)単位のobsを1GBなどの別の値に変更します。

生の画像のサイズを変更したいが、それをスパースにしたくない場合(実際にはファイルにそれらのゼロが必要です)、「dd if = / dev / zero of = image seek = S count = NS obs = 1」を実行します代わりに、Nは新しいサイズ、Sは古いサイズ(バイト単位)です。

qcow2イメージのサイズを変更する場合、これはまだサポートされていません。

このメールは、16進エディターでqcow画像のサイズを変更する実験を示しています。

他の形式(VMware、Bochs、牛、またはcloop)の画像のサイズ変更または拡大は、私の知る限りサポートされていません。

Windowsホストでは、「コピー」コマンドを使用してrawフォーマットのディスクイメージのサイズを変更できます。必要に応じて、qemu-imgを使用して既存の画像を生の形式に変換できます。既存のrawフォーマットディスクイメージの最後に追加される一時的なrawフォーマットディスクイメージを使用します。この一時的な画像のサイズは、既存の画像が次のように拡大されるサイズです。

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

次に、以下のコマンドを発行する必要があります-orig.imgは、拡大したい既存の生の形式の画像、temp.imgは以前に作成された一時的な画像ファイル、new.imgはサイズ変更後の画像です:

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

次に、新しいイメージで既存のパーティションとファイルシステムを再パーティション化およびサイズ変更する必要があります。これを行う1つの方法は、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


14

qcow2イメージは、qemuの新しい/現在のバージョンに合わせてサイズを変更できます。たとえば、2Gのarch.qcow2があり、50Gにしたい場合は、次のように入力します。

qemu-img resize arch.qcow2 50G

それからqemuは私に言う:

image resized

それだけです、今日はこれをやったばかりです。redhatにはqemuに関する素晴らしいドキュメントがあります:


3
ただし、増加したスペースは未割り当てになります。パーティションツールを使用して仮想ディスクのサイズを変更する必要があります。
山猫

優れたソリューション!
RckLN

QEMU-IMGバージョン1.0は、私に語ったqemu-img: This image format does not support resize
HDave

2

2017の簡単な答え:既存の生の画像に30 GBを追加するには、このコマンドを使用しました:

qemu-img resize nameofimg.img +30G

これにより、既存のイメージファイルに30 GBが追加されます(新しいファイルを作成する必要はありません)。次に、ゲストVMで、Windows 10の「ディスク管理」などを使用して、簡単に既存のパーティションを拡張できます。

詳細とオプション:

man qemu-img

参照:qemu wiki> qemu-img


0

はい、できます。いいえ、パーティションやテーブルは変更されません。パーティションテーブルを更新して、ディスクサイズ全体を確保する必要がある場合があります。パーティションテーブルを大きくすると、最後に空の未使用スペースがあり、パーティションを切り刻んで失うか、縮小するとデータの最後の部分が失われます。 。

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ディスクファイル-動作、低速、成長のみ
  • rawディスクファイル-動作、高速、拡大または縮小
  • raw LVMディスク-モニターでは正常に見えますが、効果はありません
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.