文章目录

  • 前言
  • 一、修改 VMware 虚拟机设置
  • 二、修改扩展磁盘容量
  • 三、启动系统
  • 四、查看磁盘分区表
  • 五、开始添加分区
  • 六、修改新分区ID为8e
  • 七、开始扩充分区
  • 八、查看磁盘扩展情况



前言

最近在使用Docker容器的过程中,往往会上传许多文件,下载镜像等操作会导致虚拟机的磁盘空间被大量的占用。由于前期规划的磁盘空间过小,之前没有接触过虚拟机的扩容,简单的认为可以直接修改机器配置,修改磁盘大小,就可以进行扩容,解决磁盘空间不足的问题。但真正遇到该问题,准备解决的时候,发现并不简单,需要在虚拟机中按顺序执行许多的指令,才能实现扩容。

比如个人的虚拟机,初试分配的是20G,目前磁盘可用只用18M:

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘


最终的效果: 想在现有基础上对根目录【 / 】扩充 10 个 G,该如何操作呢?


一、修改 VMware 虚拟机设置

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

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘_02


二、修改扩展磁盘容量

点击扩展按钮,对原有磁盘大小进行设置,从 20GB 修改为 30GB。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_运维_03


vm centos 扩展磁盘 虚拟机centos磁盘扩容_centos_04


之后会提示的提示框信息。直接确定。此时会显示拥有30G的空间。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘_05


三、启动系统

点击“开启此虚拟机”启动系统。下面就需要按照顺序执行指令了,每个人的虚拟机名字和系统存放位置不一样,一定要根据本机进行替换,准备进行进一步的配置。

四、查看磁盘分区表

该指令可以查看磁盘分区,本机有两个磁盘sda1和sda2。

fdisk -l

vm centos 扩展磁盘 虚拟机centos磁盘扩容_centos_06

五、开始添加分区

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

fdisk /dev/sda

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘_07


输入 m 查看帮助信息。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_运维_08

再输入 n(表示增加分区)。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_docker_09

输入 p(创建主分区)。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘_10

回车后 分区号(partition number)输入3(因为上面已经有两个分区 sda1 和 sda2),

vm centos 扩展磁盘 虚拟机centos磁盘扩容_docker_11

回车会提示输入分区的 start 值,输入默认即可(即当前最小值),注意一定要输入正确。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘_12

回车会提示输入分区的 end 值,默认即可(即当前最大值),注意一定要输入正确。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘_13

回车后输入 w 进行保存。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_docker_14

到此分区划分完毕。

六、修改新分区ID为8e

通过第五部分已经划分出了sda3这个分区。再次使用

fdisk -l

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

vm centos 扩展磁盘 虚拟机centos磁盘扩容_centos_15


上图的红色方框区域,可以看到 /dev/sda3 的 Id号为 83,需要要将其改成 8e(LVM卷文件系统的 Id),具体方法,如下图所示:

fdisk /dev/sda

vm centos 扩展磁盘 虚拟机centos磁盘扩容_centos_16


输入 m 查看帮助信息。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_运维_17


分别输入:

t 并回车,

3(选择3号分区)并回车,

L 并回车。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_运维_18


vm centos 扩展磁盘 虚拟机centos磁盘扩容_linux_19


输入8e 回车。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_docker_20

输入w保存

vm centos 扩展磁盘 虚拟机centos磁盘扩容_docker_21


修改后的信息如下,可以看到已经将sda3修改为系统卷id:

vm centos 扩展磁盘 虚拟机centos磁盘扩容_docker_22


一定一定一定重启系统。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_linux_23

七、开始扩充分区

创建好新分区(第五部分),并修改好id后(第六部分),才开始正式的扩容工作(第七部分)。
使用lvs显示逻辑卷分区信息:

lvs

注意此处为/centos/root后续,在扩充逻辑卷分区中会用到,每个机子都不一样,根据自己的需要进行更改!

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘_24

显示卷组信息:

vgdisplay

vm centos 扩展磁盘 虚拟机centos磁盘扩容_vm centos 扩展磁盘_25


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

pvcreate /dev/sda3

注意:

(1)创建物理卷:必须先对硬盘进行分区(第五部分),并将硬盘分区类型设置为“8e”(第六部分),才能使用pvcreat指令。

(2)找不到 sda3:可能是第六部分结束后忘记重启。

pvcreate /dev/sda3

vm centos 扩展磁盘 虚拟机centos磁盘扩容_运维_26


扩展卷组:

centos: 是执行vgdisplay后的VG name对应的值,根据个人情况修改。

vgextend  centos /dev/sda3

vm centos 扩展磁盘 虚拟机centos磁盘扩容_linux_27

再次显示卷组信息:可以看到Free PE从0变为10.00Gib,说明我们最多可以有 10GB 的扩充空间。

vgdisplay

vm centos 扩展磁盘 虚拟机centos磁盘扩容_docker_28

扩充逻辑卷分区:
centos/root: 是根据第七部分一开头的lvs中显示的VG 和 LV内容进行的替换,根据个人情况修改。

lvextend -L+9.8G /dev/centos/root /dev/sda3

vm centos 扩展磁盘 虚拟机centos磁盘扩容_运维_29


此处不推荐使用resize2fs指令会报错,此时使用另一个语句

vm centos 扩展磁盘 虚拟机centos磁盘扩容_运维_30


使用 xfs_growfs

xfs_growfs  /dev/centos/root

vm centos 扩展磁盘 虚拟机centos磁盘扩容_运维_31

八、查看磁盘扩展情况

最后查看磁盘信息,发现可用已经达到12G(有2g是个人删除的数据,腾出的空间)可以看到磁盘已扩展了10G。

vm centos 扩展磁盘 虚拟机centos磁盘扩容_centos_32