最近在VMware虚拟机上使用Centos,用着用着,发现虚拟机的磁盘空间不够了。通过以下步骤成功扩展了根目录的磁盘空间
- Centos 关机,选择编辑虚拟机设置,硬盘,在实用工具那里选择“扩展”
-
输入扩展的磁盘容量
-
点击扩展后,VMware会提示磁盘已成功扩展。您必须从客户机操作系统内部对磁盘重新进行分区和扩展文件系统。也就是说,这里扩展的磁盘空间,在操作系统里面还不可用,还没生效,需要在操作系统里面进行设置后才能使用。
-
启动客户机操作系统Centos,查看磁盘情况
fdisk -l
-
创建分区 sda3
fdisk /dev/sda #接下来关注备注输入的含义 ------------------------------------------------- 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):n #表示创建新分区 Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): #默认即可 Using default response p 分区号 (3,4,默认 3):3 #表示sda3,因为前面已经有两个了 起始 扇区 (41943040-167772159,默认为 41943040):#默认即可 将使用默认值 41943040 Last 扇区, +扇区 or +size{K,M,G} (41943040-167772159,默认为 167772159):#默认即可 将使用默认值 167772159 分区 3 已设置为 Linux 类型,大小设为 60 GiB 命令(输入 m 获取帮助):w #保存 The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) 正在同步磁盘。
-
再次查看分区情况,其中,分区已变为3个了,但这时还没挂载,还不能用
-
重启操作系统
reboot
-
格式化新分区为ext3
mkfs -t ext3 /dev/sda3
-
将物理硬盘分区初始化为物理卷,以便被LVM使用,输入指令
[root@docker ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- <17.00g swap centos -wi-a----- 2.00g [root@docker ~]# pvcreate /dev/sda3 WARNING: ext3 signature detected on /dev/sda3 at offset 1080. Wipe it? [y/n]: y Wiping ext3 signature on /dev/sda3. Physical volume "/dev/sda3" successfully created.
-
向卷组中添加物理卷来增加卷组的容量
#查看lvm组名,输入指令 df -h [root@docker ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 17G 12G 5.8G 66% / devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 13M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda1 1014M 179M 836M 18% /boot tmpfs 408M 8.0K 408M 1% /run/user/42 tmpfs 408M 0 408M 0% /run/user/0 #其中,centos 就是 根 所在的组名,输入指令,增加卷组的容量 [root@docker ~]# vgextend centos /dev/sda3 #组名根据实际 Volume group "centos" successfully extended
-
查看可扩展的空间大小,输入指令,显示LNM卷组的元数据信息
[root@docker ~]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 78.99 GiB PE Size 4.00 MiB Total PE 20222 Alloc PE / Size 4863 / <19.00 GiB Free PE / Size 15359 / <60.00 GiB VG UUID rHL2It-zWId-rj1z-Gqmf-qVle-Sm7C-OXUftY #其中 Free PE / Size 就是可供分配的自由空间,最多有 60.00 GiB,在扩展时输入小于该值
-
扩充磁盘空间
lvextend -L+60G /dev/mapper/centos-root /dev/sda3 或 lvextend -L+15359 /dev/mapper/centos-root /dev/sda3 [root@docker ~]# lvextend -L+15359 /dev/mapper/centos-root /dev/sda3 Rounding size to boundary between physical extents: 15.00 GiB. Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <32.00 GiB (8191 extents). Logical volume centos/root successfully resized.
-
xfs同步要用下面这个命令
xfs_growfs /dev/mapper/centos-root
-
查看扩展空间后的结果
[root@docker ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 32G 12G 21G 36% / devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 21M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda1 1014M 179M 836M 18% /boot tmpfs 408M 12K 408M 1% /run/user/42 tmpfs 408M 0 408M 0% /run/user/0