lz在MAC上面使用Linux虚拟机,开始只建了一个分区,挂载在”/”目录下。现在硬盘空间不够了,所以lz就来给这个分区扩容。

首先,当然是要给虚拟机分配更多的硬盘空间喽(lz用的是VMware Fusion创建的虚拟机):

设置硬盘的大小,lz硬盘原先是20G,现在要扩到40G:

硬件已经准备就绪,现在要进行系统的设置喽。

(1)对硬盘进行分割,建立可用的分区

df -h:查看当前系统硬盘的使用情况。

以前的硬盘可用大小为18G,挂载在”/”目录下。

fdisk -l:将系统内所用的分区全部列出。

上面的信息显示,硬盘的大小为42.9G。列表显示的是分区信息,start与end是分区开始与结束的磁柱,blocks是分区的大小(单位KBytes)。分区仅仅使用了20G,还有剩余的空间未使用,可以用这些空间建立新的分区。

fdisk /dev/sda:进入fdisk程序来建立新分区。

p:将系统内所用的分区全部列出,如fdisk -l。

n:添加一个新分区。

首先选择分区的类型,primary或extended。分区有这两种类型,而且由于MBR大小的限制,仅支持4个分区(4P或3P+E)。如果想要划分更多的分区,就要使用3P+E这种方式,把剩余的容量全部分给extended,再分割extended实现更多的分区。如果在4个分区外还有剩余空间,这些空间便浪费了。这里选择p(primary)。

然后选择分区号,因为只支持4个分区,所以分区号只有四个。这里使用默认的3就可以了。

最后选择分区的起始扇区和结尾扇区,这个决定了该分区的大小。这里都用默认值,会将剩余的空间都分给新的分区。

运行p命令,看看新建的分区:

看到了新建的分区,因为后面的需要,还要将这个分区的Id改为8e(使用LVM合并分区时要求该类型),运行t命令:

使用w命令保存并退出(如果设置出现问题,使用q不保存退出)。

reboot重启系统或者使用partprobe命令使设置生效。

(2)对分区进行格式化,建立系统可用的文件系统。

Linux中的下列指令可以用来格式化分区:

使用df -Th,看看当前的文件系统是什么:

默认的文件系统是xfs,所以新建的分区也格式化成xfs:

mkfs.xfs /dev/sda3

(3)在Linux系统是建立挂载点(就是目录),然后将分区挂载上

其实挂载的目录就是分区的入口,往该目录下写入的内容便存入该分区。

mkdir /mount

mount -t xfs /dev/sda3 /mount

已经挂载上了,这样就可以使用该分区了。但是lz的目的是将原有分区扩容,所以将挂载的分区卸载下来:

umount /mount

(4)使用LVM合并分区

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。

下面介绍LVM的几个重要概念:

      • PV:是物理的磁盘分区
      • VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘
      • LV:也就是从VG中划分的逻辑分区

用rpm -aq | grep lvm查看LVM是否安装:

现在开始将新的分区合并到原有分区上:

1.pvdisplay:查看当前的PV。

现在只存在原先分区的PV,lz要添加新建分区的PV。

2.pvcreate /dev/sda3:创建PV。然后再次查看pvdisplay:

3.vgextend centos_centos1 /dev/sda3:扩展原有VG。然后查看vgdisplay:

原有分区的VG已经增加到了39.5G了。

4.lvdisplay:查看当前的LV。

5.lvextend -L +19.9G /dev/centos_centos1/root:扩展LV(+20G提示空间不足,原因不明)。

6.xfs_growfs /dev/mapper/centos_centos1-root:扩展分区(这一步的命令困扰了很久,网上大部分都是resize2fs /dev/mapper/centos_centos1-root,但是lz执行的时候一直报这个错Bad magic number in super-block。后来看了一片文章才知道,原来resize2fs是针对ext文件系统的工具,而xfs文件系统有其一系列特有的工具)。用df -h查看:

Linux分区扩容成功。

