Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの Amazon Elastic Block Store (Amazon EBS) ボリュームを増やした後に Linux ファイルシステムを拡張したいと考えています。
解決策
ファイルシステムが optimizing 状態のときにサイズを変更します。
注: 以下の手順は、ディスクデバイス全体を使用するファイルシステムにのみ適用されます。これらの手順を使用して、パーティション、ルートファイルシステム、RAID デバイス、または Logical Volume Manager (LVM) のファイルシステムを増やすことはできません。次の例では、8 GB の ext4 ファイルシステムを拡張して、16 GB のボリュームを完全に使用できるようにします。
Linux ファイルシステムを拡張するには、次の手順を実行します。
-
ボリュームのスナップショットを作成します。
-
SSH を使用してインスタンスに接続します。
-
ファイルシステムが使用するサイズと割合を確認するには、次の df -h コマンドを実行します。
df -h
出力例:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.7G 7.7G 0 100% /
/dev/xvdf 16G 7.1G 8.0G 48% /home/ubuntu/test
注: 上記の出力例では、/dev/xvdf ファイルシステムのサイズは 16 GB で、48% が使用されています。Nitro インスタンスでは、ディスクデバイスには /dev/nvmeXn1、パーティションには /dev/nvmeXn1pY という名前が付けられます。ファイルシステム名の X はディスク、Y はパーティションを識別します。
-
xvdf ボリュームのサイズを確認するには、次の lsblk コマンドを実行します。
ubuntu@ip-172-31-32-114:~ lsblk
出力例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 16G 0 disk /home/ubuntu/test
注: 上記の出力例で、xvda ボリュームのサイズは 16 GB です。
-
lsblk コマンドの出力で、パーティションサイズとボリュームサイズを比較し、次のいずれかのアクションを実行します。
パーティションサイズがボリュームサイズよりも小さい場合は、手順 6 に進みます。
パーティションサイズがボリュームサイズと同じ場合は、パーティションを拡張する必要はありません。手順 7 に進みます。
注: ファイルシステムを含むパーティションがボリュームにある場合は、ファイルシステムを拡張する前にパーティションを拡張します。
-
次の growpart コマンドを実行してパーティションを拡張し、デバイス名とパーティション番号を指定します。
sudo growpart /dev/xvda 1
出力例:
CHANGED: partition=1 start=2048 old:
注: パーティション番号は、デバイス名の後の番号です。例えば、xvda1 の場合、パーティション番号は 1 です。
-
パーティションが拡張されたことを確認するには、lsblk コマンドを実行します。
ubuntu@ip-172-31-32-114:~ lsblk
出力例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 16G 0 disk /home/ubuntu/test
注: パーティションサイズはボリュームサイズと等しくなければなりません。
-
次の resize2fs コマンドを実行して、/dev/xvda ファイルシステムのサイズをボリュームの全容量まで自動的に拡張します。df -h コマンドの出力にあるデバイス名を含めます。
ubuntu@ip-172-31-32-114:~ sudo resize2fs /dev/xvda1
注: resize2fs コマンドは、ext3 および ext4 のファイルシステムでのみ実行できます。
出力例:
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/xvda1 is mounted on /;
on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/xvda1 is now 4194304 (4k) blocks long
注: 上記の出力例では、ボリュームは ext4 ファイルシステムを使用しています。"resize2fs: Device or resource busy while trying to open /dev/xvdf" というエラーが表示された場合は、ディスクパーティションにサイズ変更が適用されています。
"resize2fs: Bad magic number in super-block while trying to open /dev/xvda1:" というエラーが表示された場合は、ファイルシステムが ext4 ではありません。ファイルシステムのタイプを確認するには、df -hT コマンドを実行します。
"open: No such file or directory while opening /dev/xvdb1:" というエラーが表示された場合は、正しくないパーティションが指定されています。パーティションを確認するには、df -hT コマンドを実行します。
-
xfs_growfs コマンドを実行し、ファイルシステムのマウントポイントを指定します。
例えば、スラッシュ (/)) にマウントされたファイルシステムを拡張するには、次のコマンドを実行します。
ubuntu@ip-172-31-32-114:~ sudo xfs_growfs -d /
"xfs_growfs: /data is not a mounted XFS filesystem" というエラーが表示された場合は、間違ったマウントポイントを指定したか、ファイルシステムが XFS になっていません。
マウントポイントとファイルシステムタイプを確認するには、df -hT コマンドを実行します。
"data size unchanged, skipping:" というエラーが表示された場合、ファイルシステムは既にボリューム全体に拡張されています。
ボリュームにパーティションがない場合は、ボリュームが正常に変更されたことを確認します。
-
ファイルシステムが拡張されたことを確認するには、次のdf -hT コマンドを実行し、ファイルシステムのサイズがボリュームサイズと等しいことを確認します。
ubuntu@ip-172-31-32-114:~ df -h
出力例:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.7G 7.7G 0 100% /
/dev/xvdf 16G 7.1G 8.0G 48% /home/ubuntu/test
注: 前述の出力例では、/dev/xvdf ファイルシステムのサイズは 16 GB で、48% が使用されています。
関連情報
View information about an Amazon EBS volume (Amazon EBS ボリュームに関する情報を確認する)
Make an Amazon EBS volume available for use (Amazon EBS ボリュームを使用できるようにする)