如果我收到错误消息,提示我文件系统没有剩余空间,我应该如何增加 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
**注意:**在继续操作之前,最佳做法是创建该实例的亚马逊机器映像(AMI)备份。或者,创建附加到您的实例的根 EBS 卷的快照。创建备份后,即使遇到意外问题,也可以恢复数据。
解决方法
-
使用 SSH 连接到 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例。
-
使用 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 命令验证操作系统是否可以看到额外的空间:
$ 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 文件系统,请运行卸载命令:
$ sudo umount /tmp
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 10 个月前
- AWS 官方已更新 3 年前
- AWS 官方已更新 5 年前