VirtualBoxの仮想HD容量の上限を増やす

VirtualBoxの仮想HDは可変サイズで設定しても、作った後から最大容量より増やす事といった機能が無い。
そこで、このページを参考にしてみたところ、HDの内容を保持したまま容量を増やす事に成功した。
http://d.hatena.ne.jp/AkiSuTe/20090421/1240311507

仮想HD最大容量は変えられなくても、新しく作成した別の仮想HDにパーティションをコピーして、新しい仮想HDのほうのパーティション容量を最大容量まで増やす事はできるらしい。
必要なツールは、isoをネットからダウンロードしてVirtualBoxにマウントすることで、CDブートで使えるので、とても手軽。

新しい仮想HDを作成する。

変えたい容量を持たせた仮想HDを、既存の仮想HDとは別に、新たに作成する。もちろん、可変容量設定にする。
元の容量は10GBで新しい容量は100GBとする。

パーティションをコピーする

Clonezilla
http://www.clonezilla.org/
ここからisoを落として仮想HDと同じセッションにマウントし、セッションを起動すると、CDブートと同じようにClonezillaを起動できる。

コピーした仮想OS領域を整理しバックアップする

新しい仮想HDからOS(WindowsXP)をセーフモードで起動し、起動ドライブをクリーンアップして不要なファイルを消し、空き容量を増やした後、ディスクデフラグを掛けて、断片化ファイルを極限まで減らす。
それが終わったら、一旦セッションを閉じて、仮想HDファイル(.vdi)のコピーを作成しておく。

パーティション容量を増やす

GParted(Gnome Partition Editor)
http://gparted.sourceforge.net/
ここからGParted Live CDのイメージ(iso)を落として、仮想HDと同じセッションにマウントし、セッションを起動すると、Clonezillaと同じようにCDブートできる。
ツールを起動したら、パーティション容量を10GBから最大容量の100GBまで拡張し、変更を反映する。これで容量を増やす事ができた。
しかし、このままWindowsXPを起動しても、使える容量が増えるわけではない。

ディスクエラーチェックを行う

自分の場合は、100GBのうち10GB足らずしか使われていなかったので、GPartedで容量を80GBに減らした後、100GBに戻す操作を加え、次のOS起動でエラーチェックが行われるような状況を誘発したが、一旦増やしたパーティションを減らすのは危険なので、WindowsXP上でディスクエラーチェックの予約を行った後、再起動するのが安全だろう。
原因はよく分からないが、エラーチェックを行わないと、パーティションの最大容量が増えたことが反映されないらしい。

これらの操作で、セッション内容を保持したままHD容量だけを増やす事に成功した。

ただ、この方法は仮想HDの内容が壊れるリスクがあるし、手間も掛かり、物理HD領域を喰うため、極力容量を増やさずに済むよう、最大容量は予め可能な限り大きくしたほうが良い。