マウントした VM ストレージを拡張する
- Authors

- Name
- ごとれん
- X
- @ren510dev
目次
はじめに
開発の中で Linux 環境での検証が必要になったので、macOS に VirtualBox をインストールし、Ubuntu を仮想マシンとして立てて利用していました。 ところが Docker を多用していたところ、Docker イメージが思いの他ストレージを占領するため、あっという間にオーバーフローしました。 ということでそれまで 20 GB の仮想 HDD をアタッチしていましたが、これを機に一気に 64 GB までストレージを拡張していきたいと思います。
今回は調べた内容を元に、Ubuntu 仮想マシンのストレージ拡張方法 について書き残しておきたいと思います。
環境
以下のような環境で仮想マシンを利用しています。 20 GB という少ない容量の中で作業をしていると一瞬で、オーバーフローします。
ということで 64 GB にストレージを拡張していきます。
- HostOS
- OS:macOS Catalina Version 10.15.6
- CPU:4 コア 2.30GHz Intel(R) Core i7-1068NG7 64bit
- RAM:32 GB
- ディスク容量:Macintosh HD 500 GB
- GuestOS(VM)
- OS:Ubuntu 20.04.4 LTS (Focal Fossa)
- CPU:4 コア 2.30GHz Intel(R) Core i7-1068NG7 64bit
- RAM:8 GB
- ディスク容量:Ubuntu 20.04.vdi 『20 GB』⬅︎ これを 64 GB に拡張したい
手順の確認
記憶域やパーティションを触る場合、一つ手順をミスるとすべてのデータが吹っ飛ぶ可能性があるので、手順を確認しながら慎重に作業を進めます。
また、作業を始める前に必ずスナップショットを作成しておき、万が一ミスってもロールバックできるようにしておきます。
- スナップショットの作成
- 仮想 HDD の作成
- データの移行
- ストレージの確認
- パーティションの拡張
- 後処理:物理ストレージの解放
1. スナップショットの作成
- VirtualBox を立ち上げてバックアップを作成する仮想マシンを選択し、スナップショットの画面へ移動

- 『作成』からスナップショットの作成を行う

スナップショット名は自分が判断できればなんでも良いと思います。
自分の場合はいつ作成したバックアップかを一眼で判断できるように -年-月-日-時:分 のような命名規則に従ってスナップショット名を設定しました。
- スナップショットが作成されたことを確認

2. 仮想 HDD の作成
今回は新たに 64 GB の仮想 HDD を作成し、既存の 20 GB 仮想 HDD データを移行するやり方で作業を進めます。
- 64 GB 仮想 HDD の作成
『ストレージ』→『コントローラー: SATA』→『右側の+』を選択

- 『作成(C)』から仮想 HDD を新規作成

- 特に拘りがなければ VDI(VirtualBox Disk Image)タイプを選択

- サイズを選択

- 可変サイズ
- 読み書き速度は固定サイズに比べて遅い
- 物理 HDD サイズを上限として、データの使用量に応じて HDD サイズを拡張可能
- 固定サイズ(今回はこっちを使用する)
- データの読み書きが高速
- ストレージサイズは固定長
- 仮想 HDD のサイズを指定

既存のディスクサイズよりも大きい容量を確保します。 今回は 64 GB の仮想 HDD を作成しましたが、ここで設定する記憶域はリアルに PC(Macintosh HD)の物理ストレージを食うので、ストレージ使用量を見ながら設定する必要があります。
- 作成された仮想 HDD を確認

3. データの移行
- 作成した 64 GB 仮想 HDD を Ubuntu にアタッチ

これで 1 つの仮想マシンに 2 つの仮想 HDD がアタッチされたことになりますが、このままでは起動できないので、ローカル PC 上で、データのクローン作業を行い、不要になった既存の仮想 HDD をデタッチします。
- 仮想 HDD データをクローン
クローン作業はホスト PC のターミナル上で行います。
- 先ほど作成した VDI のあるディレクトリへ移動して作業を進める
デフォルトでは /User/[ユーザ名]/VirtualBox\ VMs/[仮想マシン]/***.vdi に作成されます。
これで既存の仮想 HDD に格納されたデータは、新たに作成した 64 GB 仮想 HDD にコピーされました。
- 不要になった仮想 HDD をデタッチ
右下の × ボタンから削除できる

4. ストレージの確認
- 仮想マシンを立ち上げて、現在の状況を確認

※ 出力結果が多いので抜粋

- ディスク使用量アナライザで確認

現段階では 64 GB 仮想 HDD をマウントできているものの、前半 20 GB のみしか使用できていません。 このままでは 64 GB の仮想 HDD をマウントした意味がないので、続いての作業でパーティション領域を広げる必要があります。
5. パーティションの拡張
/dev/sda1を再作成
- 再起動
- resize2fs でパーティションを拡張
- ディスク使用量を確認

20 GB 仮想 HDD から 64 GB 仮想 HDD に変更完了し、利用可能なストレージが 3% から 70% に増加しました。
- 再起動して、問題なく OS が立ち上がることを確認
- ディスク使用量アナライザで確認

ストレージが拡張できていれば作業は完了です。
6. 後処理:物理ストレージの解放
今回、ストレージを拡張するにあたり、仮想 HDD を新たに作成したことで、不要になった 20 GB の仮想 HDD はデタッチしました。 これだけではローカル PC 上の 20 GB は解放されないため、削除しておきます。
また、作業にあたり作成しておいたスナップショットも、問題なく動作することが確認できれば削除して大丈夫です。
- 保有している仮想 HDD(物理ストレージを占領している仮想 HDD 一覧)を確認


- 仮想 HDD を選択して解放
解放したストレージ容量及びデータは復元できなくなるため、よく確認してから実行してください。

まとめ
今回のブログでは、一度マウントした仮想 HDD 及び仮想マシンのストレージを拡張する方法について書きました。 ストレージの操作する際は、万が一に備えてデータのバックアップを取ってから作業することを推奨します。