web-dev-qa-db-ja.com

VirtualBoxのvmdkファイルのサイズを変更する方法

私はvmdkである仮想マシンディスクのスペースを使い果たし、仮想イメージのサイズを変更する必要があります。コマンドでサイズ変更

vboxmanage modifyhd Machine-disk1.vmdk --resize 30720

エラーを出します

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

どうやってvmdkイメージをリサイズできますか?

491
Brian

クローンを作成してから、変更とサイズ変更を行うことで、vmdkのサイズを変更できました。

vboxmanage clonehd "virtualdisk.vmdk" "new-virtualdisk.vdi" --format vdi
vboxmanage modifyhd "new-virtualdisk.vdi" --resize 30720
180
Brian

あなたがvmdkハードディスクを取り戻すのをやめたいなら(多分あなたもvwmareでそのディスクを使うことに興味があるでしょう)、完全なステップは以下の通りです:

VBoxManage clonemedium "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifymedium "cloned.vdi" --resize 51200
VBoxManage clonemedium "cloned.vdi" "resized.vmdk" --format vmdk

上記は、ハードディスクのサイズを最大50GB(50 * 1024MB)に変更します。

作業を完了するために あなたもドライブのサイズを変更する必要があります!これを実現するには、 gparted isoをダウンロードしてそのisoから起動し、ドライブのサイズを変更します(virtualbox設定内からisoを選択します)。

P.S新しいサイズが小さすぎると、新しいvdiファイルでも同じエラーが発生します。

743
Luca Borrione

私はMacホスト上にWindows 7クライアントを持っており、この投稿はとても役に立ちました。ありがとう。

私はgpartedを使用しなかったことを付け加えます。これは私がしました:

  1. 新しい拡大されたvmdkイメージを起動します。
  2. [スタート]に移動して[コンピュータ]を右クリックし、[管理]を選択します。
  3. ディスクの管理をクリックします
  4. あなたはあなたの(私の場合)Cドライブにいくらか灰色のスペースが見えるはずです
  5. Cドライブを右クリックして、[ボリュームの拡張]を選択します。
  6. サイズを選んで行く

甘い!私はそれがデータ損失についての警告付きのサードパーティ製のツールを使うことを好んだ。

乾杯!

42
CodeChops

VBoxManageがうまくいきますが、 VBoxManage で作成した空き領域を割り当てるために GParted または別のツールを使用する必要があることを忘れないでください。

私のブログ投稿を見てください詳細な情報とステップバイステップのスクリーンショットを得るために。

30
tvial

実際には、これらのコマンドだけが必要です:

VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifyhd "cloned.vdi" --resize 51200

その後、Virtualbox GUIストレージでcloned.dviを選択できます。

その後、仮想ウィンドウを起動し、Code Chopsの方法としてCディスクを拡張します。

* .vdiファイルを* .vmdkファイルに戻す必要はありません。

29
New Bentley

これはvmdkファイルなので、VMWareのvdiskmanagerを使用することができます(それがあなたのプラットフォームで利用可能な場合)。 VMWareには、x86 Linux、Windows、およびOS Xのバージョンがあります ここ

そして、あなただけです:

1023856-vdiskmanager-windows-7.0.1.exe -x 30720M Machine-disk1.vmdk

クローンを作成してからディスクを拡張する必要がなくなります。今、欠点はあなたが余分なツールが必要であることであり、そしてvmdkはVMWareのディスクフォーマットであり、そしてあなたはまだVirtualboxを使っているので、非互換性があるかもしれません。

qemu-imgでも動作するかもしれませんが、vmdkファイルのサイズ変更をサポートしているかどうかはわかりません。それは次のようになります。

qemu-img resize Machine-disk1.vmdk +8G

そして、両方とも、基礎となるディスクのサイズを変更した後で、パーティションを拡張する必要があります。これらのツールはすべて基本的にdd if=/dev/old_disk of=/dev/new_disk bs=16Mです。

19
David Ehrmann

あなたはvmdkのサイズを変更するためにVMware Playerを使用することができます。あなたがそれをvmdkフォーマットに保ちたいならば、これは往復変換(他の記事で書き留めた)を取り除きます。 vmdkをvmwareに追加するときに、プロンプトが表示されたらアップグレード形式をクリックしないでください。VirtualBoxがそれを受け入れない場合は、現在の形式を維持してください。

