本ページにはプロモーションが含まれます
Linux

【VMware】Ubuntu 仮想マシンでディスク容量を拡張する方法

この記事は約6分で読めます。

はじめに

VMware Workstation Pro上のUbuntu仮想ディスク容量を安全に拡張する手順をメモ。
VMware Workstation Proをはじめとする仮想化環境で、UbuntuなどのゲストOSのディスク容量が不足した場合、ホスト側の仮想ディスクサイズを拡張するだけでは、ゲストOS内部でその変更が自動的に反映されるわけではありません。特にLVM (Logical Volume Manager) を使用している環境では、パーティションの拡張、LVMの物理ボリューム (PV)、論理ボリューム (LV) の拡張、そして最後にファイルシステムのリサイズという複数の手順が必要です。

この記事では、VMware Workstation Proで仮想ディスクの容量を拡張した後、Ubuntu 20.04/22.04などのLVM環境下で、正しくディスク容量をゲストOSに反映させるための具体的な手順を解説します。ゲームサーバー構築や開発環境の拡張など、仮想ディスクの容量変更でお困りの方は、ぜひ参考にしてください。

1. VMwareでの仮想ディスク拡張(準備)

本記事の前提として、VMware Workstation Proの設定画面で、すでに仮想マシンのハードディスク容量を増やしている状態とします。例えば、元の10GBから40GBへ拡張したようなケースです。この操作だけでは、UbuntuなどのゲストOS内ではまだ新しい容量が認識されていません。

VMware Workstation Proの仮想マシン設定画面でのハードディスク容量変更の様子
VMwareでの仮想ディスク設定画面例

2. Ubuntuの現在のディスク構成を確認する

まず、Ubuntuにログインし、lsblkコマンドを実行して現在のパーティション構成とディスク容量を確認します。これにより、仮想ディスクが拡張されているにもかかわらず、OSが認識している領域がまだ古い状態であることがわかります。

lsblk

以下は、仮想ディスクを40GBに拡張した後の典型的な出力例です。

hoge@hoge:~$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                         8:0    0   40G  0 disk      <-- 仮想ディスク全体が40GBになったことを確認
├─sda1                      8:1    0    1M  0 part
├─sda2                      8:2    0  1.8G  0 part /boot
└─sda3                      8:3    0 18.2G  0 part  <-- パーティションsda3はまだ18.2GBで、拡張されていない
  └─ubuntu--vg-ubuntu--lv 252:0    0   10G  0 lvm  /  <-- ルートファイルシステムはまだ10GBのまま
sr0                        11:0    1 1024M  0 rom

sdaが40GBになっているのに対し、LVMのubuntu--vg-ubuntu--lv(ルートファイルシステム)がまだ10GBのままであることが確認できます。ここから、残りの容量をルートファイルシステムに割り当てていきます。

3. パーティション(sda3)を拡張する

次に、growpartコマンドを使用して、拡張されたディスク領域に合わせてパーティション/dev/sda3を拡張します。このコマンドはcloud-guest-utilsパッケージに含まれているため、事前にインストールが必要です。

sudo apt update
sudo apt install -y cloud-guest-utils
sudo growpart /dev/sda 3

コマンドの/dev/sdaは対象の物理ディスク、3は拡張したいパーティション番号を示します。これにより、/dev/sda3がディスク/dev/sdaの未使用領域いっぱいに拡張されます。

4. LVMのPV(Physical Volume)を拡張する

パーティション/dev/sda3が拡張されたら、そのパーティションをLVMの物理ボリューム (PV) として認識させ、そのサイズを更新する必要があります。pvresizeコマンドを使用します。

sudo pvresize /dev/sda3

このコマンドにより、LVMが認識する物理ボリューム/dev/sda3のサイズが、先ほど拡張したパーティションの新しいサイズに更新されます。

5. 論理ボリューム(LV)を拡張する

物理ボリュームが拡張されたことで、Volume Group内に空き領域ができました。次に、この空き領域を全て使用して、ルートファイルシステムとして利用している論理ボリューム (LV) ubuntu-lvを拡張します。lvextendコマンドを実行します。

sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

-l +100%FREEオプションは、Volume Group内の利用可能なすべての空き領域を対象のLV(/dev/ubuntu-vg/ubuntu-lv)に割り当てることを意味します。

6. ファイルシステムを拡張する

LVが拡張されただけでは、まだゲストOSのファイルシステム上では容量が認識されていません。最終的なステップとして、ext4ファイルシステムを新しいLVのサイズに合わせてリサイズします。これにより、OSが実際に利用できるディスク容量が更新されます。

sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

このコマンドを実行することで、ファイルシステムが論理ボリュームいっぱいに拡張され、新しいディスク容量が反映されます。

7. 最終確認

全ての拡張作業が完了したら、df -hコマンドを実行して、ルートファイルシステム(/)の容量が増加していることを確認します。

df -h

以下は、容量拡張が成功した場合の出力例です。/dev/mapper/ubuntu--vg-ubuntu--lvSizeが、仮想ディスク拡張後の適切なサイズ(この例では38G)になっていることを確認してください。

hoge@hoge:~$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              1.2G  1.7M  1.2G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   38G  8.2G   28G  23% /  <-- 容量が38Gに拡張されていることを確認
tmpfs                              5.9G     0  5.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              5.9G     0  5.9G   0% /run/qemu
/dev/sda2                          1.8G  197M  1.5G  12% /boot
tmpfs                              1.2G   16K  1.2G   1% /run/user/1000

まとめ

VMware Workstation Proなどの仮想環境におけるUbuntuの仮想ディスク拡張は、単に仮想ディスクのサイズを増やすだけでは完了しません。本記事で解説した「パーティション拡張(growpart)」「物理ボリューム拡張(pvresize)」「論理ボリューム拡張(lvextend)」「ファイルシステムリサイズ(resize2fs)」という一連のLVM操作とファイルシステムのリサイズを適切に行うことで、Ubuntuのルートファイルシステムを安全かつ確実に拡張することが可能です。

これらの手順を正確に実行することで、仮想マシン上のUbuntu環境をより快適に利用できるようになります。サーバー運用や開発作業において、ディスク容量不足の問題を解決するための一助となれば幸いです。