かばちんのエンジニアブログ

日々の経験の中で培った内容を備忘録も兼ねて記録していくブログです。少しでも誰かの役に立つために頑張って続けていけたらなと思います。

VirtualBoxのディスク容量を拡張する

f:id:kabatin:20160222191347j:plain

VirtualBoxで作業をしていると、想定よりディスクを使用してしまい容量不足になることがあると思います。
作業内容そのままでディスク容量を拡張する手順を残しておきたいと思います。


ディスク容量拡張の手順

・新規ディスクを追加する
・コマンドでHDDをクローンする
・古いディスクをアンマウント
VM上でパーティション調整(BIOS作業)


僕は MacOSX にて作業しています。
それでは早速始めていきたいと思います。


新規ディスクを追加する

まず対象VMの設定画面からストレージメニューを開きます。
f:id:kabatin:20160225172630p:plain


ストレージ一覧の右側にあるディスクの+マークを押します。
デフォルト選択が既存ディスクになっていますが間違えないように「新規ディスクの作成(N)」を押します。
f:id:kabatin:20160225172701p:plain


するとハードディスクのタイプ選択が求められるので前とVDIを選択して進めます。
f:id:kabatin:20160225172826p:plain


ディスクのサイズについては好きな方を選択してください。
ちなみに固定サイズの方が少しだけ速度が速くなるようです。
f:id:kabatin:20160225172835p:plain


最後にディスクの名前と容量を決めたら「作成」ボタンを押します。
注意点としては既存のディスクよりも大きい容量にするようにしましょう。
そうしないとこの後行うディスクのクローン作業がおかしくなると思います(^^;
f:id:kabatin:20160225172956p:plain


新しいディスクが作成されました。
f:id:kabatin:20160225173102p:plain


コマンドでHDDをクローンする

ストレージを選択すると右側にファイルパスが表示されると思います。
ターミナルを開き、この VDI ファイルが置いてあるところまで移動しましょう。
f:id:kabatin:20160225173102p:plain


移動したら下記のコマンドを実行してディスクのコピーを行います。
パーセンテージが表示され、100% になれば完了です。

$ VBoxManage clonehd --existing "Ubuntu 14.04 LTS.vdi" "New Ubuntu 14.04.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'VDI'. UUID: 4cc3e925-****-4d78-****-5abfe3e36cf8

古いディスクをアンマウント

無事にディスクのコピーが終わったら、起動させるディスクを変更します。
先ほどのストレージ設定画面で古いディスクを削除します。
削除といっても設定が削除されるだけで物理的にはファイルとして残っていますので安心してください。
古いディスクを選択して下部にあるディスクの「ー」ボタンを押すと削除が完了します。

最終的にはこんな感じになると思います。
f:id:kabatin:20160225173944p:plain

ここまででディスクの差し替えは完了です。


VM上でパーティション調整(BIOS作業)

パーティションの調整は BIOS 上で行う必要があります。
まず下記のサイトで GParted パーティション編集ツールのイメージファイルをダウンロードします。

GParted Live CD/USB/HD/PXE Bootable Image の Stable Releases にある iso ファイルをダウンロードします。
2016年2月25日時点での最新版は「Download gparted-live-0.25.0-3-i686.iso」のようです。

http://gparted.org/download.php


ダウンロードしたら、パーティションを変更したい VM の設定画面を開きストレージメニューを開きます。
CD設定部分へ先ほどダウンロードしたイメージファイルを設定して IDE プライマリマスターに設定します。
f:id:kabatin:20160225184333p:plain


その状態で VM を起動すると BIOS 上で GParted が立ち上がります。
項目2つ目の「Other modes of GParted Live」を選択します。
f:id:kabatin:20160225184612p:plain


次は一番上の「GParted Live (Default settings, KMS)」を選択します。
f:id:kabatin:20160225184638p:plain


keymap について質問されますが、「Don't touch keymap」を選択したままエンターを押します。
f:id:kabatin:20160225184727p:plain


次に言語設定を聞かれるため、「Japan」の 15 を入力してエンターを押します。
f:id:kabatin:20160225184759p:plain


最後にモードを聞かれますが、何も入力しなくても大丈夫なのでそのままエンターを押します。
f:id:kabatin:20160225184824p:plain



こんな画面が起動します。
f:id:kabatin:20160225185220p:plain


実はこの画面…
もうパーティション設定が終わった状態です。
途中のキャプチャを撮るのを完全に忘れていました。。

というわけで、足りない部分は言葉で説明しながら手順を紹介したいと思います!



構成として、まずメインストレージ領域があり、次に linux-swap 領域、最後に未割り当て領域になっていると思います。
この状態のままだと後方に空き領域がなく、メインストレージの領域を拡張することができません。

そのためまず最初に linux-swap 領域を大胆に削除します。
f:id:kabatin:20160225185439p:plain


次にその親の領域も削除します。
f:id:kabatin:20160225185516p:plain


メインストレージである /dev/sda1 以降に未割り当て領域しかない状態になりました!
この状態で /dev/sda1 のリサイズ作業を行います。
f:id:kabatin:20160225185607p:plain


後方に 2GB ほどの領域を残した状態で、好きなサイズまで拡張していきます。
設定が終わったら「リサイズ/移動」ボタンで確定させます。


次に先ほど消してしまった linux-swap 領域をもう一度設定します。
まずは未割り当て領域全てを拡張領域として追加します。
未割り当て領域を右クリックして「New」を選択します。
f:id:kabatin:20160225185812p:plain


種類のところを「拡張パーティション」に設定して「Add」ボタンを押します。
f:id:kabatin:20160225185926p:plain


こんな感じになったと思います。
f:id:kabatin:20160225185945p:plain


これで新規パーティション#1 の配下に未割り当て領域が移動したと思います。
この状態から未割り当て領域を右クリックし、さらに「New」で linux-swap 領域を作っていきます。
ファイルシステムのところを「linux-swap」に変更して「Add」ボタンを押します。
こちらは「論理パーティション」で大丈夫です。
f:id:kabatin:20160225190136p:plain


こんな感じになりました。
これでパーティションの設定自体は完了です。
f:id:kabatin:20160225190157p:plain


「Apply」ボタンを押して設定したパーティションを確定させましょう!

これでパーティション設定は全て完了です。
VM をシャットダウンし、先ほど設定していた CD ブートからイメージファイルを取り出して再起動すれば無事にディスク容量が増えていると思います。

早速ログインして容量を確認してみます。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        14G  5.4G  7.6G  42% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            991M   12K  991M   1% /dev
tmpfs           201M  900K  200M   1% /run
none            5.0M  4.0K  5.0M   1% /run/lock
none           1002M   72K 1001M   1% /run/shm
none            100M   28K  100M   1% /run/user

空き領域がだいぶ増えていますね!
同じような状況の方の参考に少しでもなれば幸いですm(_ _)m