読者です 読者をやめる 読者になる 読者になる

VirtualBoxの仮想HDDサイズを変更する

雑記

1週間ほど前にLinux Mint 11をVBoxにインストールしたわけですが、

当初はほとんど弄る予定はなく、HDDは8GBでいいや、とか思ってたのです。



ところが、Dropboxの同期をした途端、容量が足りない!!



1c133674.png



頑張って消したのに、2GBくらいしかない…



e9d6384a.png



Dropboxさん半端ない。。。

これでも頑張って、excludeとかしまくったんですよ。その辺のことはまた今度。

あ、でもこの時点ではキャッシュを消すのを忘れてました。

キャッシュ1.4GBってw



まあ、どのみち8GBではすぐにダメになるので、仮想HDDの容量を増やすことにしました。

ところが、VBoxのHDDの容量を増やすのは面倒なことでして。



その手順を以下にまとめます。

環境は、

  ホスト:Windows Vista

  ゲスト:Linux Mint 11


です。

大きく分けると、3手順あります。



1.HDDの物理的サイズを大きくする

2.HDDの論理的サイズを大きくする(パーティション)

3.スワップ領域のUUIDを正しく設定する







1.HDDの物理サイズ拡張





まずは現状です。



1e546ffb.png



というか、こうなる前にもっと大きいサイズを設定しておくべきだった。

HDDの場所を覚えておきます。



続いてVBoxをすべて終了。

コマンドプロンプトで以下の操作。



> cd [HDDの場所]



僕の場合は、

HDDの場所… C:\Users\ユーザー\VirtualBox VMs\Mint\

HDDの名前… Mint.vdi

大きさ… 32768MB(32GB)

でした。



4ade6fff.png



32GBです!

ただし、この状態ではまだパーティションは拡張されていません。

2.HDDの論理サイズ拡張

GPartedを使ってパーティションを拡張しましょう。

ブータブルイメージ(ISO)をダウンロードしてください。

ss05.png



 拡張するHDDが入っている仮想マシン

 IDEコントローラにつっこみます。

そして、その仮想マシンを起動します(GParted起動)。



ss06.png



 キーマップは自分の環境に合わせて

 変えておいてください。

ss07.png



 好きな言語を選んでください。

その後「X Window Systemを起動するか」という旨の選択があります。

Enterを押して、X Windowを起動してください。

暫く待つと、以下の画面になります。



ss08.png



拡張された領域が未割り当てになっていますね。

ここを/dev/sda1で埋めましょう…といいたいのですが。

この状態では、/dev/sda5が邪魔でうんともすんとも動きません。

/dev/sda5はスワップ領域です。スワップの詳細はこちら

人によってはsda5以外の番号かもしれません。それによって以下の操作が変わるので注意。



とりあえず、スワップを削除してしまいます。あとで復活させます。



ss09.png



 右クリックして「削除」

すると、/dev/sda2が動くようになります。



ss10.png



 「リサイズ/移動」->後方の空き領域を0にする

 すると、/dev/sda2がHDDのいちばん後ろに移動する

/dev/sda1で、未割り当ての領域を埋めます。



ss11.png



 「リサイズ/移動」からサイズを拡張する

/dev/sda2の中に、最初にあった/dev/sda5を復活させます。



ss12.png



 種類を論理パーティション

 ファイルシステムlinux-swapにする



これで、パーティションを拡張できました。

ところが、この一連の操作でスワップのIDがおかしくなっているのです。

それをこれから修正します。そのままGPartedを使います。





3.スワップ修復

Terminalを起動します。



$ sudo mount /dev/sda1 /mnt



でsda1をマウントします。sudoでもパスワードは不要です。



$ sudo vi /mnt/etc/fstab



でsda1のfstabを編集します。fstabにはデバイスのUUIDが記されています。



ss13.png



 UUID=xxx......xxx none swap sw 0 0

 の行の頭に#をつけてコメントアウト

 その次の行に

 /dev/sda5 none swap sw 0 0

 と追記。





[ESC]、:wqでセーブします。GPartedでの作業は以上です。

GPartedはシャットダウン時に勝手にISOが外れます。





それでは、元のOSを起動します。スワップのUUIDを修復します。



$ swapon -s

Filename ........

/dev/sda5 .......




みたいな感じに表示されたら、スワップは認識されています。

何も表示されていない(スワップが認識されていない)なら、

GPartedでスワップ領域をちゃんと復活させたか、fstabの編集を間違えていないか、

等を確認してください。



$ sudo blkid

/dev/sda1: UUID="xxx........xxx" type="ext4"

/dev/sda5: UUID="xxx........xxx" type="swap"




と表示されたら、/dev/sda5の方のUUIDをコピーしてください。

fstabを元に戻します。



$ sudo vi /etc/fstab



先ほどコメントアウトした行の#をとって、UUIDをblkidで取得した新しいものに

変えます。

その下に追加した行は消してください。



以上の作業を行った結果がこんな感じです。



ss14.png



このスクリーンショットでは撮り忘れましたが、最後にswapon -sで

スワップが正しく認識されているか確認してください。



やっと終わりです。お疲れ様でしたー。

そもそも、こんなことになる前に、仮想HDDのサイズは十分に確保してくださいね^^;

可変サイズに設定しておけばホスト側のディスクも圧迫しませんので。