14
micwallace

ここですべてのソリューションを試しましたが、何も機能していないようです。何時間も掘り下げた後、私はこれを見つけました ブログ 投稿と魔法のようにすべてが機能します。私は少し調整する必要があったので、ここに修正版があります。 Dockerバージョン17.06.0-ce、ビルド02c1d87でテスト済み。

開発者が実際にアプリケーションのコンテナ化を開始すると、多くの場合、多くのイメージが生成され、デフォルトでDocker仮想マシンに割り当てられた20 GBのハードドライブ領域がすぐにいっぱいになります。 Docker仮想マシンに十分なディスク容量があることを確認するには、/ dev/sda1をより合理的な数に変更する必要があります。

  1. ダウンロード GParted Live CD/USB/HD/PXEブータブルイメージ
  2. Docker仮想マシンdocker-machine stop defaultを停止します。

  3. Boot2DockerパッケージインストーラーにはVMDKボリュームが付属しており、VirtualBoxのネイティブツールではサイズを変更できません。 Dockerディスクボリュームのサイズを変更するには、最初にデフォルトのVMDKボリュームvboxmanage clonehd /full/path/to/disk.vmdk /full/path/to/disk_resized.vdi --format VDI --variant StandardからVDIボリュームのクローンを作成します。

  4. 新しく複製されたVDIボリュームのサイズを目的の容量に変更します。少なくとも64GB vboxmanage modifyhd /full/path/to/disk_resized.vdi --resize <size in MB>を推奨します。
  5. VirtualBoxアプリケーションを起動し、default VMを選択し、上部の[設定]ギアをクリックします。 VirtualBox Manager
  6. 「ストレージ」アイコンをクリックします。デフォルトのVMDKボリュームを削除します。 enter image description here
  7. 新しいIDEコントローラーを追加します。 IDE controller
  8. 「CD/DVDデバイスの追加」オプションを使用してGParted ISOをマウントします。 Add CD/DVD Device
  9. 「CD/DVDデバイスの追加」オプションを使用して、クローンされたVDIボリュームをマウントします。 Mount volume
  10. ソリッドステートハードドライブを搭載したコンピューターでDockerを実行している場合は、クローンされたVDIボリュームに対して[ソリッドステートドライブ]オプションが選択されていることを確認してください。 Solid-state Drive
  11. 「開始」アイコンをクリックしてDocker仮想マシンを起動し、GParted ISOを起動します。 「GParted Live(デフォルト設定)」を選択します。 GParted Live (Default settings)
  12. キーマップを処理するためのポリシーを「キーマップに触れないでください」に設定します。 keymaps
  13. 言語設定をオプション「33」に設定します。これは「US English」にマッピングされます。 US English
  14. オプション「1」を選択して「Forcevideo」を実行し、Xを手動で構成します。 Forcevideo
  15. オプション「2」を選択して、デフォルトの解像度「1024×760」のままにします。 1024×760
  16. デフォルトの「vesa」をVGAカードとして保持します。 Leave blank if default is desired
  17. オプション「0」を選択して、デフォルトの色深度「24」のままにします。 Colour depth
  18. GPartedが起動したら、「サイズ変更/移動」アイコンをクリックします。 GParted
  19. スライダーをドラッグして、新しいディスクボリュームサイズを目的のサイズに設定します。この例では、最大サイズは127,035MBです。 「サイズ変更/移動」ボタンをクリックしてプロセスを開始します。 Disk volume size
  20. 「適用」ボタンをクリックして、サイズ変更操作を確認します。 Bake it
  21. サイズ変更操作が終了したら、マシンの電源を切ります。 Hard reset, np :)
  22. GParted ISOを削除します。 Your almost done
  23. Docker仮想マシンにログインして、マシンdocker-machine start defaultを起動して、ボリュームのサイズ変更が成功したことを確認します
  24. ネットワークの問題が発生した場合は、docker-machineを再起動してください
10
Ako

