VirtualBoxで動かしている仮想マシン(vdi形式)の拡張

Virtualboxで動かしていたUbuntu16.04に「No space left of device」といわれて焦ってディスク拡張をした時の手順メモ。スナップショットがディスク拡張をできなくしていたことについてのメモ。

状況

  • VirtualBox上のUbuntu16.04を操作中、「No space left of device」といった警告が出て、どうにかしないといけないという状況。
  • 検索ワード「VirtualBox ディスク拡張」で見つかったサイトを探して、コマンドプロンプトから VBoxManage modifyhd xxxxx.vdi --resize 20480 を実行したところ特にエラー発生はなし
  • VirtualBoxの「設定」→「ストレージ」の「情報」で表示される「仮想的なサイズ」は20.00GBになっており拡張成功した模様(もともとは10.00GB)
  • だけど、gpartedコマンドでパーティションを設定しようと思ったが、下図のようにサイズが10GBのままになっている
     f:id:Tiratom:20180329121804p:plain
    ※前記事にあるようにアプリを削除した後、1Gほどディスクが空いたので、その分パーティションを若干いじっています。


環境

  • VirtualBox バージョン 5.1.30 r118389 (Qt5.6.2)
  • Ubuntu16.04

手順概要

スナップショットが残っていると、うまく拡張できないみたいです。
こちらのサイトのおかげで救われました。virtualboxで仮想ディスクが拡張できない場合 | 山下寛人オフィシャルブログ


手順詳細

「VBox ストレージ 拡張」等で検索すると、とてもきれいにまとまった手順サイトがたくさん出てきます。 ただ、スナップショットが残っていると、 VBoxManage modifyhd xxxxx.vdi --resize YYYY をした後も、 ''' VBoxManage showhdinfo xxxxx.vdi ''' からは Capacity が増えているのに該当マシンを立ち上げてgpartedを実行しても容量が増えていないということがあるようです。
そのため前述の記事内で述べられているように、スナップショットを消せばよい、という話になります。
しかし、同様に述べられているように、消そうとすると処理が止まります。エラーが起こります。
そこで、同様に述べられているように「現在のマシンの状態」(=スナップショットなし)でクローンをして残りの作業を進めていく必要があります。

そのほか

今回混乱した理由としては、VirtualBoxのディスク拡張をした際の状況が会社と家で異なっていたからでした。
会社では、もともと使っていたPCから新しいPCに、VirtualBoxのデータの引っ越しをしていました。
引っ越しの際に、古いPCで「仮想アプライアンスのエクスポート」を実行し、新しいPCにそのデータを転送していました。エクスポートだとスナップショットの情報までは出力されなかったのかな?

一方、おうちのPCでは、引っ越し等はなくスナップショットが複数残っていたものに対する拡張だったので、うまく一発では拡張できなかったという経緯のようでした。
また、お恥ずかしい限りですが、VDIは「可変サイズ」ということでPC自体の容量がいっぱいにならない限りVirtualBoxの仮想ディスクがどんどん大きくなってくれるのかと思っていました。そういうわけではなかったようですね。