现在给vmware中的虚拟机磁盘扩容,此篇文章作为记录,供大家参考
扩容前分配了20G,分了两个区n1p1和n1p2,其中n1p2上面又有两个逻辑卷,一个挂载至根目录,一个挂载至swap,我们要扩容的就是根目录
首先虚拟机关机,在设置--硬盘中调整该虚拟机的硬盘为40G,然后开机。
为了确保出现问题可以快速恢复原状,我们对虚拟机进行快照。
前期工作准备完毕,现在开始正式操作:
1、使用lsblk -l命令,
可以看到我们的硬盘已经被系统识别为40G了
2、fdisk管理磁盘
fdisk /dev/nvme0n1
在 fdisk 中,执行以下操作:
输入 d 删除分区,然后选择分区号 2。
输入 n 创建新分区,选择分区号 2,使用默认起始扇区并扩展到整个磁盘大小。
输入 t 更改分区类型为 8e(Linux LVM)。
输入 w 保存更改并退出。
3、刷新分区表
partx -u /dev/nvme0n1
4、拓展分区
[root@localhost ~]# pvresize /dev/nvme0n1p2
Physical volume "/dev/nvme0n1p2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
按理说此时nvme0n1p12应该为39G,但是使用lsblk查看并没有拓展成功。ps:后面想到是因为第二步删除了分区2后,直接拓展分区2应该会报错才对,但是没有报错,(可能是系统bug?),应该第三步直接重建分区2,重建分区2再拓展分区就正常
解决步骤:使用fdisk重新分区
[root@localhost ~]# fdisk /dev/nvme0n1
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
Disk /dev/nvme0n1:40 GiB,42949672960 字节,83886080 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xcb40a49a
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/nvme0n1p1 * 2048 2099199 2097152 1G 8e Linux LVM
命令(输入 m 获取帮助):n
分区类型
p 主分区 (1个主分区,0个扩展分区,3空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (2-4, 默认 2): 2
第一个扇区 (2099200-83886079, 默认 2099200):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2099200-83886079, 默认 83886079):
创建了一个新分区 2,类型为“Linux”,大小为 39 GiB。
分区 #2 包含一个 LVM2_member 签名。
您想移除该签名吗?是[Y]/否[N]:n
命令(输入 m 获取帮助):w
分区表已调整。
Failed to add partition 2 to system: 设备或资源忙
The kernel still uses the old partitions. The new table will be used at the next reboot.
正在同步磁盘。
此时再查看分区,已经正常
5、拓展逻辑卷
查看卷组CL可用空间
vgdisplay cl
将卷组 cl 中的可用空间分配给逻辑卷 cl-root:
lvextend -l +100%FREE /dev/cl/root
拓展文件系统大小
xfs_growfs /
然后使用 lsblk 和 df -h 验证结果,没有问题,搞定