縮小 /画像サイズについては、次の手順に従います。

  1. クライアントマシン上cat /dev/zero > z;sync;sleep 3;sync;rm -f z
  2. クライアントマシンをシャットダウンする
  3. ホスト上VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
  4. ホスト上VBoxManage modifyhd cloned.vdi --compact
  5. ホスト上VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk
10
Londeren

Lucaの answer に記載されているとおり、必要な手順は次のとおりです。

  1. VMDKイメージをVDIフォーマットにクローンする

    VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi

  2. VDIイメージのサイズを変更する

    VBoxManage modifyhd "cloned.vdi" --resize 51200

  3. VMDKフォーマットにクローンし直す

    VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk

代わりにVDIイメージを使用できる場合、手順3はオプションです。

これらすべての手順は、VirtualBoxのグラフィカルユーザーインターフェイスのFile -> Virtual Media Managerでも実行できます。クローンを作成するドライブを選択してから、Copyを選択します。ダイアログが開き、ディスクフォーマットとオプションを選択できます。 VDI画像のサイズを変更するには、一番下のスライダーを使用します(表示されていない場合はPropertiesをクリックします)。

最後に、ゲストOSのディスクサイズも変更する必要があります。

  1. ゲストOSを実行してディスクパーティションのサイズを変更します。 Linuxを実行している場合は、gpartedまたはkpartedを使用できます。
9
teekarna

Windows用VirtualBox

保存中にディスクファイルのサイズを変更する 仮想マシンの設定を維持します!


手順1 - ディスクファイルのサイズを変更する

Cmd.exeを起動します。

cd to Oracle VM VirtualBoxのディレクトリ(64ビットシステムの場合:"C:\Program Files\Oracle\VirtualBox\"

上記のようにこれらのコマンドを実行します。

VBoxManage clonehd "C:\path\to\source.vmdk" "C:\path_to\cloned.vdi" --format vdi
VBoxManage modifyhd "C:\path\to\cloned.vdi" --resize 51200

Windowsエクスプローラとアドレスバーを介した「テキストをアドレスとしてコピー」は、必要なパスを取得するのに役立ちます。

Windowsシステムでは、ユーザーの下のVirtaulBox VMディレクトリに、VM用に設定したXMLフォーマットのデータベースファイルが含まれている場合があります。このファイルの名前を.bak拡張子で変更します(.vbox拡張子が付いています)。別のエラーを回避するために、元の.vmdkファイルの拡張子を.bakに変更します。これで、エラーメッセージなしで3番目の手順を安全に実行して、コンピュータを.vmdk形式に変換したり、「ディスクの複製」エラーを発生させることができます。

VBoxManage clonehd "C:\path_to\cloned.vdi" "C:\path_to\source.vmdk" --format vmdk

UIDトークン が表示されます。このトークンをコピーするには、Windows Command Interpetorウィンドウからドラッグして、キーボードショートカットのCtrl+Cを使用します。

メモ帳++などのテキストエディタで.vbox.bakファイルを開きます。 XMLのようなデータベースファイルが表示されます。次の行を探してください。

<VirtualBox xmlns="http://www.virtualbox.org/" version="1.16-windows">
  <Machine uuid="{some uid}" name="source disk name" OSType="the_vbox_OS" snapshotFolder="Snapshots" lastStateChange="2043-03-23T00:54:18Z">
    <MediaRegistry>
      <HardDisks>
        <HardDisk uuid="{some uid}" location="C:\path_to\source.vmdk" ...

<HardDisk uuid="{some uid}" location="C:\path_to\source.vmdk" ...行で、 delete の間の古いUIDトークンと paste コマンドウィンドウからコピーしたもの。角かっこ をそのまま のままにしてください。

このファイルを保存してテキストエディタを終了します。予想される拡張子.vbox.bakを元に戻すために、.vboxファイルの名前を変更します。


ステップ2 - がらくたを取除く

ディレクトリに残っている.bakファイルを削除しても安全です。残っているのは、以前に保存したVirtualBox Manager設定を使用しながら、更新された.vmdkデータベースを使用してサイズ変更された.vboxです。


ステップ3 - 空き領域を埋めるためにディスクのパーティションのサイズを変更する

これで、VirtualBox VM Managerを起動して、新しい空き領域を埋めるためにオペレーティングシステムに適したツールを使用してVMを実行できます。

Windows VM の場合は、Windows Recovery Consule(リカバリパーティション)から起動したプロンプトのdiskpartSELECT DISK 1LIST PARTITIONに使用し、C:\ドライブのパーティション番号を集めてからSELECT PARTITION #を選びます。 EXTEND SIZE=mbを使用して、Windows C:\ドライブのサイズを適切な値に変更できます。リカバリパーティションとブートパーティション用のスペースを必ず確保してください。シャドウコピーとWindows回復ファイルのため、この値を得るために新しい仮想ディスクサイズから4096 MBを差し引いても安全です。

Linux VMs の場合、VMのディスクファイルで起動できるgpartedのライブ.ISOは、次の場所にあります。 http://gparted.org/ グラフィカルユーザーインターフェイスに直接アクセスできます。あなたの空き領域を埋めることができるところから - ベースのgparted-gtk。

PPC/Mac VMs の場合、FinderからのDisk Utilityが空き領域を埋めるのに役立ちますが、現在のように gparted Linuxオプション を検討してくださいVirtualBoxでMacOSXを起動する唯一の方法はハッキントッシュです、そしてMacOSXで起動している間あなたのボリュームを拡張することはできません。また、gparted用にVMの設定を一時的に微調整して起動させることもできます。 MacOSXパーティションは、gpartedによってHFS - "Heaping File System"パーティションとして認識されます。


ステップ4 - 猫の写真

インターネットだから。 ;)これで終了です。 VirtualBox for Windowsを使って、新しいサイズ変更された仮想.vmdkディスクイメージを楽しんでください。

