
【AWS 初心者向け】EBS のルートボリュームを拡張して、Linux 上の容量の変化を確認してみた
はじめに
こんにちは。クラスメソッドオペレーションズの藤瀨です。
この記事では、Amazon EC2 のルートボリュームを拡張しながら、Linux 上で表示される容量の変化を確認していきます。
EBS ボリュームのサイズは、AWS マネジメントコンソールから変更できます。しかし、変更後の領域を Linux 上で利用するには、構成に応じてパーティションやファイルシステムの拡張も必要です。[1]
私は、手順を見ても「それぞれの操作で何を広げているのか」「どの表示を見れば拡張できたと判断できるのか」が整理できていませんでした。
そこで今回は、各操作の前後で同じコマンドを実行し、ディスク・パーティション・ファイルシステムのサイズを比較します。操作方法だけでなく、表示されている内容をどう読み取るかに注目して確認していきます。
対象読者
- Linux のルートボリューム拡張を初めて行う方
- ディスク・パーティション・ファイルシステムの違いを整理したい方
今回確認すること
今回は、次の 3 つの操作を行います。
| 操作 | 対象 |
|---|---|
| AWS マネジメントコンソールでサイズを変更する | EBS ボリューム |
growpart を実行する |
パーティション |
xfs_growfs を実行する |
XFS ファイルシステム |
各操作の前後で、次の点を確認します。
- EBS のサイズを変更すると、Linux 上ではどの表示が変わるか
- パーティションを拡張すると、どの表示が変わるか
- ファイルシステムを拡張すると、利用できる容量がどう変わるか
検証環境
今回は、以下の設定で作成した EC2 インスタンスを使用します。
| 項目 | 設定 |
|---|---|
| OS | Amazon Linux 2023 |
| アーキテクチャ | Arm64 |
| インスタンスタイプ | t4g.micro |
| ボリュームタイプ | gp3 |
| 拡張前のボリュームサイズ | 8 GiB |
| 拡張後のボリュームサイズ | 12 GiB |
| ファイルシステム | XFS |
| LVM | 使用しない |
以降のコマンドは、対象の EC2 インスタンスに接続したターミナルで実行します。
拡張前の構成と容量を確認する
ディスクとパーティションを表示する
まず、以下のコマンドを実行します。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
lsblk は、ディスクやパーティションなどの情報を表示するコマンドです。今回は、-o で確認したい項目を指定しています。[2]
実行結果は以下の通りでした。
NAME SIZE TYPE FSTYPE MOUNTPOINTS
nvme0n1 8G disk
├─nvme0n1p1 8G part xfs /
└─nvme0n1p128 10M part vfat /boot/efi
今回表示した項目を整理すると、以下のようになります。
| 項目 | 確認すること |
|---|---|
NAME |
どのデバイスか |
SIZE |
ディスクやパーティションのサイズ |
TYPE |
ディスク(disk)か、パーティション(part)か |
FSTYPE |
ファイルシステムの種類 |
MOUNTPOINTS |
どこにマウントされているか |
今回の構成では、EBS ボリュームが Linux からディスクとして認識され、その中のパーティションに XFS ファイルシステムがあります。
そのファイルシステムを / にマウントすることで、Linux のルートディレクトリとして使用しています。
EBS ボリューム
└── Linux から見えるディスク:/dev/nvme0n1
└── ルートパーティション:/dev/nvme0n1p1
└── XFS ファイルシステム:/ にマウント
ファイルシステムの容量を表示する
続いて、以下のコマンドを実行します。
df -hT /
df は、ファイルシステムの容量や使用状況を確認するコマンドです。
-h は、容量を 1,024 の累乗に基づく読みやすい単位で表示するオプションで、例えば GiB 相当の値は G と表示されます。-T は、ファイルシステムの種類を表示するオプションです。
なお、表示値は丸められるため、Size、Used、Avail の値を足し引きしても、表示上は一致しないことがあります。
実行結果は以下の通りです。
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs 8.0G 1.8G 6.2G 22% /
こちらについても、出力項目の内容を整理しておきます。
| 項目 | 確認すること |
|---|---|
Type |
ファイルシステムの種類 |
Size |
ファイルシステム全体の容量 |
Avail |
利用可能な容量 |
Mounted on |
マウント先 |
lsblk と df では確認している対象が異なる点を覚えておきましょう。
lsblk:ディスクやパーティションのサイズdf:ファイルシステムの容量や使用状況
以降、各段階でこれら 2 つのコマンドを実行し、その結果を確認していきます。
変更前のスナップショットを取得する
AWS 公式ドキュメントでは、ルートボリュームの拡張前に対象の EBS ボリュームのスナップショットを取得することがベストプラクティスと案内されています。[1:1]
手順は以下の通りです。
- インスタンスの「ストレージ」タブから、ルートボリュームの ID を選択する
- 「アクション」→「スナップショットの作成」を選択する
- スナップショットを作成する
- 今回はスナップショットの状態が
completedになるまで待つ
EC2 インスタンスを起動して再接続したら、拡張対象のデバイスを再確認しておきます。
NVMe のデバイス名は起動時に変わる場合があるため、/ に対応するパーティションを確認してから進めます。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
以降のコマンドは、ルートパーティションが /dev/nvme0n1p1、ファイルシステムが XFS である構成を前提としています。
EBS のサイズを変更する
コンソールで 8 GiB から 12 GiB に変更する
EC2 コンソールで「Elastic Block Store」→「ボリューム」を開き、対象のルートボリュームを選択します。
続いて、「アクション」→「ボリュームの変更」から、サイズを 8 GiB から 12 GiB に変更します。ボリュームタイプ・IOPS・スループットは変更しません。[1:2]

