当前位置: 首页 > news >正文

Ubuntu 磁盘扩容与扩容失败问题解决( df -h 与 GParted 显示空间不一致的问题 -LVM)

在管理 Linux 磁盘时,你是否遇到过这样的困惑:正常扩容之后,发现GParted 显示某个分区还有几十 GiB 可用,但 df -h 却提示该分区已接近满额?这种 “空间幻觉” 背后是系统存储管理的分层设计,本文将从原理到实践,带你彻底解决这个问题。

阅读说明

一、背景与扩容步骤 这部分是关于虚拟机如何扩容步骤及相关背景

二、解决不一致问题(未正常扩容) 这一部分是说明按照扩容步骤正常扩容之后,但是使用df -h查看磁盘却未发生任何改变。(可能是因为LVM2的原因)

后续其余部分是关于LVM2为什么会出现相关情况,及LVM相关操作的相关说明

根据实际情况选择需要的部分阅读。

一、背景与扩容步骤

环境:VMware 安装的Ubuntu24.04 .1 server版本

事件起因:当我发现虚拟机磁盘空间被占满时,进行了相关的扩容操作。如下图所示:

1、发现磁盘告警

在这里插入图片描述

2、扩容

关闭虚拟机–>点击硬盘–>扩展–>根据需要设置磁盘总大小 (我在截图之前是60g,后来改成了70g,但是不影响具体步骤)

在这里插入图片描述

改好之后启动虚拟机。

3、使用gparted工具调整大小(使用可视化工具,最简单)

由于我安装的Ubuntu server版本(如果使用的是其它桌面版,就不会存在这个问题,直接运行命令sudo gparted 即可),在命令行无法支持ui界面。所以我采用一个远程工具(MobaXterm)进行ssh远程连接到服务器(Ubuntu server)。

在这里插入图片描述

执行命令:

sudo gparted

可能遇到的问题:

1、未安装gparted工具

sudo install gparted  //安装gparted工具

2、MobeXterm 可能会遇到的问题。如下图:

在这里插入图片描述

打开图上所示网页,可以找到解决办法:

在这里插入图片描述

执行命令,成功之后会看见gparted的ui界面,如下图:

sudo xauth add $(xauth -f ~ml/.Xauthority list|tail -l)  //命令中的ml改为自己的用户名
sudo gparted                                            //再执行这个命令即可正常打开

在这里插入图片描述

打开gparted工具界面之后,选择想要更改大小的分区,鼠标右键–>Resize/Move

在这里插入图片描述

更改文件系统大小,可以直接拖动。也可以直接改数字,如图(说明:截图中是已经改过了的,未改之前会发现是有颜色区分的):

在这里插入图片描述

改好之后点击Resize -> 再点击上面勾按钮

在这里插入图片描述

最后点击应用(Apply)

在这里插入图片描述

说明:正常情况下,从开始步骤到这个地方,已经完成了虚拟机的扩容操作。,但是我装虚拟机默认使用的LVM2 全称是 Logical Volume Manager,即逻辑卷管理器。 就会出现扩容不成功(其实是扩容步骤还未完成,即df -h 与gparted不一致问题)。 最后我会说明为什么会出现这个问题。

4、发现不一致问题截图对比

现象:GParted 显示物理卷(如 /dev/sda3)有未分配空间,但 df -h 显示逻辑卷(如 /dev/mapper/ubuntu--vg-ubuntu--lv)已接近满额。

在这里插入图片描述

二、解决不一致问题(未正常扩容)

解决步骤:扩展逻辑卷 + 扩展文件系统

1、检查卷组剩余空间

sudo vgdisplay # 查看卷组(如 ubuntu-vg)的剩余空间

输出中 Free PE 有数值(图中为 39.00 GiB),说明卷组有未分配空间。如图:

在这里插入图片描述

2 、扩展逻辑卷

将逻辑卷(如 ubuntu-vg/ubuntu-lv)扩展到卷组剩余空间的 100%:

sudo lvextend -l +100%FREE /dev/ubuntu--vg/ubuntu-lv

