磁盘扩容
2023年5月19日大约 4 分钟
一、抛出异常
Error processing tar file(exit status 1): write /layer.tar: no space left on device
二、查看当前的分区和磁盘
# 下面的异常在于disk的最大是30GB,但是分区 / 是8.8G,加前面的两个分区 /boot/efi 和 /boot 也不够30G
# 注意:磁盘剩余空间只能堆到 / 但是不能直接堆到 /boot 或者 /boot/efi
[root@i-7B581709 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
sr1 11:1 1 1024M 0 rom
vda 253:0 0 30G 0 disk
├─vda1 253:1 0 200M 0 part /boot/efi
├─vda2 253:2 0 1G 0 part /boot
└─vda3 253:3 0 8.8G 0 part /
# 现在查看更详细的磁盘信息
# 列出磁盘分区表信息
# 包括每个磁盘分区的起始位置、大小、文件系统类型等详细信息
[root@i-7B581709 ~]# fdisk -l
GPT PMBR 大小不符(20971519 != 62914559),将用写入予以更正。
The backup GPT table is not on the end of the device. This problem will be corrected by write.
Disk /dev/vda:30 GiB,32212254720 字节,62914560 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:94198271-E793-42DE-96AB-DCDD41CD2826
设备 起点 末尾 扇区 大小 类型
/dev/vda1 2048 411647 409600 200M EFI 系统
/dev/vda2 411648 2508799 2097152 1G Linux 文件系统
/dev/vda3 2508800 20969471 18460672 8.8G Linux 文件系统
三、开始重新分区
# 进入重新分区界面
$ fdisk /dev/vda
欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
GPT PMBR 大小不符(20971519 != 62914559),将用写入予以更正。
The backup GPT table is not on the end of the device. This problem will be corrected by write.
命令(输入 m 获取帮助):
d 删除分区
p 打印分区表
n 添加新分区
w 将分区表写入磁盘并退出
q 退出而不保存更改
总的来说,我们需要做的就是,删除最后一个分区 /dev/vda3 然后添加一个新的分区,当按下n添加分区的时候会自动选择起点和末尾(磁盘的起始点和末尾点),直接按默认值就可以了,分区好了以后按w保存就可以了。
# 按键顺序
$ p
$ d
$ n
$ w
分区 #3 包含一个 xfs 签名。
您想移除该签名吗?是[Y]/否[N]:
这个选择N就好了
# 重新查看分区情况
# 发现此时的 / 分区是28.8G了
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
sr1 11:1 1 1024M 0 rom
vda 253:0 0 30G 0 disk
├─vda1 253:1 0 200M 0 part /boot/efi
├─vda2 253:2 0 1G 0 part /boot
└─vda3 253:3 0 28.8G 0 part /
三、挂载的文件系统大小更新
此时仍然是会出现空间不足 no space left on device 的情况,因为挂载的文件系统的大小还是没有改变的
# 查看各个磁盘分区与当前操作系统的挂载点信息
# df -h 是一个命令,用于显示磁盘分区的使用情况
# 其中,"-h"为参数,表示以易读的方式显示磁盘使用情况,即以K、M、G等单位显示磁盘空间的大小
$ df -h
# 下面的来说不太正常的是挂载点 /dev/vda3 的容量仍然是 8.8G
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.1G 0 3.1G 0% /dev
tmpfs 3.4G 0 3.4G 0% /dev/shm
tmpfs 3.4G 28M 3.3G 1% /run
tmpfs 3.4G 0 3.4G 0% /sys/fs/cgroup
/dev/vda3 8.8G 7.2G 1.7G 82% /
tmpfs 3.4G 16M 3.3G 1% /tmp
/dev/vda2 1014M 239M 776M 24% /boot
/dev/vda1 200M 6.7M 194M 4% /boot/efi
tmpfs 677M 0 677M 0% /run/user/0
文件系统挂载点扩展,不同的文件系统类型有不同的挂载点扩展方式,其中 TYPE="xfs" 的使用 xfs_growfs 扩展XFS文件系统的大小,即在一个已有的XFS文件系统上添加更多的磁盘空间
[root@i-7B581709 ~]# blkid
/dev/vda1: SEC_TYPE="msdos" UUID="2787-B495" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="b5f117e3-e47b-4545-8d8d-0cafd317c05e"
/dev/vda2: UUID="5db79665-5d14-4666-8257-66a6bcc9728e" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="760bbcfd-3bb0-47b5-a35a-2de113314052"
/dev/vda3: UUID="35a8c362-91b8-48b0-a470-aefe39968cfc" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="b0543e02-3f29-314b-8e48-d2ec81056b8a"
# 当前的文件系统类型是 TYPE="xfs"
# 注意需要加上跟分区,比如我们需要更新的挂载点是 / 那么就是跟分区
$ xfs_growfs /
# 重新查看当前的磁盘分区和挂载的文件系统大小
# 此时的 /dev/vda3 的容量就是29G
[root@i-7B581709 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.1G 0 3.1G 0% /dev
tmpfs 3.4G 0 3.4G 0% /dev/shm
tmpfs 3.4G 28M 3.3G 1% /run
tmpfs 3.4G 0 3.4G 0% /sys/fs/cgroup
/dev/vda3 29G 7.3G 22G 26% /
tmpfs 3.4G 16M 3.3G 1% /tmp
/dev/vda2 1014M 239M 776M 24% /boot
/dev/vda1 200M 6.7M 194M 4% /boot/efi
tmpfs 677M 0 677M 0% /run/user/0
# 如果文件类型ext4
$ resize2fs /dev/vda3