変更状態が optimizing または completed になったら、Linux 上で確認します。
ディスクとファイルシステムの表示を比較する
先ほどと同じコマンドを実行します。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
df -hT /
【lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS の結果】
NAME SIZE TYPE FSTYPE MOUNTPOINTS
nvme0n1 12G disk
├─nvme0n1p1 8G part xfs /
└─nvme0n1p128 10M part vfat /boot/efi
【df -hT / の結果】
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs 8.0G 1.8G 6.2G 22% /
まず、lsblk のディスクの行を見て、SIZE が 12G に変わっていることを確認します。
なお、この記事の容量表示は、人が読みやすい単位に丸められています。ディスクとパーティションがどちらも 12G と表示されても、バイト単位で完全に同じサイズとは限りません。
次に、ルートパーティションのサイズと、df に表示されるファイルシステムの容量を、変更前の出力と比較します。
| 確認する対象 | 変更前 | EBS サイズ変更後 |
|---|---|---|
| ディスク | 8G | 12G |
| ルートパーティション | 8G | 8G |
| ファイルシステム | 8G | 8G |
EBS ボリュームのサイズ変更後は、ディスクのサイズ表示だけが 12G に変わっています。
ルートパーティションとファイルシステムはまだ拡張されていないため、この状態では追加した領域を利用できません。
追加した領域を利用できるように、続いてパーティション、ファイルシステムの順に拡張します。
パーティションを拡張する
今回は、growpart を使ってルートパーティションを拡張します。
対象が /dev/nvme0n1p1 であることを確認したうえで、以下を実行します。[2:1]
sudo growpart /dev/nvme0n1 1
このコマンドでは、ディスク名とパーティション番号を分けて指定します。
| 指定 | 意味 |
|---|---|
sudo |
管理者権限で実行する |
/dev/nvme0n1 |
対象のディスク |
1 |
拡張するパーティション番号 |
/dev/nvme0n1p1 をそのまま指定するのではなく、/dev/nvme0n1 と 1 の間にスペースを入れる必要があることに注意です。
結果は以下の通りになりました。
CHANGED: partition=1 start=22528 old: size=16754655 end=16777183 new: size=25143263 end=25165791
パーティション拡張後の表示を比較する
再度、以下を実行します。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
df -hT /
【lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS の結果】
NAME SIZE TYPE FSTYPE MOUNTPOINTS
nvme0n1 12G disk
├─nvme0n1p1 12G part xfs /
└─nvme0n1p128 10M part vfat /boot/efi
【df -hT / の結果】
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs 8.0G 1.8G 6.2G 22% /
今度は、lsblk のルートパーティションの行に注目します。
ディスクと同じく、12G に増加していることが確認できました。
そのうえで、df の表示も比較してみます。
| 確認する対象 | EBS サイズ変更後 | パーティション拡張後 |
|---|---|---|
| ルートパーティション | 8G | 12G |
| ファイルシステム | 8G | 8G |
パーティションが拡張されましたが、ファイルシステムは 8G のままであることがわかります。
最後に、ファイルシステムを拡張していきます。
ファイルシステムを拡張する
df -hT / の Type が xfs であることを確認し、以下を実行します。
sudo xfs_growfs -d /
xfs_growfs は、XFS ファイルシステムを拡張するコマンドです。
-d はデータ領域を利用可能な最大サイズまで拡張する指定で、最後の / は対象ファイルシステムのマウント先です。[2:2]
実行結果は以下の通りです。
meta-data=/dev/nvme0n1p1 isize=512 agcount=2, agsize=1047168 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
= exchange=0
data = bsize=4096 blocks=2094331, imaxpct=25
= sunit=128 swidth=128 blks
naming =version 2 bsize=16384 ascii-ci=0, ftype=1, parent=0
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=4096 sunit=4 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2094331 to 3142907
最後の data blocks changed from 2094331 to 3142907 は、ファイルシステムのデータ領域が、2,094,331 ブロックから 3,142,907 ブロックに拡張されたことを示しています。
今回の出力では bsize=4096 とあるため、1 ブロックのサイズは 4,096 バイトです。増加した 1,048,576 ブロックに 4,096 バイトを掛けると、拡張した容量は 4 GiB になります。
これは、今回の EBS ボリュームの増加分である 4 GiB と一致しています。
sudo xfs_growfs -d / を実行することで、拡張したパーティションの領域を使い、ファイルシステムを利用可能な最大サイズまで拡張できたことを確認できました。
利用できる容量を確認する
最後にもう一度以下のコマンドを実行します。
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
df -hT /
【lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS の結果】
NAME SIZE TYPE FSTYPE MOUNTPOINTS
nvme0n1 12G disk
├─nvme0n1p1 12G part xfs /
└─nvme0n1p128 10M part vfat /boot/efi
【df -hT / の結果】
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs 12G 1.8G 11G 15% /
df の Size と Avail を、拡張前の出力と比較します。
| 確認する項目 | ファイルシステム拡張前 | ファイルシステム拡張後 |
|---|---|---|
ファイルシステムの容量(Size) |
8.0G | 12G |
利用可能な容量(Avail) |
6.2G | 11G |
各操作によるサイズの変化を整理する
今回の検証では、EBS ボリューム、パーティション、ファイルシステムの順に拡張しました。
各操作の後に lsblk と df で確認したサイズをまとめると、次のようになります。
| 段階 | ディスクのサイズ | ルートパーティションのサイズ | ファイルシステムの容量 |
|---|---|---|---|
| 拡張前 | 8G | 8G | 8G |
| EBS サイズ変更後 | 12G | 8G | 8G |
| パーティション拡張後 | 12G | 12G | 8G |
| ファイルシステム拡張後 | 12G | 12G | 12G |
EBS ボリュームのサイズ変更後も、ファイルシステムの容量は 8G のままでした。
その後、パーティションとファイルシステムを順に拡張し、最終的にすべてのサイズ表示が 12G になったことを確認できました。
おわりに
今回は、EBS のルートボリュームを拡張しながら、各操作による Linux 上の表示の違いを確認しました。
- EBS のサイズ変更では、保存装置側の容量を増やす
- パーティションの拡張には
growpartを使用する - XFS ファイルシステムの拡張には
xfs_growfsを使用する
容量を確認するときに見たい項目
まとめとして、今回使用したコマンドと確認する対象を整理します。
| コマンド | 確認したいこと |
|---|---|
lsblk のディスクの行 |
ディスクがどのサイズで認識されているか |
lsblk のパーティションの行 |
対象パーティションがどの範囲まで広がっているか |
df -hT / |
/ のファイルシステムで、どれだけの容量を利用できるか |
特に意識したいのは、EBS のサイズ変更と、ファイルシステムで利用できる容量の拡張が、別の操作であるという点です。
コマンドを実行するだけでなく、「今は何を変更しているのか」「どの出力で確認できるのか」まで整理して、今後の作業でも確認していきたいと思います。
この記事がどなたかの参考になれば幸いです。
最後までお読みいただきありがとうございました!
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、 IT・AI をフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイトをぜひご覧ください。
※2026 年 1 月 アノテーション㈱から社名変更しました。