(或指定具体大小:lvextend -L +39G /dev/...

在这里插入图片描述

3、扩展文件系统

根据文件系统类型选择命令(ext4 用 resize2fs,xfs 用 xfs_growfs):

# ext4 示例
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv  
# xfs 示例
xfs_growfs /dev/mapper/ubuntu--vg-ubuntu--lv  

在这里插入图片描述

4 、验证结果

再次执行 df -h,确认逻辑卷的 “Size” 和 “Avail” 已更新。

在这里插入图片描述

三 、详细解释不一致的原因:

1. 显示的对象不同
  • gparted:显示的是物理卷(PV) 的大小。即:硬盘上划分出来的那个类型为 lvm2 pv 的分区有多大。这是“分配给LVM的总空间”。
  • df -h:显示的是逻辑卷(LV) 上的文件系统的使用情况。即:从LVM池子里划出来的那个“逻辑分区”(如根目录 / 对应的那个卷)有多大以及用了多少。这是“你实际可用的空间”。
2. 层级关系

空间分配的流程是:物理磁盘 → 分区(PV) → 卷组(VG) → 逻辑卷(LV) → 文件系统 → 存储文件

gparted 在第二层,df -h 在第五层。中间的任何变化都会导致两者显示的数字不同。

四、为什么会出现这种情况?常见场景:

场景一:LVM卷组有剩余空间(最常见)

这是最普遍的情况。安装系统时,你可能把整个磁盘都作为一个物理卷(PV)给了LVM的卷组(VG),但只从卷组中划出了一部分空间来创建根文件系统(LV)。

  • gparted 显示:整个PV的大小(例如:100GB)。
  • df -h 显示:根逻辑卷(LV)的大小(例如:90GB)。
  • 差异:剩下的 10GB 空间仍在卷组(VG)中,是未分配的“空闲空间”,可以被用来扩展现有的逻辑卷或创建新的逻辑卷。这部分空间 df -h 是看不到的。

如何验证?
使用 sudo vgdisplay 命令查看卷组信息,你会看到:

  • VG Size:应该接近 gparted 显示的大小。
  • Free PE / Size:这里会显示卷组中尚未分配出去的剩余空间。这个数字大致就是 gparted 大小减去 df -h 大小的差值。
场景二:文件系统没有占满整个逻辑卷(LV)

即使逻辑卷(LV)本身有100GB,你在上面创建的文件系统(如ext4)也可能只用了90GB。

  • gparted 显示:PV大小 = 100GB
  • lsblk 显示:LV大小 = 100GB
  • df -h 显示:文件系统大小 = 90GB

如何验证?
使用 sudo lvdisplaylsblk 命令。lsblk 会同时显示LV的大小和其上层文件系统的大小,非常适合用来排查这种差异。

$ lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                         8:0    0 238.5G  0 disk
├─sda1                      8:1    0   512M  0 part /boot/efi
├─sda2                      8:2    0   732M  0 part /boot
└─sda3                      8:3    0 237.3G  0 part└─ubuntu--vg-ubuntu--lv 253:0    0   100G  0 lvm  /  # 逻辑卷(LV)大小
# df -h 显示的是挂载到 / 的这个文件系统的使用情况,可能只有90G
场景三:保留了启动分区或交换空间

你的磁盘上可能不仅有LVM分区,还有独立的 /boot/efi/boot 分区或交换分区。gparted 会显示所有分区,而 df -h 只显示已挂载的文件系统。

五、如何全面了解你的磁盘空间?

要弄清所有空间去哪了,建议按顺序使用以下命令:

  1. sudo fdisk -lsudo parted -l:查看物理磁盘和最底层的分区布局。
  2. sudo pvdisplay:查看物理卷(PV)信息,确认LVM管理的物理空间。
  3. sudo vgdisplay:查看卷组(VG)信息,重点关注 Free PE / Size,这是谜题的关键。
  4. sudo lvdisplay:查看逻辑卷(LV)信息。
  5. lsblk这是最直观的工具,它以树形结构一次性显示磁盘、分区、物理卷、逻辑卷和挂载点之间的关系和大小。
  6. df -h:最后看文件系统的具体使用情况。

常用的LVM管理命令:

如果您想查看系统的LVM结构,可以在终端中使用以下命令:

命令功能描述
sudo pvdisplay显示物理卷的详细信息
sudo vgdisplay显示卷组的详细信息
sudo lvdisplay显示逻辑卷的详细信息
lsblk以树形结构清晰显示磁盘、分区和逻辑卷的关系
df -h查看已挂载的文件系统及其大小(会显示逻辑卷的挂载点)

总结:gparteddf -h 的大小不一致是正常的,这恰恰体现了LVM将物理存储和逻辑存储分离的核心优势——卷组(VG)中的空闲空间为你提供了极大的灵活性,你可以随时将其添加到需要扩容的逻辑卷中,而无需重新分区。


文章转载自:

http://itG0VbVZ.tLLhz.cn
http://zu6jbUc7.tLLhz.cn
http://cp2Z167f.tLLhz.cn
http://TepPvUvO.tLLhz.cn
http://ESVZ7et3.tLLhz.cn
http://w3no9Y4I.tLLhz.cn
http://p1twXQ8y.tLLhz.cn
http://ReGutlPq.tLLhz.cn
http://iJzW4Eag.tLLhz.cn
http://ogaI8HwD.tLLhz.cn
http://gsvfanrM.tLLhz.cn
http://t1n0kGva.tLLhz.cn
http://XKqNy8MB.tLLhz.cn
http://Tja3DlJZ.tLLhz.cn
http://ymhhWgAv.tLLhz.cn
http://ZKhGz2Kv.tLLhz.cn
http://rQkqUyNx.tLLhz.cn
http://LlOsSa95.tLLhz.cn
http://dDpwvcLk.tLLhz.cn
http://3oRPSaqR.tLLhz.cn
http://tF7hIlzt.tLLhz.cn
http://lTMlOpzD.tLLhz.cn
http://NdaivnFR.tLLhz.cn
http://Xg5855yE.tLLhz.cn
http://V4TaZs68.tLLhz.cn
http://AEtrsU4S.tLLhz.cn
http://DETuy7Cp.tLLhz.cn
http://g5tA9xCA.tLLhz.cn
http://rqlu1naC.tLLhz.cn
http://GNVhmLGQ.tLLhz.cn
http://www.dtcms.com/a/387968.html

相关文章:

  • pytorch图像识别,入门深度学习第一个项目
  • Ubuntu 22.04 使用 Docker 部署 Redis 6.2(带密码与持久化)
  • Termux 安装 Trilium 笔记,全平台同步的好用开源 Markdow 笔记,超大型双链接笔记
  • CVAT工具的详细使用教程(视频标注)
  • 【一周AI资讯】Claude自动抓取网页;美团发布生活Agent;阿里通义发布双模型
  • [视图功能4] 视图共享与外部链接权限管理:安全又灵活的数据展示
  • 20250917在荣品RD-RK3588-MID开发板的Android13系统下使用tinyplay播放wav格式的音频
  • PAT 1013 Battle Over Cities
  • 自动驾驶车辆的网络安全威胁及防护技术
  • 《基于uni-app构建鸿蒙原生体验:HarmonyOS NEXT跨平台开发实战指南》
  • 数学_向量投影相关
  • 【完整源码+数据集+部署教程】传统韩文化元素分割系统: yolov8-seg-GFPN
  • hybrid实验
  • Prompt Engineering 技术文档
  • 《我看见的世界》- 李飞飞自传
  • TPS54302开关电源启动 1s 后输出电压掉电排查笔记 — TPS54302 5V→2.8V 案例
  • 具身智能数据采集方案,如何为机器人打造“数据燃料库”?
  • Prism模块化和对话服务
  • nas怎么提供给k8s容器使用
  • 【第五章:计算机视觉-项目实战之图像分类实战】1.经典卷积神经网络模型Backbone与图像-(8)多标签图像分类理论
  • 认知语义学中的意象图式对人工智能自然语言处理深层语义分析的影响与启示
  • [ffmpeg] 时间基总结
  • 数据结构排序入门(3):核心排序(归并排序,归并非递归排序,计数排序及排序扫尾复杂度分析)+八大排序源码汇总
  • 计算机网络七层模型理解
  • 同步与互斥学习笔记
  • 命令行方式部署OceanBase 集群部署
  • 小迪安全v2023学习笔记(八十四讲)——协议安全桌面应用hydra爆破未授权检测
  • MAC-简化版枚举工具类
  • Science Robotics 美国康奈尔大学开发的新型触觉显示器
  • Java 零基础学习指南