之前搭建了一个CentOS(7.0, x64)的VM,一直没留意它的硬盘空间。昨天,系统突然弹出警示,说 根目录 空间不足了。 
这样的话,就只能给它增加空间呗。

我自己其实已经增加过硬盘空间了,但是为了写这篇博客,我再一次添加了10GB的硬盘

在虚拟机关机的前提下,先通过VMware给虚拟机增加一些硬盘空间,如下图: 

点击“扩展”之后,稍等一会,等待VMware处理完。 
处理完了之后,VMware会提示你,虽然扩展了硬盘空间,但须你进系统之后,进行分区等操作之后才能使用。 
 
看到这个提示,我是崩溃的。因为我自己根本不会在Linux下进行分区啊,它不像Windows分区或者扩展那么简单。这可咋整呢?没办法,只有两条路可以走:要么将新增加的硬盘添加至系统中,要么重新创建一个新的虚拟机。 
很明显第二条路比第一条路更难走。所以,只能含着泪选择第一条路。 
但是,在这条路上,我不是一个人在奋斗,我在网上找到了很好的指南,有:

  1. http://blog.sina.com.cn/s/blog_967817f20102v2a6.html
  2. http://www.cnblogs.com/yorian/archive/2012/02/06/2340438.html
  3. http://stackoverflow.com/questions/26305376/resize2fs-bad-magic-number-in-super-block-while-trying-to-open
  4. http://stackoverflow.com/questions/13362910/trying-to-resize2fs-eb-volume-fails

其中,第1个链接,里面介绍了 LVM 等相关的知识;第2个链接,是我本次主要参照的链接,按照里面的命令进行了操作;第3条是遇到的一个问题找到的解决方案。第4条是第3条所提及到的解决方法。

下面开始Linux中操作。请以root用户进行操作

先进行分区。关于分区,可以参照上面的第2个链接进行。但是,我在登陆系统之后,使用了图形化的操作。

打开系统的“磁盘”工具

 

从图中可以看到,新增加的硬盘空间了

用df -hl看到目前的空间情况

用“fdisk -l”查看分区情况

点击上图中的“+”号,进行分区

调整分区类型


用fdisk -l再次查看分区情况

 
从图中可以看到,新增加的分区了。

到此为止,我们就新建了一个分区/dev/sda4,此时我们已经可以通过“挂载”命令(即mount)来使用这个新的空间。但是对于我,这并不能满足我的需求,因为本意想用它来扩展根目录的空间的。而由于目前已经有分区挂载到根目录“/”上了,所以,无法再次将新增的分区挂载到“/”了,只能通过扩展已知挂载到“/”的分区的容量来达到扩展“/”的空间的目的了。(这句描述听起来很是拗口啊 :))

用lvs查看当前的逻辑卷

 
请记住上图中VG列的内容(即“centos”),下面会用到

用pvcreate将新增的分区创建一个物理卷

用vgextend将新建的物理卷追加到上面让你们记住的VG上

 
虽然系统提示extend成功了,但是这个时候,“/”的容量还没有增加。 
可以通过df -hl查看 

用vgdisplay查看系统当前的VG

 
主要查看Free PE / Size 2696 / 10.53 GiB,说明我们最多可以有10.53GB的扩充空间。

用lvextend给根目录扩展容量

 
这里需要注意一下两个问题:

  1. lvextend的最后两个参数的值: 
    • “/dev/centos/root”:请看上面df -hl命令的截图,这个值就是该截图中 挂载点“/”对应的“文件系统”的值
    • /dev/sda4:这个就是上面新建的分区啦
  2. 上面的截图中报了一个错:Insufficient free space: 2696 extents needed, but only 2559 available,这个说明,虽然上面说有“10.53GB”的可用空间,但是我们无法全部使用,只好在lvextend命令中,减少一点了,如下图: 

最后一步,告诉系统“/”的容量有增加了。 
如果参照最上面的第2个链接的话,它使用的是“resize2fs”命令,我使用了之后,系统会报错: 

后来经过调查,在stackoverflow上找到了一个解决方法,也就是上面的第3和第4个链接。 
按照它们的提示,先安装了xfsprogs.x86_64,然后:

用xfs_growfs通知系统“/”的容量增加了

最后,用df -hl查看一下空间情况

最后,最好重启一下虚拟机哦 :)))))