8
Robert Smith

これは、固定フォーマットかダイナミックフォーマットかに関係なく、VirtualBoxディスクのサイズを変更する方法です。具体的には、ディスクが固定フォーマットのときに発生したエラーを防ぎます。


virtual️仮想ディスクをバックアップします。あなたは何がうまくいかないのかわからない。

あなたのホスト上で:

  1. 端末ウィンドウを開きます。

    Windowsの場合:コマンドプロンプトcmdを開きます。

  2. サイズを変更したい仮想ディスクのあるディレクトリに移動します。例えば:

    cd "My VMs"
    
  3. 希望のファイル名、サイズ(メガバイト単位)、フォーマット(Standard(動的)またはFixed)で新しいVirtualBoxディスクを作成します。たとえば、MyNewDisk.vdiという50 GBの固定フォーマットディスクを作成するには、次のように入力します。

    VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
    

    VBoxManageがコマンドとして認識されない場合は、そのフルパスを指定してください。 VirtualBoxのインストールディレクトリにあります。 Windowsでは、上記のコマンドは次のようになります。

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
    
  4. 元のディスクを新しいディスクにコピーします。

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
    
  5. サイズ変更が完了しました。必要に応じて、新しいディスクのプロパティを確認できます。

    VBoxManage showmediuminfo "MyNewDisk.vdi"
    
  6. 代わりに新しいディスクを使用するように仮想マシンを変更してください。

次に、ゲストOSで、新しく利用可能なスペースを使用するようにパーティションのサイズを変更する必要があります。

私のDocker(CoreOS)開発環境用にディスクのサイズを変更する必要があったので、ここに来ました。

CoreOSのドキュメントによると、OSパーティションのサイズを変更する必要はない、と言うのは偽物です。仮想ディスクのサイズを変更したら、次の手順に従ってGPartedでOSパーティションのサイズを変更してください。

https://docs.docker.com/articles/b2d_volume_resize/

3
lucasmartins

すばやく簡単なオプション:

  1. 機械の電源を切る
  2. 希望のサイズの新しい仮想ボックスディスクを作成する
  3. 古いディスクから新しいディスクの内側にコンテンツを移動します。

    vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing
    
  4. 機械の電源を入れる

  5. あなたはディスクの残りを埋めるためにOSのパーティションのサイズを変更する必要があるかもしれません

警告

新しいディスクがソースより短い場合は、ソースディスクの新しいディスクサイズの位置からデータを損失の位置に移動します。

ステップ1の前に、OS内のソースディスクの最後に、デルタスペースが解放されるのを防ぐことができます。

2