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 示例
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
# xfs 示例
sudo xfs_growfs /dev/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://www.pswp.cn/bicheng/98273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/98273.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/98273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyQt5中QLineEdit控件數值顯示與小數位數控制

在PyQt5應用程序開發中,QLineEdit控件常用于顯示和編輯文本內容。當需要用它來顯示數值并控制小數位數時,開發者需要掌握一些特定的技巧。本文將深入探討幾種實現方法,每種方法都附帶完整獨立的代碼示例。 數值格式化基礎 在Python中&#xf…

LangChain使用方法以OpenAI 的聊天模型GPT-4o為例

以使用 OpenAI 的聊天模型(如 GPT-4)為例,從設置環境、初始化模型、調用模型到處理響應的各個方面進行介紹: 1. 環境設置 安裝 langchain-openai 包。設置環境變量 OPENAI_API_KEY,用于認證(以linux為例&am…

Oracle為數據大表創建索引方案

在日常業務中,避免不了為數據量大表補充創建索引的情況,如果快速、有效地創建索引成了一個至關重要的問題(注意:雖然提供有ONLINE在線執行的方式,理想狀態下不會阻塞DML操作,但ONLINE在開始、結束的兩個時刻…

網站服務相關問題

目錄 HTTP常見的狀態碼 http和https的區別以及使用的端口號 http處理請求的過程 https認證過程 正向代理和反向代理的區別 HTTP常見的狀態碼 HTTP(超文本傳輸協議)定義了一系列的狀態碼,用于表示客戶端請求的處理結果。以下是一些常見的…

Go并發編程實戰:深入理解Goroutine與Channel

Go并發編程實戰:深入理解Goroutine與ChannelGo并發編程實戰:深入理解Goroutine與Channel概述1. 為什么是Go的并發?從“線程”與“協程”說起2. Goroutine:如何使用?3. Channel:Goroutine間的安全通信創建與…

2025服貿會“海淀之夜”,點亮“科技”與“服務”底色

2025年9月12日傍晚,北京頤和園,十七孔橋旁,2025年中國國際服務貿易交易會“海淀之夜”如約而至。在“海淀之夜”,科技機構、金融機構、咨詢服務機構、出海服務企業以及跨國企業和國際友人等,將目光聚焦于此。被第三方機…

qt使用camke時,采用vcpkg工具鏈設置VTK的qt模塊QVTKOpenGLNativeWidget

下載:QVTKOpenGLNativeWidget嵌入qt應用中資源-CSDN下載 1.通過vcpkg安裝VTK,目前的VTK里面默認為qt6,如果需要安裝qt5,需要將端口配置進行修改 筆者的vcpkg的vtk端口路徑:D:\vcpkg\ports\vtk portfile.cmake 修改點: #第一處 #file(READ "${CURRENT_INSTALLED_DIR}/sh…

Axios在鴻蒙應用開發中的使用

目錄一、簡介二、安裝與配置三、axios用法1.axios泛型參數(1).第三個泛型參數-約束data請求參數的類型(2).第二個泛型參數-決定后臺返回數據的類型2.axios攔截器3.請求工具封裝統一處理業務狀態碼錯誤統一處理401或404錯誤一、簡介 Axios 是一個基于 Promise 的網絡請求庫&…

第九周文件上傳

文件上傳漏洞 不同的網站要不同的webshell。我們使用是php開發的網站。 一服務器白名單繞過 服務端白名單(Whitelist)是?種安全機制,它只允許預定義的合法元素通過(只有有限的元素進入),其他所有內容默認被拒絕。相比黑名單&am…

計算機視覺必讀論文:從經典到前沿

計算機視覺必讀論文:從經典到前沿 一、前言 二、經典論文解讀? 2.1 圖像分類? 2.1.1 《ImageNet Classification with Deep Convolutional Neural Networks》(AlexNet)? 2.1.2 《Very Deep Convolutional Networks for Large-Scale Image Recognition》(VGGNet)? 2.1.…

對比PowerBI的字段參數,QuickBI的已選字段還有改進的空間

對比PowerBI的字段參數,QuickBI的已選字段還有改進的空間 之前分享過QuickBI的已選字段 vs PowerBI的字段參數,QuickBI可以在表格中實現PowerBI的字段參數效果,甚至比PowerBI實現的過程和使用方式更絲滑。 但如果應用到圖形中會怎么樣呢&am…

飛算JavaAI:Java開發新時代的破曉之光

免責聲明:此文章的所有內容皆是本人實驗測評,并非廣告推廣,并非抄襲。如有侵權,請聯系,謝謝!【#飛算JavaAl炫技賽】 【#Java開發】摘要:飛算JavaAI作為全球首款聚焦Java的智能開發助手&#xff…

vulntarget-c靶場內網滲透

1. 環境搭建 2.對ubuntu20的滲透 對其進行端口掃描 訪問80端口 發現是laravel框架。版本是v8.78.1 使用 kaili 自帶的msf 進行滲透 search laravel use exploit/multi/php/ignition_laravel_debug_rce執行利用完成檢測 上傳木馬 先將木馬進行base64編碼 <?php eval($_P…

基于大模型多模態的人體體型評估:從“尺碼測量”到“視覺-感受”范式

基于大模型多模態的人體體型評估&#xff1a;從“尺碼測量”到“視覺-感受”范式摘要&#xff1a;傳統體型識別依賴CV骨架/關鍵點與像素量尺&#xff0c;容易受衣物、發型、姿態、光照影響&#xff0c;且“厘米級數值”與穿衣體驗、審美感受之間存在鴻溝。本文提出一種基于大模…

【docker】——docker國內可用的源

不知道哪里來的&#xff0c;但是可以用。1. 解決方案打開配置文件&#xff08;若文件不存在&#xff0c;會自動創建&#xff09; sudo vim /etc/docker/daemon.json將以下內容粘貼進去{"builder": {"gc": {"defaultKeepStorage": "20GB&quo…

【Windows端口管理】快速查看和釋放被系統保留的TCP端口

問題描述在Windows系統開發時&#xff0c;經常遇到端口無法使用的問題。系統會自動保留一系列TCP/UDP端口范圍&#xff0c;導致應用程序無法綁定這些端口。查看所有被保留的端口范圍查看TCP保留端口# 查看所有TCP端口排除范圍 netsh interface ipv4 show excludedportrange pro…

面經匯總(1)

1.介紹C面向對象的三大特性2.介紹常見的排序算法3.介紹TCP/UDP區別4.TCP三次握手四次揮手5.如果四次揮手第四次客戶端的ACK沒有發出去會有什么結果&#xff1f;6.介紹MYSQL的事務7.介紹線程池8.主要的線程池有哪幾種&#xff1f;9.手撕反轉鏈表10.介紹對象存儲以及常見的對象存…

遙感圖像數字水印系統優化方案

遙感圖像數字水印系統優化方案 1. 引言 遙感圖像在現代地理信息系統、環境監測、軍事偵察等領域發揮著重要作用。為了保護遙感圖像的版權和完整性&#xff0c;數字水印技術被廣泛應用。然而&#xff0c;現有的遙感圖像水印方案往往在不可見性、魯棒性和容量之間存在權衡&#x…

鴻蒙高效數據處理框架全攻略:緩存、并行與流式實戰

摘要 在如今的物聯網和智能設備世界里&#xff0c;數據已經成為最關鍵的資源。無論是可穿戴設備、智能家居&#xff0c;還是車載系統&#xff0c;每一秒都會產生大量數據。如果缺少一套高效的數據處理框架&#xff0c;開發者就可能面臨內存溢出、處理延遲大、設備卡頓等問題。本…

零售企業數字化轉型的道、法、術:基于開源AI大模型AI智能名片S2B2C商城小程序的戰略重構

摘要 在數字經濟與消費升級的雙重驅動下&#xff0c;零售企業正經歷從"流量爭奪"到"用戶時間爭奪"的范式轉變。本文以阿里巴巴、京東、萬達三大巨頭的戰略實踐為樣本&#xff0c;結合開源AI大模型、AI智能名片與S2B2C商城小程序的技術特性&#xff0c;提出…