前言
- 搜素了半天关于ubuntu扩容的方法,基本都是用gparted,可是本人的虚拟机抽风无法使用这个工具,提示tmp.mount不存在,同时Can’t connect to “”,找了半天并没有找到好的解决方案,先占坑。
 - 使用命令行扩容的没有提到本文的天坑,同时过程繁杂,例如按照这篇点我跳转会在扩展的时候提示超出定义范围,本文后续会解决这个问题。
 - 同时有几个是centos的教程,但是我使用
vgdisplay命令没有输出值,为了避免其他问题,没有往下实践了 
解决方案
扩展内存的时候,可能会因为无桌面或者未知因素无法使用图形化工具gparted,此时只能使用纯命令行来分配内存:
-  
删除需要扩容虚拟机的所有快照,然后才能在
硬件 - 硬盘 - 扩展扩展虚拟内存,和gparted相关教程中对VMWare的操作方式一样

 -  
进入虚拟机
 -  
查看内存情况
df -h我们只关心我们需要扩容的目录,比如
/Filesystem Size Used Avail Use% Mounted on /dev/sda5 20G 19G 1G 98% / ...可以看到
/在/dev/sda5分区 -  
查看逻辑分区的实际情况,
/dev/sda5/实际上在/dev/sda/下,可以通过以下命令验证cd /dev ls目录下应该会有
sda为前缀的逻辑分区 -  
查看
/dev/sda情况$ sudo parted /dev/sda GNU Parted 3.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)p free
 
5分区下面的free space实际上就是新扩展的内存的地址范围,因此如果我们想要精确分配内存空间,比如使用
unit命令定义内存单位值再扩容时,需要保证分配的空间的值小于free space的End值,参考
坑1:sda2与sda5关系是包含关系,因为大多数人使用VMware创建虚拟机的时候,都是设置的虚拟内存,设置的内存并不是占用内存,因此sda5实际上是包含在sda2里面的。
- 因此我们想要扩容sda5,需要先扩容sda2,如果直接扩容sda5会提示超出范围而失败。使用以下命令扩容,设置的值为End值,计算方法为Start + 扩容后大小

 - 用同样方法扩容
sda5,但是要在sda2分区的Start End范围内

 - 可以看到逻辑分区已经划分成功了,接下来就更新文件系统: 
  
-  
如果分区是ext2、ext3或ext4类型的,则可以使用以下命令进行文件系统调整(坑2:只需要更新实际使用的逻辑分区sda5,更新sda2会报错):
- 更新sda2报错:

 - 更新
sda5即可

 
 - 更新sda2报错:
 -  
如果分区是其他类型的文件系统(如XFS下扩容),则需要使用相应的工具进行文件系统调整
 
 -  
 - 重启虚拟机
 
- End -



















