ファイルシステムにスペースが残っていないというエラーが表示された場合に、EBS ボリュームのサイズを増加する方法を教えてください。
Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズを増加しようと思います。しかし、ファイルシステムに空き容量がないというエラーが表示されました。
簡単な説明
EBS ボリュームのルートパーティションまたはルートファイルシステムを拡張しようとすると、「デバイスに空き容量がありません」というエラーが表示されることがあります。このエラーを回避するには、仮想メモリにある一時ファイルシステム (tmpfs) を使用してください。tmpfs ファイルシステムを /tmp マウントポイントの下にマウントし、ルートパーティションまたはルートファイルシステムを拡張します。
次の例は、ルート EBS ボリュームブロックデバイス (/dev/nvme0n1) が 9 GiB で、ルートパーティション (パーティション 1) がすでに 8 GiB であることを示しています。
$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 9G 0 disk ├─nvme0n1p1 259:1 0 8G 0 part / └─nvme0n1p128 259:2 0 1M 0 part
ルートパーティション (パーティション 1) を増やそうとすると、次のエラー出力のいずれかが表示されます。
$ sudo growpart /dev/nvme0n1 1/bin/growpart: line 248: /tmp/growpart.fklt5u/dump.out: No space left on device FAILED: failed to dump sfdisk info for /dev/nvme0n1
- または -
$ sudo growpart /dev/nvme0n1 1CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335 FAILED: failed: sfdisk --list /dev/nvme0n1
**注:**先に進む前に、インスタンスの Amazon マシンイメージ (AMI) バックアップを作成するのがベストプラクティスです。または、インスタンスにアタッチされているルート EBS ボリュームのスナップショットを作成します。バックアップを使用すると、予期しない問題からデータを回復できます。
解決策
-
Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスに SSH を使用して接続します。
-
df-h コマンドを使用して、/の下にマウントされているルートパーティションがいっぱい (100%) かどうか確認します。次の例では、/dev/nvme0n1p1 はその容量を 100% 使用しています。
$ df -hFilesystem Size Used Avail Use% Mounted on devtmpfs 460M 0 475M 0% /dev tmpfs 478M 0 492M 0% /dev/shm tmpfs 478M 432K 492M 1% /run tmpfs 478M 0 492M 0% /sys/fs/cgroup /dev/nvme0n1p1 8.0G 8.0G 664K 100% / tmpfs 96M 0 99M 0% /run/user/1000
接続されているブロックデバイスとルート / マウントポイントに関する詳細を収集するには、以下のコマンドを実行します。
$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 9G 0 disk ├─nvme0n1p1 259:1 0 8G 0 part / └─nvme0n1p128 259:2 0 1M 0 part $ lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT nvme0n1 ├─nvme0n1p1 xfs / afcf1342-1d40-41bd-bde9-e4ea5d87e3b6 / └─nvme0n1p128
この出力例では、ルート EBS ボリュームの総容量は 9 GiB です。ただし、ルートパーティション (/dev/nvme0n1p1) またはパーティション 1 は 8 GiB しかありません。ファイルシステムのタイプは XFS です。
-
「ブロックデバイスにスペースが残っていません」 というエラーを回避するには、一時ファイルシステム tmpfs を /tmp マウントポイントにマウントします。これにより、/tmp: に 10 M の tmpfs がマウントされます。
$ sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp
-
ルートパーティションまたはパーティション 1 のサイズを増やすには、growpart コマンドを実行します。/dev/nvme0n1 を自分のルートパーティションに置き換えてください。
$ sudo growpart /dev/nvme0n1 1 CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
-
パーティション 1 Gib を 9 GiB に拡張したことを確認するには、lsblk コマンドを実行します。
$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 9G 0 disk ├─nvme0n1p1 259:1 0 9G 0 part / └─nvme0n1p128 259:2 0 1M 0 part
-
ファイルシステムを拡張します。ステップ 3 を参照して、ルートパーティション / のファイルシステムを確認してください。次の例では、XFS タイプのファイルシステムを拡張します。
$ sudo xfs_growfs -d /data blocks changed from 2096635 to 2358779 = sectsz=512 sunit=0 blks, lazy-count=1 log =internal bsize=4096 blocks=2560, version=2 naming =version 2 bsize=4096 ascii-ci=0 ftype=1 = sunit=0 swidth=0 blks data = bsize=4096 blocks=2096635, imaxpct=25 = crc=1 finobt=1 spinodes=0 = sectsz=512 attr=2, projid32bit=1 realtime =none extsz=4096 blocks=0, rtextents=0 meta-data=/dev/nvme0n1p1 isize=512 agcount=4, agsize=524159 blks
次の例では、パーティション 1 の EXT2/EXT3/EXT4 ファイルシステムを拡張します。
$ sudo resize2fs /dev/nvme0n1p1
-
ファイルシステムを拡張したら、df-h コマンドを使用して、OS が追加のスペースを認識できることを確認します。
$ df -hFilesystem Size Used Avail Use% Mounted on devtmpfs 960M 0 960M 0% /dev tmpfs 978M 0 978M 0% /dev/shm tmpfs 978M 392K 978M 1% /run tmpfs 978M 0 978M 0% /sys/fs/cgroup /dev/nvme0n1p1 9.0G 8.0G 1022M 89% / tmpfs 196M 0 196M 0% /run/user/1000 tmpfs 10M 0 10M 0% /tmp
-
tmpfs ファイルシステムをアンマウントするには、unmount コマンドを実行します。
$ sudo umount /tmp
関連するコンテンツ
- 質問済み 6年前lg...
- 質問済み 4年前lg...
- 質問済み 5年前lg...
- 質問済み 8ヶ月前lg...
- 質問済み 6年前lg...
- AWS公式更新しました 8ヶ月前