web-dev-qa-db-ja.com

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

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

12
Richie Marquez

から ここ

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

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

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

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

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

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

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

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

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

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

次に、以下のコマンドを発行する必要があります-orig.imgは、大きくしたい既存のraw形式の画像、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

12
fretje

Qcow2イメージは、qemuの新しいバージョンまたは現在のバージョンで拡大するようにサイズ変更できます。たとえば、2GのArch.qcow2があり、それを50Gにしたい場合は、次のように入力します。

qemu-img resize Arch.qcow2 50G

それからqemuは私に言います:

image resized

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

17
user1026169

2017年の簡単な回答:追加する既存の未加工イメージに30 GB私はこのコマンドを使用しました:

qemu-img resize nameofimg.img +30G

これにより、既存の画像ファイルに30 GBが追加されます(新しいファイルを作成する必要はありません)。次に、ゲストで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ディスクファイル-動作し、遅い、拡張のみ
  • 未加工ディスクファイル-動作、高速、拡大または縮小
  • raw LVMディスク-モニター内は正常に見えますが効果はありません
1
Peter