AWS EC2 EBS扩容提示no space left on device

如果您尝试增加根分区(分区 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 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
FAILED: failed: sfdisk --list /dev/nvme0n1

解决方法

1.    使用 SSH 连接到 Amazon Elastic Compute Cloud (Amazon EC2) 实例

2.    使用 df -h 命令验证“/”下挂载的根分区是否已满 (100%)。在以下示例中,/dev/nvme0n1p1 已使用 100% 的空间。

$ df -h
Filesystem      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

3.    运行以下命令来收集有关附加的块存储设备以及根“/”挂载点的详细信息。

$ lsblk
NAME          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 -f
NAME          FSTYPE LABEL           UUID                                 MOUNTPOINT
nvme0n1
├─nvme0n1p1   xfs    /               afcf1342-1d40-41bd-bde9-e4ea5d87e3b6 /
└─nvme0n1p128

在上述示例的输出中,根 EBS 卷的总空间为 9 GiB,但根分区 (/dev/nvme0n1p1) 或分区1 只有 8 GiB。文件系统类型是 XFS。

4.    为避免块存储设备上没有剩余空间错误,将临时文件系统 tmpfs 挂载到 /tmp 挂载点。这将创建一个 10 M 的 tmpfs,并挂载到 /tmp

$ sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp

5.    运行 growpart 命令来增加根分区或分区 1 的大小。用您的根分区替换 /dev/nvme0n1

$ sudo growpart /dev/nvme0n1 1 
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335

运行 lsblk 命令来验证分区 1 已扩展至 9 GiB。

$ lsblk
NAME          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

6.    扩展文件系统。请参阅步骤 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

7.    扩展文件系统后,使用 df -h 命令来验证操作系统是否可以看到额外的空间。

$ df -h
Filesystem      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

8.    运行卸载命令来卸载 tmpfs 文件系统。

$ sudo umount /tmp

原文:https://aws.amazon.com/cn/premiumsupport/knowledge-center/ebs-volume-size-increase/?nc1=h_ls

Comments

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注