VMware 虚拟机中 Linux 系统磁盘空间扩容

在虚拟机中使用 Linux 系统时,常常发现前期规划的磁盘空间不够用,本以为直接修改机器配置,修改磁盘大小可以解决问题,但实操发现不是这么回事,还需要一堆操作才能扩容成功,这篇就来详细说说如何扩容的操作。

比如下面这台机器,磁盘已经快不够用了:

VMware 虚拟机中 Linux 系统磁盘空间扩容

想在现有基础上对根目录【 / 】扩充 10 个 G,该如何操作呢?详细如下。

一、修改 VMware 中机器的磁盘配置

点击“编辑虚拟机设置”选项,打开虚拟机设置页。

VMware 虚拟机中 Linux 系统磁盘空间扩容

二、进行磁盘设置

对原有磁盘大小进行设置,从 10GB 编辑为 20,点击扩展按钮。

VMware 虚拟机中 Linux 系统磁盘空间扩容

会提示下面的提示框信息。

VMware 虚拟机中 Linux 系统磁盘空间扩容

一直点击确定,回到配置信息页面,可以看到磁盘已经修改为 20GB。

VMware 虚拟机中 Linux 系统磁盘空间扩容

三、启动系统

点击“开启此虚拟机”启动系统。

四、查看磁盘分区表

命令:fdisk -l

VMware 虚拟机中 Linux 系统磁盘空间扩容

根据提示可以看到此系统的磁盘接口为 scsi,对应“sda”。

这个硬盘是 21.5G 的,有 255 个磁面,63 个扇区,2610 个磁柱。每个 cylinder(磁柱)的容量是 8225280 bytes = 8225.280 K(约为)= 8.225280M(约为)。其中,Device(分区序列)、Boot(引导)、Start(开始)、End(终止)、Blocks(容量)、Id(分区类型 ID)、System(分区类型)。

Device:在 Linux 是通过 hd*x 或 sd*x 表示的,其中 * 表示的是a、b、c、...,x表示的数字 1、2、3、....。 hd 大多是 IDE 硬盘,sd 大多是 SCSI 或移动存储;
Boot:表示引导分区,在上面的例子中 sda1 是引导分区;
Start:表示的一个分区从 X cylinder(磁柱)开始;
End:表示一个分区到 Y cylinder(磁柱)结束;
Id 和 System:表示的是一个意思,ID 看起来不太直观,我们要在 fdisk 一个分区时,通过指定 ID 来确认分区类型。比如 7 表示的就 NTFS 分区,这个在 fdisk 中要通过 t 功能来指定,下面的部份会提到;
Blocks:表示的意思的确是容量的意思,其单位是K。一个分区容量的值是由下面的公式而来的:
    Blocks = (相应分区 End 数值 - 相应分区 Start 数值) * 单位 cylinder(磁柱)的容量
换算一下 sda1 的 Blocks 的大小 :
    sda1 Blocks = (64 - 1 ) * 8225.280 = 518,192.64K = 506.04752M

注:得出的这个值和我们通过 fdisk -l 看到的 /dev/sda1 的值是大体相当的,因为换算方法不一样,所以也不可能尽可能的精确;再加上分区时的一点损失之类,有时或大或小是存在的;

五、开始添加分区

使用 Linux 的 fdisk 分区工具开始给磁盘分区。

可以根据提示开始划分分区:
输入 m 查看帮助信息,
再输入 n(表示增加分区),
回车后输入 p(创建主分区),
回车后 partition number 输入3(因为上面已经有两个分区 sda1 和 sda2),
回车会提示输入分区的 start 值,默认即可,
回车会提示输入分区的 end 值,默认即可(即当前最大值),
回车后输入 w 进行保存,
分区划分完毕。

VMware 虚拟机中 Linux 系统磁盘空间扩容

VMware 虚拟机中 Linux 系统磁盘空间扩容

六、修改分区ID

命令:fdisk -l

可以看到新加的分区已经出现:

VMware 虚拟机中 Linux 系统磁盘空间扩容

可以看到 /dev/sda3 的 Id号为 83,我们要将其改成 8e(LVM卷文件系统的 Id),具体方法同第五步,如下图所示:

VMware 虚拟机中 Linux 系统磁盘空间扩容

VMware 虚拟机中 Linux 系统磁盘空间扩容

修改后的信息如下:

VMware 虚拟机中 Linux 系统磁盘空间扩容

重启系统。

七、开始扩充分区

显示逻辑卷分区信息:

命令:lvs

VMware 虚拟机中 Linux 系统磁盘空间扩容

显示卷组信息:

命令:vgdisplay

VMware 虚拟机中 Linux 系统磁盘空间扩容

将物理硬盘分区初始化为物理卷,以便被 LVM 使用。

命令:pvcreate /dev/sda3

注意:

1)要创建物理卷必须首先对硬盘进行分区,并且将硬盘分区的类型设置为“8e”后,才能使用pvcreat指令将分区初始化为物理卷。

2)如果找不到 sda3,可能是第六步结束后忘了重启系统。

VMware 虚拟机中 Linux 系统磁盘空间扩容

扩展卷组:

命令:vgextend vg_node10 /dev/sda3

VMware 虚拟机中 Linux 系统磁盘空间扩容

再次显示卷组信息:

VMware 虚拟机中 Linux 系统磁盘空间扩容

说明我们最多可以有 9.99GB 的扩充空间。

扩充逻辑卷分区:

命令:lvextend -L+9.5G /dev/vg_node10/lv_root /dev/sda3 

VMware 虚拟机中 Linux 系统磁盘空间扩容

扩大文件系统:

命令:resize2fs /dev/vg_node10/lv_root

VMware 虚拟机中 Linux 系统磁盘空间扩容

八、查看磁盘扩展情况

VMware 虚拟机中 Linux 系统磁盘空间扩容

可以看到磁盘已扩展成功,Good Luck!