Vmware虚拟机centos扩展硬盘空间

devtools/2025/1/15 7:17:09/

一,调整硬盘大小

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

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

二,系统内部扩展

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(逻辑卷)进行格式化时,就是在安装文件系统。

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

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这块硬盘

fdisk /dev/sda

依次按照如下操作

输入 n 创建新分区
选择分区类型(主分区或扩展分区),通常选择主分区(p)。
分区号:默认即可(如 3)。
起始扇区:默认即可(直接按回车)。
结束扇区:默认即可(使用所有未分配空间)。

设置分区类型为 LVM:
输入 t 更改分区类型
选择分区号(如 3)
输入 8e(Linux LVM 的类型代码)。
输入 w 保存更改并退出。

刷新分区列表:

partprobe /dev/sda

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

2.3 创建物理卷PV

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

sudo pvcreate /dev/sda3

2.4 物理卷添加到卷组

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

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

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

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

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

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

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

sudo vgextend centos /dev/sda3

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

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

2.4 调整LV(逻辑卷)大小

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

sudo lvextend -l +100%FREE /dev/centos/root

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

sudo lvdisplay /dev/centos/root

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

2.5 刷新文件系统大小

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

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

sudo resize2fs /dev/centos/root

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

sudo xfs_growfs /dev/centos/root

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

 lsblk -f 

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

2.6 验证结果

查看文件系统的大小:

df -h

三,题外话

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

3.1 创建分区

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

fdisk /dev/sda

依次按照如下操作

输入 n 创建新分区
选择分区类型(主分区或扩展分区),通常选择主分区(p)。
分区号:默认即可(如 3)。
起始扇区:默认即可(直接按回车)。
结束扇区:默认即可(使用所有未分配空间)。

设置分区类型为xfs:
输入 t 更改分区类型
选择分区号(如 3)
输入 83(Linux 原生文件系统,包括xfs 和 ext系列等)。
输入 w 保存更改并退出。

3.2 格式化分区

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

sudo mkfs.ext4 /dev/sda3

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

sudo mkfs.xfs /dev/sda3

ext4 和 xfs 的对比如下:

3.3 挂载分区

mkdir /xxx
sudo mount /dev/sda3 /xxx

3.4 设置自动挂载

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

/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 验证

df -h

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


http://www.ppmy.cn/devtools/150612.html

相关文章

flutter R库对图片资源进行自动管理

项目中对资源的使用是开发过程中再常见不过的一环。 一般我们在将资源导入到项目中后&#xff0c;会通过资源名称来访问。 但在很多情况下由于我们疏忽输入错了资源名称&#xff0c;从而导致资源无法访问。 所以&#xff0c;急需解决两个问题&#xff1a; 资源编译期可检查可方…

Unity WebGL:本机部署,运行到手机

Unity WebGL 简单介绍一下Unity WebGL的技术方案&#xff0c;在WebGL平台出包后&#xff0c;Unity的运行时C/C代码是通过Emscripten编译成了WebAssembly/Wasm&#xff1b;游戏逻辑部分的C#代码是先通过il2cpp转成C再编译转成的Wasm&#xff0c;Unity程序就就可以在支持WebAsse…

HTTP 范围Range请求

引言 在现代Web应用中&#xff0c;HTTP范围请求是一种重要的技术&#xff0c;允许客户端请求资源的部分内容&#xff0c;而不是整个资源。这对于大型文件的传输尤其有用&#xff0c;如视频流、断点续传下载等。本文将深入探讨HTTP范围请求的工作原理、实现方法和应用场景。 H…

MTK6768 Android13 亮度条均匀调节实现

文章目录 需求&#xff1a;问题现象&#xff1a;需求实现疑难问题点&#xff1a;相关资源修改的文件调试技巧具体需求实现去除亮度弹框设置去掉跳转逻辑SystemUI亮度条长按跳转屏蔽 实现亮度均匀调节PhoneWindowManager.javaBrightnessUtils convertLinearToGammaFloatBrightne…

Flink类加载机制详解

1. 总览 在运行Flink应用时,它会加载各种类,另外我们用户代码也会引入依赖,由于他们依赖版本以及加载顺序等不同,就可能会导致冲突,所以很要必要了解Flink是如何加载类的。 根据加载的来源的不同,我们可以将类分为三种: Java Classpath:Java类路径下,这是Java通用的…

LabVIEW智能水肥一体灌溉控制系统

本文详细介绍了一种基于LabVIEW的智能水肥一体灌溉控制系统的设计与实现。该系统采用模糊控制策略&#xff0c;能够自动调节土壤湿度和肥液浓度&#xff0c;满足不同作物在不同生长阶段的需求&#xff0c;有效提高水肥利用效率&#xff0c;对现代精准农业具有重要的实践和推广价…

MATLAB中rescale函数用法

目录 语法 说明 示例 缩放到单位区间 缩放到指定范围 缩放矩阵列和行 rescale函数的功能是数组元素的缩放范围。 语法 R rescale(X) R rescale(X,a,b) R rescale(___,Name,Value) 说明 R rescale(X) 将 X 的条目缩放到区间 [0,1]。输出数组 R 的大小与 X 相同。 R…

ElectronSharp,.Net跨平台的多一种选择

文章目录 背景解决方案小结 背景 最近有个项目是基于Blazor的跨平台项目&#xff0c;要求在Windows、安卓平板和Mac上能跑&#xff0c;而且要求实现视频通话功能&#xff0c;而Web里的视频通话无非就是基于WebRTC技术。经过前期调研&#xff0c;通过套壳MAUI&#xff0c;Windo…