Linux分区扩容的更多相关文章

  1. Linux 分区扩容(根分区扩容,SWAP 分区扩容,挂载新分区为目录)

    请访问原文链接:https://sysin.org/blog/linux-partition-expansion/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页: ...

  2. linux根分区扩容

    Linux 根分区扩容 1.fdisk –l  (红线部分为新添加的硬盘) 2.磁盘格式化 3. mkfs.ext3 -T largefile /dev/sde(格式化上面的分区) 4. vgdisp ...

  3. Vbox下linux虚拟机根分区扩容

    前言 使用一段时间VBox中的linux后可能会显示根分区空间不足的情况,需要扩容. 通过查阅相关资料,VBox中linux扩容主要有两种办法:通过lvm扩容和通过gparted扩容 LVM条件:VB ...

  4. linux 使用fdisk分区扩容

    标签:fdisk分区 概述 我们管理的服务器可能会随着业务量的不断增长造成磁盘空间不足的情况,在这个时候我们就需要增加磁盘空间,本章主要介绍如何使用fdisk分区工具创建磁盘分区和挂载分区,介绍两种情 ...

  5. 双系统Ubuntu分区扩容过程记录

    本人电脑上安装了Win10 + Ubuntu 12.04双系统.前段时间因为在Ubuntu上做项目要安装一个比较大的软件,导致Ubuntu根分区的空间不够了.于是,从硬盘又分出来一部分空间,分给Ubu ...

  6. 从yum提示空间不足到根分区扩容

    记录一次安装软件的报错 --1261065212@qq.com         1.系统版本(VMware 虚拟机) [root@ansible-admin ~]# cat /etc/redhat-r ...

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

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

  8. Linux硬盘扩容(非LVM)

    环境说明: 虚拟机:Centos6 [root@elements ~]# cat /etc/redhat-release CentOS release 6.10 (Final) [root@eleme ...

  9. Linux Swap扩容

    最近在做rac,在环境检查的时候发现swap空间检查不通过,所以我们第一想到的是对swap进行扩容,那么swap扩容有哪些方法呢?这里主要介绍两种方法,一通过添加额外磁盘,扩展swap分区,二是通过本 ...

随机推荐

  1. C语言中无符号与有符号问题

    unsigned char a[5] = { 12,36,96,128,182 }; a[]范围为0~256. 数组中数都有效. char a[5] = { 12,36,96,128,182 }; a ...

  2. 以太坊系列之十三: evm指令集

    evm指令集手册 Opcodes 结果列为"-"表示没有运算结果(不会在栈上产生值),为"*"是特殊情况,其他都表示运算产生唯一值,并放在栈顶. mem[a.. ...

  3. 一个div添加多个背景图片

    效果图如下:

  4. PHP项目目录结构

    PHP项目目录结构 原创 2017年11月23日 16:02:18 标签: php / 结构 1226 一个完整的项目需要有三大部分构成,项目框架,业务实现,公共支持.为了便于开发维护,通常使三部分分 ...

  5. Java面向对象之多态(向上、向下转型) 入门实例

    一.基础概念 多态: 重点是对象的多态性.某一事物的多种体现形态. 多态的作用: 1.提高了代码的扩展性,后期出现的功能,可以被之前的程序所执行. 2.不能使用子类特有的功能.只能使用覆盖父类的功能. ...

  6. C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法

    本文实例讲述了C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法.分享给大家供大家参考.具体如下: 这个类不是我实现的,英文原文地址为http://www.egg ...

  7. C#实现,一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第35位数是多少, 用递归算法实现

    方法函数可以通过调用自身来进行递归.计算理论可以证明递归的作用可以完全取代循环. static void Main(string[] args) { Console.WriteLine(Ra()); ...

  8. [Python]打印a..z的字符

    import string print string.letters[0:26]

  9. JavaWeb学习笔记(八)—— EL表达式

    一.EL表达式概述 在JSP开发中,为了获取Servlet域对象中存储的数据,经常需要书写很多Java代码,这样的做法会使JSP页面混乱,难以维护.为此,在JSP2.0规范中提供了EL表达式.EL全名 ...

  10. Flask (五) RESTful API

    RESTful API 什么是REST 一种软件架构风格.设计风格.而不是标准,只是提供了一组设计原则和约束条件.它主要用户客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易 ...