VMware 虚拟机解决根空间不足(扩容磁盘)

问题描述

  1. 使用cobbler 的时候,导入了个iso 文件,然后磁盘就满了,当时我没注意,当我再次 import iso 的时候,就导入失败了,诶,创建虚拟机的时候才创了 10 G
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F4dfXnZ4-1584089088701)(https://s2.ax1x.com/2019/03/21/A1gkE6.jpg)]
  2. 难受啊,在网上找了很多资源,由于牵扯到很多东西,且大家方法也不同,我想从简单的地方开始,理解 Linux 的文件系统,当然了,最后还是要解决空间不足的问题
  3. 我找了很多文章,大部分都是介绍如何将创建一块新磁盘,然后挂载到其中一个目录上
  4. 但这跟我的期望不一样,我想要看到的最终效果是df -h 时候,Mounted on / 根目录的 Size 变大
  5. 我思考了两种方法,直接修改 第一块磁盘 也就是 /dev/sda1 的大小,
  6. 第二种方法是,创建一块大的磁盘然后将根目录切换到这块大的磁盘上
  7. 文章目录

重要知识点

Linux 文件系统

  1. Linux 文件系统是通过 挂载的方式,简单来说,从我们肉眼能看到的文件系统,一直到真实的磁盘(硬件),中间还有几个层,当然,虚拟机的文件系统就更复杂了
  2. 这里的文件系统是指从物理的磁盘,操作系统,文件系统,虚拟机文件系统一直到 Linux 文件系统

羊圈与扩容

  1. 讲个故事,小胖家住在草原上,家里养了很多羊,晚上回家把羊赶进羊圈里,后来赚钱了,资本主义的生产扩张在小胖爸爸的心里发芽了,所以小胖爸爸决定买更多的羊,但是羊圈就那么大,在买羊之前,需要先扩大羊圈,这就相当于我们的磁盘空间不足了。
  2. 小胖爸爸想啊,弄羊圈需要先画好地,于是去村委会申请了一块 20 GB 的地,小胖爸高兴坏了,本来只想要10 GB 的,直接用 20 GB 的地来养羊有点浪费了,他决定将地划成两块,10GB 养羊,10GB 养牛(假如20 GB 都用来养羊,还是要分的,只不过地被分成一块了),这一步就是分区(partition)了,小胖爸爸在地上画好大概的位置后,地上是不能直接用来养羊的,需要有东西围着羊,防止羊跑了,这里的围羊的东西可以是 篱笆(Ext3), 石围墙(Ext4), 铁围墙(XFS), 建围墙的步骤就是格式化,一般格式化会将东西全部删除,以前理解的格式化就是删除的意思,但格式化(Format)实质上是安装一个管理磁盘的系统,就像公司更换体制那样,必定会带来大换血。
  3. 接下来羊圈已经做好了,需要把羊给赶进去,这一步就是挂载(Mount),其实很多名词在正常理解来看都是怪怪的,我觉得一方面这些拗口的名词形成一定的行业壁垒,另一方面由于计算机是从国外过来的,很多时候不能找到特别合适的名词,而且多数名词有一定的历史缘故,正确理解这些名词代表的含义很重要

总结以下(扩容的步骤)

  • 1.申请地盘(购买磁盘)
  • 2.划分地盘(分区 partition)
  • 3.建围墙(格式化 format)
  • 4.把羊放进去(挂载 mount)

具体操作

声明:目前通过直接挂载(非LVM)的根目录是不可以直接扩容的, 只能通过挂载在不同的路径的方式,将数据转移存储

通过 GParted 操作报错

  1. 参照 https://www.cnblogs.com/jytx/p/6323550.html文章进行操作
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vAd923dd-1584089088705)(https://s2.ax1x.com/2019/03/22/A3T2Ps.jpg)]
  2. 上图可以看到,我为虚拟机的磁盘添加了容量,查看扩容步骤
  3. 一步一步操作后,我将容量扩充到 30 GB
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1VyQaBqE-1584089088706)(https://s2.ax1x.com/2019/03/22/A3Tqi9.jpg)]
  4. 然后失败了 。。。
    img
  5. 这里我猜测,/dev/sda1 挂载的是主目录,里面是有文件的,这样直接扩充势必会导致文件损坏,所以这里会扩容失败

LVM 方式

如果根分区不是lvm,使用直接挂载,不可使用这种方式进行扩容

  1. 分区 fdisk /dev/sda
    1. 创建 n
    2. p 主分区 1 ,2 ,3 扩展分区 4
    3. 设置起始分区地址
    4. 设置大小 +20G
    5. 创建分区后,使用 partprobe 刷新
  2. 创建物理卷 pvcreate /dev/sda1
  3. 查看已有卷组 vgdisplay 得到卷组名为 centos
  4. 添加 sda1 到 centos 卷组中 vgextend centos /dev/sda1
  5. 查看需要被扩容的文件路径 lvdisplay 路径为 /opt/xxx
  6. 把centos 卷组中的所有剩余容量添加到 /opt/xxx 上 lvextend -l +100%FREE /opt/xxx
  7. 刷新写入 xfs_growfs /dev/centos/root
  8. 使用 df -Th查看是否成功

参考文章

  1. Gparted 修改
  2. linux 根分区扩容
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