本文主要介绍Linux中,系统现在分区空间不足,通过添加新硬盘的方法,对现有的分区进行扩容,不增加新的分区,具体操作方法及步骤。

1、对新硬盘分区

如果初次操作,最好先通过VMware虚拟机进行实践一下,在对物理机器操作,VMware虚拟机添加硬盘如下图,

httpswwwcjavapycom

1)查看硬盘列表及分区情况

fdisk -l

httpswwwcjavapycom

注意:上图中/dev/sda为新添加的硬盘。一般正常新添加的可能是/dev/sdb

2)将新硬盘分区

fdisk /dev/sda

注意:可以根据提示输入m查看帮助信息,在这里输入n(增加分区),回车后输入p(创建主分区),回车后partition number输入1(因是新硬盘之前没有分区),回车会提示输入分区的start值,一般不需要设置就直接回车即可,end值为默认即可(即当前最大值),回车后输入w进行保存,分区划分完毕。

如报No free sectors available这个错误,提示空间不足,可能选错硬盘,

httpswwwcjavapycom

分区成功如下图,

httpswwwcjavapycom

3)修改硬盘Id

/dev/sda1的Id号为83,需要要将其改成8e(LVM卷文件系统的Id),具体方法输入fdisk /dev/sda,选择t(改变一个分区的系统ID)回车,然后选择分区1回车,然后输入L回车。然后输入8e回车,然后输入w,保存修改的分区信息。最后输入fdisk -l ,查看ID是否修改成功。修改成功后必须重新启动linux系统才能进行后面的操作。

修改完成,如下图,

httpswwwcjavapycom

4)修改分区格式为ext4格式

系统重启后,将新的分区格式化为ext4格式。命令如下,

mkfs.ext4 /dev/sda1

2、对现有分区扩容

pvdisplay查看当前的物理卷。然后用pvcreate指令用于将物理硬盘分区初始化为物理卷,以便被LVM使用。要创建物理卷必须首先对硬盘进行分区,并且将硬盘分区的类型设置为"8e"后,才能使用pvcreate指令将分区初始化为物理卷。pvcreate /dev/sda1创建完后,则可以再用pvdisplay查看到新创建的物理卷。另外,操作之前确保原来分区有一定的空闲空间,否则操作过程中也会报错。

具体如下:

1)pvdisplay查看当前物理卷

pvdisplay

httpswwwcjavapycom

2)pvcreate指令将分区初始化为物理卷

pvcreate /dev/sda1

httpswwwcjavapycom

3)使用vgextend扩展卷组

当前需要查看扩充的lvm组名,可以通过vgdisplay查看,然后用vgextend指令用于动态的扩展卷组,它通过向卷组中添加物理卷来增加卷组的容量。

vgextend centos /dev/sda1

添加成功后,我们可以用vgdisplay再次查看,容量已经添加进去。如下图,

httpswwwcjavapycom

4)使用lvextend到/dev/centos/root下

扩容的空间要略小于VG的free空间,命令如下,

lvextend -L+19.98G /dev/centos/root /dev/sda1

5)扩大或者缩小未挂载的ext2,ext3或者是ext4文件系统

resize2fs  -p /dev/mapper/centos-root

httpswwwcjavapycom

报上图片中的错误,则需要使用如下命令,

xfs_growfs /dev/mapper/centos-root

httpswwwcjavapycom

操作完成,使用df -h查看,如下图,

httpswwwcjavapycom