私は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イメージをリサイズできますか?
クローンを作成してから、変更とサイズ変更を行うことで、vmdkのサイズを変更できました。
vboxmanage clonehd "virtualdisk.vmdk" "new-virtualdisk.vdi" --format vdi
vboxmanage modifyhd "new-virtualdisk.vdi" --resize 30720
あなたが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ファイルでも同じエラーが発生します。
私はMacホスト上にWindows 7クライアントを持っており、この投稿はとても役に立ちました。ありがとう。
私はgpartedを使用しなかったことを付け加えます。これは私がしました:
甘い!私はそれがデータ損失についての警告付きのサードパーティ製のツールを使うことを好んだ。
乾杯!
VBoxManageがうまくいきますが、 VBoxManage で作成した空き領域を割り当てるために GParted または別のツールを使用する必要があることを忘れないでください。
私のブログ投稿を見てください詳細な情報とステップバイステップのスクリーンショットを得るために。
実際には、これらのコマンドだけが必要です:
VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifyhd "cloned.vdi" --resize 51200
その後、Virtualbox GUIストレージでcloned.dviを選択できます。
その後、仮想ウィンドウを起動し、Code Chopsの方法としてCディスクを拡張します。
* .vdiファイルを* .vmdkファイルに戻す必要はありません。
これは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
です。
あなたはvmdkのサイズを変更するためにVMware Playerを使用することができます。あなたがそれをvmdkフォーマットに保ちたいならば、これは往復変換(他の記事で書き留めた)を取り除きます。 vmdkをvmwareに追加するときに、プロンプトが表示されたらアップグレード形式をクリックしないでください。VirtualBoxがそれを受け入れない場合は、現在の形式を維持してください。
ここですべてのソリューションを試しましたが、何も機能していないようです。何時間も掘り下げた後、私はこれを見つけました ブログ 投稿と魔法のようにすべてが機能します。私は少し調整する必要があったので、ここに修正版があります。 Dockerバージョン17.06.0-ce、ビルド02c1d87でテスト済み。
開発者が実際にアプリケーションのコンテナ化を開始すると、多くの場合、多くのイメージが生成され、デフォルトでDocker仮想マシンに割り当てられた20 GBのハードドライブ領域がすぐにいっぱいになります。 Docker仮想マシンに十分なディスク容量があることを確認するには、/ dev/sda1をより合理的な数に変更する必要があります。
Docker仮想マシンdocker-machine stop default
を停止します。
Boot2DockerパッケージインストーラーにはVMDKボリュームが付属しており、VirtualBoxのネイティブツールではサイズを変更できません。 Dockerディスクボリュームのサイズを変更するには、最初にデフォルトのVMDKボリュームvboxmanage clonehd /full/path/to/disk.vmdk /full/path/to/disk_resized.vdi --format VDI --variant Standard
からVDIボリュームのクローンを作成します。
vboxmanage modifyhd /full/path/to/disk_resized.vdi --resize <size in MB>
を推奨します。default
VMを選択し、上部の[設定]ギアをクリックします。 docker-machine start default
を起動して、ボリュームのサイズ変更が成功したことを確認します縮小 /画像サイズについては、次の手順に従います。
cat /dev/zero > z;sync;sleep 3;sync;rm -f z
VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifyhd cloned.vdi --compact
VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk
Lucaの answer に記載されているとおり、必要な手順は次のとおりです。
VMDKイメージをVDIフォーマットにクローンする
VBoxManage clonehd "source.vmdk" "cloned.vdi" --format vdi
VDIイメージのサイズを変更する
VBoxManage modifyhd "cloned.vdi" --resize 51200
VMDKフォーマットにクローンし直す
VBoxManage clonehd "cloned.vdi" "resized.vmdk" --format vmdk
代わりにVDIイメージを使用できる場合、手順3はオプションです。
これらすべての手順は、VirtualBoxのグラフィカルユーザーインターフェイスのFile -> Virtual Media Manager
でも実行できます。クローンを作成するドライブを選択してから、Copy
を選択します。ダイアログが開き、ディスクフォーマットとオプションを選択できます。 VDI画像のサイズを変更するには、一番下のスライダーを使用します(表示されていない場合はProperties
をクリックします)。
最後に、ゲストOSのディスクサイズも変更する必要があります。
gparted
またはkparted
を使用できます。Windows用VirtualBox
保存中にディスクファイルのサイズを変更する 仮想マシンの設定を維持します!
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
ファイルの名前を変更します。
ディレクトリに残っている.bak
ファイルを削除しても安全です。残っているのは、以前に保存したVirtualBox Manager設定を使用しながら、更新された.vmdk
データベースを使用してサイズ変更された.vbox
です。
これで、VirtualBox VM Managerを起動して、新しい空き領域を埋めるためにオペレーティングシステムに適したツールを使用してVMを実行できます。
Windows VM の場合は、Windows Recovery Consule(リカバリパーティション)から起動したプロンプトのdiskpart
をSELECT DISK 1
、LIST 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"パーティションとして認識されます。
インターネットだから。 ;)これで終了です。 VirtualBox for Windowsを使って、新しいサイズ変更された仮想.vmdk
ディスクイメージを楽しんでください。
これは、固定フォーマットかダイナミックフォーマットかに関係なく、VirtualBoxディスクのサイズを変更する方法です。具体的には、ディスクが固定フォーマットのときに発生したエラーを防ぎます。
virtual️仮想ディスクをバックアップします。あなたは何がうまくいかないのかわからない。
あなたのホスト上で:
端末ウィンドウを開きます。
Windowsの場合:コマンドプロンプト
cmd
を開きます。
サイズを変更したい仮想ディスクのあるディレクトリに移動します。例えば:
cd "My VMs"
希望のファイル名、サイズ(メガバイト単位)、フォーマット(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
元のディスクを新しいディスクにコピーします。
VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
サイズ変更が完了しました。必要に応じて、新しいディスクのプロパティを確認できます。
VBoxManage showmediuminfo "MyNewDisk.vdi"
代わりに新しいディスクを使用するように仮想マシンを変更してください。
次に、ゲストOSで、新しく利用可能なスペースを使用するようにパーティションのサイズを変更する必要があります。
私のDocker(CoreOS)開発環境用にディスクのサイズを変更する必要があったので、ここに来ました。
CoreOSのドキュメントによると、OSパーティションのサイズを変更する必要はない、と言うのは偽物です。仮想ディスクのサイズを変更したら、次の手順に従ってGPartedでOSパーティションのサイズを変更してください。
すばやく簡単なオプション:
古いディスクから新しいディスクの内側にコンテンツを移動します。
vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing
機械の電源を入れる
警告
新しいディスクがソースより短い場合は、ソースディスクの新しいディスクサイズの位置からデータを損失の位置に移動します。
ステップ1の前に、OS内のソースディスクの最後に、デルタスペースが解放されるのを防ぐことができます。