web-dev-qa-db-ja.com

modifyhdコマンドで動的VDIのサイズを変更できないのはなぜですか?

ここに表示されます 仮想マシンのハードディスクサイズを増やす方法

次のようなコマンドで動作するはずです

VBoxManage modifyhd xp.vdi --resize 2000

VDIのサイズが固定されている場合、次のエラーを取得できます。

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

その議論と解決策は ここ です。

しかし、VDIが動的なときにエラーが発生します

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)

何故ですか?

27
user47206

VBoxManage modifyhdを使用するには、次の注意事項があります。

  • ドライブは.VDIまたは.VHD形式である必要があります。
  • ドライブは固定形式ではなく、動的形式でなければなりません(固定ディスクはクローンを作成することで動的形式に変換できます)。
  • ドライブのサイズは、物理サイズではなく、logicalサイズにのみ影響します。
  • ドライブを物理サイズ以下に縮小することはできません。
  • 物理サイズの縮小 の場合、未使用のドライブ領域を0で埋める必要があります。
  • Windows VDIは、物理サイズを縮小する前に最適化する必要がある場合があります。

上記の例では、物理サイズが4693 MBから2000 MBのダイナミックディスクのサイズを変更しようとしましたが、これは不可能です。したがって、エラー。

25
Takkat

この回避策は私のために働いた:

  1. マシンをシャットダウンします
  2. 希望するサイズで管理インターフェイスを介して新しいドライブを作成します
  3. VBoxManage clonemedium--existingフラグとともに使用します

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    

:これで、新しいディスクには余分なスペースが割り当てられていないため、gpartedを使用してサイズを最大に拡張する必要があります。

VirtualBoxの連中がVBOX_E_NOT_SUPPORTED...を投げる代わりに上記を使用してこれを実装できなかった理由がわからない:少なくともこれへのリンク:)

21
ripper234

ここに全体のプロセスがあります、私は可能な限り詳細になるようにしようとします

  1. サイズを拡大するマシンが「シャットダウン」状態(「保存済み」または他の状態ではない)であることを確認します。

私の場合、それは32 GBサイズのマシンで、SMALL VMと呼びます。

  1. 新しい希望のサイズで新しい仮想マシンを作成する

私の場合この新しいVM内の小さなマシンのコンテンツを復元しながら、70 GBの新しい仮想マシンを作成することにしましたそして、これをLARGE VMと呼びます=

  1. コマンドVBoxManage list hddsを実行するか、Virtual Media Managerを開いてSMALL VM(Origin)および_のGUIDを取得します。GUIDの-​​大規模仮想マシン(宛先)

これらのGUIDで次のコマンドを作成します

VBoxManage clonemedium SMALL_VM_GUID LARGE_VM_GUID --existing

私の場合Origin-SMALL VM is ::9143127-42b6-478a-afb2-5e58f14218b

私の場合DESINATION-LARGE VM is ::bb808b5b-b88c-49b2-a646-3414af906d84

もちろん、GUIDは私のGUIDとは異なります

GUIDを逆にしないでください。逆にしないと、新しいマシンが既存のマシンの内容を置き換えます!!!!

Originと宛先を混在させていないことを確認した後、次のコマンドを実行します。

$ VBoxManage clonemedium 39143127-42b6-478a-afb2-5e58f14218b2 bb808b5b-b88c-49b2-a646-3414af906d84-既存

0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%

「VDI」形式で作成されたクローンメディア。 UUID:bb808b5b-b88c-49b2-a646-3414af906d84

  1. ステップ2で作成した新しいLARGE VMを開始します。

  2. コンピューターの管理ウィンドウツールで、マシンに実際にはより多くのサイズの未使用/未フォーマットのスペースがあることを確認します

  3. 必要に応じて、Cドライブで「chkdsk」を実行して、すべての準備ができていることを確認できます(これにより、LARGE VMで2回再起動する場合があります)

  4. Gparted-live * .isoを使用して、新しい仮想マシンに「挿入」し、再起動します

  5. Gparted環境を起動します

  6. パーティションを拡大して変更を保存する

  7. gparted-live * .isoを「イジェクト」してWindowsを再起動します

  8. コンピューターの管理ウィンドウツールで、マシンのCドライブが大きくなり、スペックの問題を解決できることを確認します。

これらのプロセスのスクリーンショットはありましたが、「急いで」Windows仮想マシンの空き領域を確保しようとする人にとっては大きくて恐ろしいことに答えるので、それらを含めないことにしました。