🌟

Ubuntu環境でのEC2 EBSボリューム拡張手順

に公開

Ubuntuを使用しているEC2インスタンスで、接続されているEBSボリュームの容量が不足したときの拡張手順を紹介します。


作業の全体像

  1. AWSコンソールでEBSボリュームのサイズを拡張する
    EBSボリュームのサイズ(論理容量)を増やす操作です。

  2. Ubuntu上でパーティションを更新する
    OSが拡張されたディスク領域を認識できるようにする操作です。

  3. ファイルシステムをリサイズする
    拡張した領域にファイルシステムを拡張する操作です。

  4. 拡張されているかを確認
    拡張が正しく反映されたかを確認します。


1. AWSコンソールまたはCLIでEBSボリュームのサイズを拡張する

コンソールで操作する場合

  1. EC2 → ボリュームを開く。
  2. ボリューム一覧画面から、対象のボリュームを選択して、画面右上の「変更」ボタンを押す。
  3. 「サイズ(GiB)」を希望の値に変更する(本投稿では、20GBを30GBにします)。
  4. 画面右下の「変更」ボタンを押す。
  5. ボリューム一覧画面に戻り、対象のボリュームの「ボリュームの状態」がoptimizingからcompletedになるまで待機する。

2. Ubuntu上でパーティションを更新する

2.1 ディスク構成を確認する

lsblk

以下が出力例です。
例ではnvme0n1がEBSボリューム本体で、その中のnvme0n1p1がルートパーティションです。

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1      259:0    0   20G  0 disk 
├─nvme0n1p1  259:1    0   19G  0 part /
├─nvme0n1p14 259:2    0    4M  0 part 
├─nvme0n1p15 259:3    0  106M  0 part /boot/efi
└─nvme0n1p16 259:4    0  913M  0 part /boot

2.2 パーティションを拡張する

sudo growpart /dev/nvme0n1 1

以下が出力例です。

CHANGED: partition=1 start=2099200 old: size=39843807 end=41943006 new: size=60815327 end=62914526

実行後、lsblk でパーティションサイズが拡張されていることを確認します。

lsblk

コマンド実行後、nvme0n1が拡張後のサイズになっていれば成功です。

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1      259:0    0   30G  0 disk 
├─nvme0n1p1  259:1    0   29G  0 part /
├─nvme0n1p14 259:2    0    4M  0 part 
├─nvme0n1p15 259:3    0  106M  0 part /boot/efi
└─nvme0n1p16 259:4    0  913M  0 part /boot

3. ファイルシステムをリサイズする

sudo resize2fs /dev/nvme0n1p1

以下のようなメッセージが出力されれば成功です。

resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/nvme0n1p1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 4
The filesystem on /dev/nvme0n1p1 is now 7601915 (4k) blocks long.

4. 拡張結果を確認

df -h

ファイルシステムのリサイズが正しく反映されたか、実際の使用可能容量を確認します。
コマンド実行後、/dev/rootが拡張後のサイズと同等になっていれば成功です。

Filesystem       Size  Used Avail Use% Mounted on
/dev/root         29G  1.8G   27G   7% /

Discussion