在VMware上编辑虚拟机设置,然后选择 硬盘(SCSI)-> 扩展

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_根目录


一开始弹出的磁盘大小24Gb提示是我当前磁盘大小,我们在这个基础上扩容磁盘容量

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_linux_02


修改目标扩容数字大小,要比原始大小数值24Gb要大

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_ubuntu_03


我将目标大小设置为60Gb

确认后提示扩展成功,但是需要登录到虚拟机里面进行分区和扩展;

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_linux_04


登录ubuntu后检查看到当前的根目录空间仍然是24Gb,没变化.

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_运维_05


而且目前根目录对应的磁盘设备分区是 /dev/sda5。

lsblk查看磁盘/dev/sda 显示共有3个分区,sda1, sda2, sda5

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_根目录_06


fdisk -l

结果显示当前/dev/sda 这个磁盘设备容量已经是60Gb了,不过它下面的3个分区

sda1,sda2,sda5 大小还是旧的:

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_根目录_07


接下来我们需要重新建立分区,并在重新建立分区的过程中,扩大分区的磁盘容量。

这里需要注意的是分区的时候我们建立主分区,扩展分区,和逻辑分区三种不同分区的时候,需要清楚他们之间的关系,其中:

磁盘总大小=主分区+扩展分区
扩展分区大小=逻辑分区1+逻辑分区2+逻辑分区3…

也就是说大类只区分两个,主分区和扩展分区,而逻辑分区又是被扩展分区在外层控制的,各个逻辑分区总和大小无法超过或者说大于扩展分区容量大小
那么,我们从24Gb->60Gb扩容的时候有几点要注意:

  • 1.保持主分区sda1 大小不变;
  • 2.扩展分区sda2大小覆盖到剩余的整个60Gb;
  • 3.只有在2基础上,逻辑分区sda5才能充分利用扩容的空间,从而实现根目录空间扩容;

方案有了,那么开始操作了:

fdisk /dev/sda

p (检查一下当前的分区)

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_运维_08


d (删除分区sda5)

d (删除分区sda2)

p (查看一下当前分区)

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_根目录_09


可以看到,sda2 和sda5 分区信息已经没有了,然后新建分区:

n (重建扩展分区sda2)

e (注意这里要重建的是扩展分区,选项是e)

分区号数字:直接回车,使用默认值

第一个扇区:直接回车

Last sector:直接回车

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_ubuntu_10


n (重建逻辑分区sda5)

起始sector:使用默认sector数值,直接回车

Last sector : 直接回车

N (保持旧的ext4签名)

p (检查分区)

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_根目录_11


在确认Last sector的值的时候,默认会覆盖到所有的扩容空间,我们保持默认直接回车即可.

w (保存)

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_linux_12


对于提示的告警

Failed to add partition 2 to system: 设备或资源忙

这个不影响,接下来把我们对sda磁盘的变更通知内核:

partprobe /dev/sda

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_ubuntu_13


扩容逻辑分区/dev/sda5的文件系统

resize2fs /dev/sda5

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_根目录_14

df -h

可以看到,根目录大小已经变大了。

ubuntu云服务器根目录扩容 ubuntu根目录磁盘空间扩容_linux_15


reboot

重启,完成!

如果在命令fdisk /dev/sda 中途输入错误,退出当前命令字,然后q退出即可,只要不输入w保存,分区信息不会生效。

在进行扩展分区新建的时候,如果手动把Last sector的值设置的偏小,那么后续逻辑分区就无法充分利用扩容的容量了,这个在进行扩展分区的新建时,使用默认的Last sector数值即可,它会自动覆盖到最大的数值以充分利用扩容磁盘。