VMware虛擬機CentOS磁盤擴容的全過程
前言
在日常開發(fā)和運維中,我們經(jīng)常遇到 VMware 虛擬機磁盤空間不足的問題。本文記錄了如何為一臺正在運行的 CentOS 7 虛擬機安全地擴容磁盤空間的全過程。本次操作不僅涵蓋了標(biāo)準(zhǔn)的擴容步驟,還重點解決了實際操作中可能遇到的兩個關(guān)鍵問題:
- growpart 工具報錯:
unexpected output in sfdisk --version - 在標(biāo)準(zhǔn)的 LVM (Logical Volume Manager) 結(jié)構(gòu)下如何正確擴容
本文提供兩種方法:推薦的標(biāo)準(zhǔn)LVM流程 和 備用方案,成功解決了從 VMware 層面到操作系統(tǒng)內(nèi)部的完整擴容。最終成功將系統(tǒng)根目錄從 26G 擴容至 76G。
一、環(huán)境與背景
- 虛擬化平臺: VMware Workstation 16/17 (ESXi 步驟類似)
- 客戶機系統(tǒng): CentOS 7.x
- 初始磁盤: 20G
- 目標(biāo)磁盤: 80G
- 問題現(xiàn)狀: 根目錄 (/) 空間不足,需將其擴容。
- 關(guān)鍵特征: 系統(tǒng)采用 LVM 分區(qū)結(jié)構(gòu)。
擴容前使用 lsblk 和 df -h 查看磁盤情況:
$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 29G 0 part ├─centos-root 253:0 0 26G 0 lvm / └─centos-swap 253:1 0 3G 0 lvm [SWAP]
二、第一階段:VMware 層面擴容
警告:操作前請務(wù)必對虛擬機創(chuàng)建快照或備份,以防數(shù)據(jù)丟失!
1.?關(guān)閉虛擬機: 確保目標(biāo) CentOS 虛擬機已完全關(guān)機(Power Off),而不是掛起(Suspend)。
2. ?編輯虛擬機設(shè)置: 在 VMware 中,右鍵點擊 虛擬機 -> “設(shè)置” (Settings)。
3. ?擴展磁盤: 選擇 “硬盤” (Hard Disk) -> 點擊 “擴展” (Expand) 按鈕。
4. ?設(shè)置新容量: 在彈出的窗口中,輸入大于當(dāng)前值的容量(例如從 20G 擴展到 80G)。點擊確定,等待 VMware 完成磁盤文件的擴容。
至此,虛擬硬盤已變大,但操作系統(tǒng)還無法使用新空間。
三、第二階段:CentOS 系統(tǒng)內(nèi)部擴容
啟動 CentOS 虛擬機并登錄。以下是操作的核心步驟。
方法一:標(biāo)準(zhǔn)LVM擴容流程(推薦)
這是最正確、最安全的流程,適用于標(biāo)準(zhǔn)的 LVM 分區(qū)結(jié)構(gòu)。
步驟 1: 查看磁盤情況
首先確認 VMware 擴容是否成功,并看清磁盤結(jié)構(gòu)。
sudo lsblk sudo parted /dev/sda print
從輸出可以清晰看到:
/dev/sda磁盤已變?yōu)?80G。- 但分區(qū)
/dev/sda2仍為 31.1G,這意味著有大量空閑空間位于sda2分區(qū)之后。 /dev/sda2的類型是lvm,我們的根文件系統(tǒng)實際在邏輯卷centos-root上。
結(jié)論:我們需要將磁盤末端的空閑空間 -> 加入到 sda2 分區(qū) -> 被 LVM 物理卷識別 -> 將新空間加入到 centos 卷組 -> 最后擴展 centos-root 邏輯卷及其文件系統(tǒng)。
步驟 2: 擴展 sda2 分區(qū)
使用 parted 工具將 sda2 分區(qū)擴展到磁盤末尾。
sudo parted /dev/sda
在 parted 交互式命令行中執(zhí)行:
(parted) resizepart 2 -1 # 將第2個分區(qū)擴展到所有剩余空間 (parted) quit # 退出
注意:-1 表示擴展到最大可用空間。如果 resizepart 命令不可用(極舊版本),需使用 rm 和 mkpart 重建分區(qū),但風(fēng)險極高,不推薦。
步驟 3: 刷新內(nèi)核分區(qū)表
讓系統(tǒng)在不重啟的情況下識別新的分區(qū)大小。
sudo partprobe /dev/sda
步驟 4: 擴展 LVM 物理卷 (PV)
/dev/sda2 本身是一個物理卷,我們需要調(diào)整其大小。
sudo pvresize /dev/sda2
執(zhí)行后,使用 sudo pvdisplay 查看,會發(fā)現(xiàn) Free PE 空間增加了。
步驟 5: 擴展邏輯卷 (LV)
將卷組中的空閑空間全部分配給 centos-root 邏輯卷。
# 查看卷組空閑空間 sudo vgdisplay # 將所有空閑空間擴展到 centos-root 邏輯卷 sudo lvextend -l +100%FREE /dev/mapper/centos-root
步驟 6: 擴展文件系統(tǒng) (XFS)
最后一步,擴展邏輯卷上的文件系統(tǒng),才能真正使用空間。
# CentOS 7 默認使用 XFS 文件系統(tǒng) sudo xfs_growfs / # 如果是 Ext4 文件系統(tǒng),請使用以下命令: # sudo resize2fs /dev/mapper/centos-root
步驟 7: 驗證結(jié)果
運行命令檢查最終成果:
df -h lsblk
輸出應(yīng)顯示根目錄 / 的掛載點大小已變?yōu)?76G 左右,擴容成功!
方法二:解決 growpart 報錯方案(備用)
如果在非LVM系統(tǒng)上使用傳統(tǒng)方法,可能會遇到 growpart 報錯。
錯誤信息:
sudo growpart /dev/sda 2 unexpected output in sfdisk --version [sfdisk,來自 util-linux 2.23.2]
原因: CentOS 7 自帶的 util-linux 版本過低,與 growpart 腳本不兼容。
解決方案:
直接使用 parted 替代(如上文方法一所示),這是最佳解決方案。
或嘗試更新 cloud-utils-growpart 包:
sudo yum update cloud-utils-growpart
四、總結(jié)與注意事項
- 核心要點: 操作前一定要用
lsblk和df -T命令搞清楚磁盤和文件系統(tǒng)結(jié)構(gòu)。識別LVM是關(guān)鍵,它決定了后續(xù)完全不同的操作流程。 - 推薦流程: 對于現(xiàn)代
CentOS/RHEL系統(tǒng),標(biāo)準(zhǔn) LVM 擴容流程 (parted -> pvresize -> lvextend -> xfs_growfs) 是唯一正確路徑。 - 備份!備份!備份!: 任何磁盤分區(qū)操作都有極高風(fēng)險,操作前務(wù)必為虛擬機創(chuàng)建快照。
- 工具選擇: 放棄陳舊的
growpart和fdisk腳本,parted是更強大、更現(xiàn)代的命令行分區(qū)工具。
到此這篇關(guān)于VMware虛擬機CentOS磁盤擴容的全過程的文章就介紹到這了,更多相關(guān)VMware CentOS磁盤擴容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VMware虛擬機提示以獨占方式鎖定此配置文件失敗的解決方法
這篇文章主要介紹了VMware虛擬機提示"以獨占方式鎖定此配置文件失敗"的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
VMware安裝Centos8系統(tǒng)的教程圖解(命令行模式)
本文通過圖文并茂的形式給大家介紹了VMware安裝Centos8系統(tǒng)(命令行模式),非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10
VMware-ovftool命令行部署與導(dǎo)出鏡像方式
這篇文章主要介紹了VMware-ovftool命令行部署與導(dǎo)出鏡像方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12

