Vmware虚拟机centos扩展硬盘空间

一,调整硬盘大小

关闭虚拟机后才可以调整,否则 扩展 按钮是灰色的

扩展后,会弹出如下提示:

二,系统内部扩展

1. 知识铺垫

如果熟悉 Part(分区)、PV(物理卷)、VG(卷组)、LV(逻辑卷)、文件系统、挂载点等概念的,可跳过。

对于linux系统,硬盘的管理与windows有很大差别,不弄清楚这些概念,照抄一些命令也是稀里糊涂的,所以先搞清楚基本知识才能更好的操作。

linux没有盘符(C盘、D盘等)的概念,是通过目录来实现存储到不同的空间:

比如将硬盘的某块空间挂载到/opt 目录,另一块空间挂载到/var 目录, 这样当你向 /opt内存储是就存到了前一块空间,向/var目录存储,就存到了后一块空间中。

1. linux 有两类管理方式,一是通过LVM, 二是不通过LVM。

1.1 LVM

优点:可动态调整空间大小,能挂多分区、多硬盘

能实现一个挂载点(一个目录)容量的动态调整,比如哪天你的/opt目录空间不够了,你可以新加一块硬盘来扩展/opt目录的空间,这样你存储到/opt时,它自动分配到多块硬盘中,对用户而言还是在使用一块硬盘。

缺点:使用较为复杂

1.2 不通过LVM

优点:使用简单

缺点:直接和分区绑定,不能动态调整空间大小

2. LVM 讲解

LVM

挂载点: 就是一个目录,最终这片硬盘空间面向用户是,以目录的方式给用户使用。

文件系统:可以理解成一套API,在格式化的时候,就是在安装这套API,文件系统有非常多种,比如ext4、xfs , 它去和硬件驱动打交道完成硬盘读写。在LVM中,文件系统安装在LV(逻辑卷)上, 在对LV(逻辑卷)进行格式化时,就是在安装文件系统。

查看文件系统的类型,可以使用如下命令:

bash 复制代码
lsblk -f

一个挂载点 只能和一个 文件系统绑定(当然还有一些其他骚操作能间接实现多绑,但都是间接),查看他俩绑定关系:

也就是说,你操作哪个目录,实际上就是在操作哪个文件系统。

硬盘在linux系统中依次是 sda 、sdb 、sdc 这样命名。

硬盘先要进行分区,比如图上对sda分区产生 sda1 和 sda2 两个分区。

为每个分区创建物理卷(PV), 一个分区只能创建一个物理卷,物理卷(PV) 可以加入到某个 卷组(VG)中。

逻辑卷(LV) 可以跨多个PV, 例如图中LV1 使用了PV1 + PV2 + 部分PV3。

注意:

a, 逻辑卷只能使用一个卷组内的PV, 不能跨卷组,这就是卷组(VG)存在的意义吧

b, LV1 和 LV2共同使用了PV3, 但是它们使用的空间不会有重叠。

LVM实现动态扩容,就是通过 逻辑卷(LV)实现的, 即动态调整它的 PV 个数或者大小。

文件系统 就是 安装在 逻辑卷 LV 上(一个逻辑卷只能安装一个文件系统), 再把文件系统挂到某个目录,操作目录时,最终就是操作到了 文件系统---->逻辑卷---->物理卷----->硬盘。

2. 调整

2.1 查看

使用 lsblk 查看,硬盘sda 一共50G,两个分区sda1 和 sda2 共20G, 因此刚才扩展的30G在这里还看不到,属于空闲空间

使用 sudo parted /dev/sda print free 可查看到空闲空间,这里空间可能是按 1000M = 1G计算的所以看起来是32.2G

2.2 建分区

对上面的空闲区域建立分区, 由于它属于sda这块硬盘,所有设备都在/dev下,因此/dev/sda就代表了sda这块硬盘

bash 复制代码
fdisk /dev/sda

依次按照如下操作

输入 n 创建新分区

选择分区类型(主分区或扩展分区),通常选择主分区(p)。

分区号:默认即可(如 3)。

起始扇区:默认即可(直接按回车)。

结束扇区:默认即可(使用所有未分配空间)。

设置分区类型为 LVM:

输入 t 更改分区类型

选择分区号(如 3)

输入 8e(Linux LVM 的类型代码)。

输入 w 保存更改并退出。

刷新分区列表:

bash 复制代码
partprobe /dev/sda

这样就是创建了一个叫 sda3 的分区。

2.3 创建物理卷PV

针对上面创建的 sda3 分区创建物理卷

bash 复制代码
sudo pvcreate /dev/sda3

2.4 物理卷添加到卷组

将上面创建的 PV(物理卷) 添加到卷组

因为咱们是要扩展挂载点 根目录 / 的空间,所以要先看一下 根目录 所属的卷组是哪一个

下图中,挂载点 / 对应的文件系统为/dev/mapper/centos-root

这个名称的格式为:/dev/mapper/<卷组名>-<逻辑卷名>

