« ノートPCの中身を VirtualBoxの仮想環境にコピーしてみた | トップページ | Firefox 7 の Sync機能は、ブックマークを追加すると即座に同期する »

2011.09.29

VirtualBox の仮想ハードディスクのサイズを小さくする

前回、ブログにノートPCの内蔵ハードディスクを全部外付けディスクに書き出して、VirtualBoxの仮想環境に移行させてみる実験について書いた。あの時は、ディスクの容量削減について何も考えていなかったので、外付けディスクの中にファイルとしてできあがった仮想ハードディスクは、もとのハードディスクとほぼ同じ76GBだった。

このままでも特に不自由はないのだけれど、今後、この仮想ハードディスクの複製を作っていろいろ実験するとなれば、ファイルサイズは小さいほうが複製を作る時間が短くてすむので、VirtualBoxの管理コマンドを使って、仮想ハードディスクの実際のサイズ(仮想的な容量ではなく、実際に外付けハードディスク上にあるファイルとしてのサイズ)を小さくしてみた。

手順は、以下の通り。

まず、仮想PCでWindowsを起動し、MyDefrag で、可能な限りファイルを仮想ディスクの先頭部分に集める。BartPEのISOイメージなどを使って、Cドライブではなく仮想CD-ROMからMyDefragを起動したほうが、移動対象にできるファイルは増えるが、NTFSのファイル情報を管理しているビットマップファイルやセキュリティファイルは、BartPE上を使ってMyDefragを走らせた場合でも移動不可なので、実際の効果としては、あまり差はない。

ファイルを仮想Cドライブの前方に集めたら、PartedMagicなど、CDから起動できるLinux系のディスクユーティリティのディスクイメージを仮想PCのCDドライブにセットして再起動する。パーティション切りなおしのユーティリティで、Cドライブのサイズを16GBくらいまで減らし、残り全部を未フォーマットなパーティションとして割り当てた。次に、
 dd if=/dev/zero of=/dev/sda2
を Linuxのコンソール上で実行し、2番目のパーティションをゼロで塗りつぶす。

最後に、ホストOS側で
 VBoxManage modifyhd --compact 仮想ディスクのファイル名.vdi
を実行し、仮想ディスク上で値ゼロが連続している範囲を圧縮させれば、作業は完了である(圧縮の対象となるのは、仮想ハードディスクが VirtualBox の標準である vdi フォーマットで、かつ、デフォルトの設定であるダイナミックドライブの場合のみ)。

なお、サイズを小さくしたいだけなら、わざわざ仮想ハードディスク上のCドライブのパーティションを小さく切りなおしてから新パーティションをゼロで塗りつぶす必要はない。単純にCドライブの未使用領域をゼロで塗りつぶし、次にホストOS上で VBoxManage modifyhd --compact を実行しても仮想ディスクはちゃんと圧縮されるはずである。ただ、その場合には、仮想PCにとってのCドライブは今までどおり80GBのままで、ファイルをどんどん書き足せるし、それにつれて実際のサイズも増えていく。今回、パーティションを切りなおしたのは、あらかじめ仮想Cドライブの上限を16GBまでに固定しておきたかったからだ。

« ノートPCの中身を VirtualBoxの仮想環境にコピーしてみた | トップページ | Firefox 7 の Sync機能は、ブックマークを追加すると即座に同期する »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: VirtualBox の仮想ハードディスクのサイズを小さくする:

« ノートPCの中身を VirtualBoxの仮想環境にコピーしてみた | トップページ | Firefox 7 の Sync機能は、ブックマークを追加すると即座に同期する »

2021年11月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
無料ブログはココログ