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 和 它的大小即可。

相关推荐
绵绵细雨中的乡音24 分钟前
网络基础知识
linux·网络
Peter·Pan爱编程44 分钟前
Docker在Linux中安装与使用教程
linux·docker·eureka
kunge20132 小时前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪5492 小时前
DVWA中级
linux
MUY09902 小时前
应用控制技术、内容审计技术、AAA服务器技术
运维·服务器
楠奕2 小时前
elasticsearch8.12.0安装分词
运维·jenkins
Sadsvit2 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok2 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux
java资料站3 小时前
Jenkins
运维·jenkins
苦学编程的谢3 小时前
Linux
linux·运维·服务器