所以,当前 / 所属的 VG(卷组) 名称是 centos , LV(逻辑卷)名称是 root

通过 vgs 命令可以看到所有的卷组:

现在,将新创建的 PV(物理卷)/dev/sda3 加入到名称为 centos 的 VG(卷组)中:

bash 复制代码
sudo vgextend centos /dev/sda3

查看该 卷组 centos 的空间情况:

Alloc 是已分配的20G, Free是空闲的 30G

2.4 调整LV(逻辑卷)大小

上面的命令中,已经知道根目录 使用的 卷组 是centos , 逻辑卷 是 root, 现在就是要将 卷组内100%的空闲空间分配给名称为root 的 LV:

bash 复制代码
sudo lvextend -l +100%FREE /dev/centos/root

查看调整后的逻辑卷大小:

bash 复制代码
sudo lvdisplay /dev/centos/root

注意:这个名为centos的 LV(逻辑卷),是之前就有的,所以它上面已经 有了文件系统,就不要再格式化(安装文件系统)了,如果你是新创建的逻辑卷, 此处应该对逻辑卷进行格式化。

2.5 刷新文件系统大小

LV的大小调整后,文件系统的大小不会自动变化,需要手动刷新一下:

对于ext4的文件系统使用命令:

bash 复制代码
sudo resize2fs /dev/centos/root

对于xfs的文件系统使用命令:

bash 复制代码
sudo xfs_growfs /dev/centos/root

怎么查看LV的文件系统是什么呢?

bash 复制代码
 lsblk -f 

执行上面的命令,看到卷 centos-root 的FSTYPE(文件系统类型) 列是xfs, 因此执行上面的xfs命令进行刷新

2.6 验证结果

查看文件系统的大小:

bash 复制代码
df -h

三,题外话

上面是使用LVM扩展了 / 目录, 如果咱们不扩展 / , 就新建一个 /xxx 目录,然后将 这片空闲空间挂到 /xxx 目录呢?

3.1 创建分区

也是针对硬盘 /dev/sda 进行分区

bash 复制代码
fdisk /dev/sda

依次按照如下操作

输入 n 创建新分区

选择分区类型(主分区或扩展分区),通常选择主分区(p)。

分区号:默认即可(如 3)。

起始扇区:默认即可(直接按回车)。

结束扇区:默认即可(使用所有未分配空间)。

设置分区类型为xfs:

输入 t 更改分区类型

选择分区号(如 3)

输入 83(Linux 原生文件系统,包括xfs 和 ext系列等)。

输入 w 保存更改并退出。

3.2 格式化分区

如果要格式化成ext4的,执行:

bash 复制代码
sudo mkfs.ext4 /dev/sda3

如果要格式化成xfs的,执行:

bash 复制代码
sudo mkfs.xfs /dev/sda3

ext4 和 xfs 的对比如下:

3.3 挂载分区

bash 复制代码
mkdir /xxx
sudo mount /dev/sda3 /xxx

3.4 设置自动挂载

编辑 /etc/fstab 文件, 加入下面的内容

bash 复制代码
/dev/sda3  /xxx  xfs  defaults  0  2

参数说明:

第1列:设备名或 UUID(例如 /dev/sdb1 或 UUID=xxxx-xxxx-xxxx)。

第2列:挂载点(例如 /xxx)。

第3列:文件系统类型(例如 xfs 或 ext4)。

第4列:挂载选项(例如 defaults)。

第5列:是否备份(0 表示不备份,1 表示备份)。

第6列:是否检查文件系统(0 表示不检查,1 表示优先检查,2 表示次优先检查)

3.5 验证

bash 复制代码
df -h

能看到 /xxx 和 它的大小即可。

相关推荐
Antonio91513 分钟前
【Linux】Linux基础命令(二)
linux·服务器
修乙31 分钟前
linux安全更新zookeeper docker
linux·docker·zookeeper
过过过呀Glik35 分钟前
在 Ubuntu 中安装 C++ 版本的 Protocol Buffers
linux·c++·ubuntu·protocol
itclanCoder1 小时前
针对服务器磁盘爆满,MySql数据库始终无法启动,怎么解决
运维·服务器·数据库·mysql·adb
落霞的思绪1 小时前
苍穹外卖07——来单提醒和客户催单(涉及SpringTask、WebSocket协议、苍穹外卖跳过微信支付同时保证可以收到订单功能)
linux·前端·数据库
黑牛先生1 小时前
【Linux】模拟Shell命令行解释器
linux·运维·服务器
binqian2 小时前
【harbor】离线安装2.9.0-arm64架构服务制作和升级部署
运维·架构
bai_shuang2 小时前
Linux环境(Ubuntu)上搭建MQTT服务器(EMQX )网络环境部署
linux·服务器·ubuntu
关爱的眼神6372 小时前
shell脚本练习
linux·运维·服务器
钡铼技术物联网关2 小时前
1TOPS 算力加持:瑞芯微 RK3568 边缘计算盒子重塑电路板质检模式
linux·arm开发·自动化·硬件工程