linux 根目录扩容的更多相关文章

  1. linux根目录扩容

    原来在ucloud上面买了一个服务器,结果根目录上面只有20G,/data挂载点下面有500G,没多久/根目录存储空间用完了,所以要扩展 linux的文件模式分为lvm模式和普通的非lvm模式,云服务 ...

  2. Linux系统扩容根目录磁盘空间

    作者:非法小恋 一.使用背景 Linux根目录磁盘空间不够用了,当修改了虚拟机模版增加磁盘大小或者插入了一块新硬盘,但是发现系统里的大小还是没改变. 产生的原因是没有给磁盘格式化,没有增加分区. 二. ...

  3. linux 系统扩容 VMware Centos---VMware ESXi

    用到的命令 df  fdisk  pvcreate   pvdisplay    vgdisplay    vgextend    lvdisplay    lvextend  resize2fs 0 ...

  4. Centos7 LVM管理的逻辑卷根目录扩容和/var目录扩容

    Centos7 LVM管理的逻辑卷根目录扩容 fdisk /dev/sdb #对新加磁盘进行分区操作pvcreate /dev/sdb1 #创建一个物理卷vgs #查看现有的卷组vgextend ce ...

  5. linux根目录下的各文件夹含义说明

    在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱. Linux 面世不久后,对文件目录进行了标准化,于1994年对根文件目录做了统一的规范, 推出 FHS ( F ...

  6. Ubuntu系统分配存储空间的建议以及给Ubuntu系统根目录扩容方法(从20GB追加100GB)

    当初准备装双系统时,也思考了很久分配多少空间给Ubuntu16.04系统,查了许多资料,大多意思是‘/’目录总共给20GB,其他的给/home.网上资料推荐的大多跟这篇文章一样:https://blo ...

  7. Linux根目录下各个目录的用途及含义

    Linux根目录下各个目录的用途及含义 Linux ./bin 重要的二进制 (binary) 应用程序,包含二进制文件,系统的所有用户使用的命令都在这个目录下. ./boot 启动 (boot) 配 ...

  8. Linux系统盘扩容-物理机非虚拟机

    # Linux系统盘扩容 ## 了解磁盘分区情况 - `blkid` 查看分区情况- `fdisk -l` 分区表 ## 系统挂载分区 - `/etc/fstab` 启动挂载分区情况 ## 双系统下分 ...

  9. Linux磁盘扩容

    Linux磁盘扩容 fdisk -l # 查看硬盘信息 lvextend -L +1G /dev/mapper/vg00-lvroot 或者 lvextend -l +%FREE /dev/mappe ...

随机推荐

  1. [window] 使用Pyhton轻便好用的spyder IDE进行代码分析时如何指定相关的配置文件

    spyder 使用pylint这个第三方库进行代码检查,其实pylint使用的代码规范默认也是pep8,不过该库还有 其它用途,在这里我专门写写在代码分析时,如何指定配置文件 一般来说,使用spyde ...

  2. Mysql索引深入理解

    一.  引言 Mysql 我们平常用的很多,了解的很多,今天别的不说,直接说mysql的底层是什么,说到底层,就想到数据结构,那么,mysql的数据结构是什么呢? 是B + tree .那么数据库中的 ...

  3. UOJ418. 【集训队作业2018】三角形

    http://uoj.ac/problem/418 题解 考虑激活每个节点时,它的每个儿子都是放满的. 那每一次的操作我们可以用一个二元组来表示\((w_i-\sum w_{son},\sum w_{ ...

  4. 判断内网机器的真实外网IP或域名的方法总结

    在内渗透中有时需要在某台WEB服务器中留下后门,可以通过内网IP建立IPC连接,但还需要获知外网IP才能访问Wbshell,在无网关权限的情况下,我总结了有如下方法: nslookup myip.op ...

  5. Vue包的下载

    第一步:先去官网下载Vue包:https://cn.vuejs.org/,找到教程. 第二步:Vue的包有以下引入方式(点击之后,跳转页面,直接将代码复制下来,放到新文件中,另存为即可使用Vue.js ...

  6. swiper(轮播)组件

    swiper是一个非常强大的组件 但是需要swiper-item这个标签来实现他想显示的内容 swiper-item标签有个item-id的属性,属性值:字符串 是swiper-item的标识符: 一 ...

  7. JavaVM & JNIEnv

    JNIEnv提供了大多数的JNI函数.你的本地方法都会接收JNIEnv作为第一个参数.JNIEnv用于本地线程存储.因此,你不能在线程间共享同一个JNIEnv.如果一个代码段没有其他方式获取它自身线程 ...

  8. Linux内核调试方法总结之Call Trace

    内核态call trace 内核态有三种出错情况,分别是bug, oops和panic. bug属于轻微错误,比如在spin_lock期间调用了sleep,导致潜在的死锁问题,等等. oops代表某一 ...

  9. spring boot配置项profiles active

    结论:通用项配置在applicaton.yml,区别环境配置在application-{profile}.yml中 一直不知道这个参数要不要配,配了有什么用,今天搭一个工程来检验 此项作用:用来区分不 ...

  10. HttpServletRequest中的request.setAttribute()和request.getSession().setAttribute()

    request.setAttribute("num",value):有效范围是一个请求范围,不发送请求的界面无法获取到value的值,jsp界面获取使用EL表达式${num}:re ...