極速雲online 極速雲online 立即諮詢

騰訊雲國際帳號開通 騰訊雲硬碟擴容後不顯示空間Linux分區擴展命令操作引導

騰訊雲國際 / 2026-08-05 16:03:04

一、先把「問題」說清楚:擴容了,為什麼 Linux 看不到?

雲端硬碟擴容之後,常見現象是:控制台顯示容量已增加,但 Linux 端執行 df -h 或磁碟清單仍看不到新增空間。原因往往不是硬碟沒變大,而是「三層結構」沒有一起跟著變:

  • 底層塊設備:例如 /dev/vdb/dev/sdb。雲端擴容後,它的容量應該已變大。
  • 騰訊雲國際帳號開通 分區:例如 /dev/vdb1。擴容只改了整體磁碟大小,但分區邊界可能仍停留在舊範圍。
  • 文件系統:例如 ext4。即使分區被擴大,文件系統也要重新調整,才能把新空間真正用起來。

因此正確流程通常是:先確認塊設備是否已擴大 → 再擴分區 → 最後擴文件系統。你看到的「不顯示空間」,多半卡在第 2 或第 3 步。

二、操作前的安全準備:別急著下命令

磁碟擴容不是複雜到不可控,但也不該盲按指令。建議你做三件事:

1)確認目標磁碟與掛載點

先看目前系統掛載了哪些分區、容量還有多少:

lsblk -f

df -hT

記下:

  • 你要擴容的那個掛載點(例如 //data)。
  • 對應的塊設備與分區(例如 /dev/vdb1)。
  • 文件系統類型(ext4、xfs 等)。

2)截圖或記錄現狀

把以下輸出保存(文字即可),後面排錯能直接對照差異:

lsblk

sudo fdisk -l 2>/dev/null || true

df -hT

3)理解風險:若是根分區,策略可能不同

如果你擴容的是非系統盤、且掛載在資料目錄(如 /data),通常可以在線擴容(依文件系統而定)。如果你擴容的是根分區(/),也可以做,但要更小心是否需重啟或進入救援模式。本文會以常見的非根分區場景為主,同時補充排查方法。

三、第一步:確認雲端硬碟確實已變大(塊設備容量)

在雲端控制台你已擴容,Linux 端仍需確認「塊設備」容量是否已更新。執行:

lsblk

sudo fdisk -l

重點看:

  • 你要擴容的那個磁碟(例如 /dev/vdb)容量是否已增加。
  • 分區(例如 /dev/vdb1)大小是否仍停留在舊值。

如果塊設備大小也沒變大,那你需要回到雲端檢查擴容是否成功、或是否需要重啟讓內核重新識別(有些環境擴完後需要操作重掃)。你可以先嘗試:重新掃描磁碟或重啟;但通常雲端擴容後塊設備會立即反映。

四、第二步:判斷分區表類型(MBR / GPT)

分區類型不同,操作工具與命令會有差異。查看方式:

sudo parted -l 2>/dev/null || true

sudo fdisk -l /dev/vdb 2>/dev/null || true

你也可以用下面的方式看磁碟標示:

sudo blkid /dev/vdb 2>/dev/null || true

更直接的做法是:你先確定目標磁碟是 /dev/vdb(請把示例替換成你的),再進入分區工具時看它顯示的格式(如 GPT 或 DOS)。

五、第三步:擴分區(最常見卡點)

下面以最常見情況敘述:你擴容的是一塊磁碟,分區已存在(例如 /dev/vdb1),但分區大小仍舊。你要做的是「把分區向後延伸到新磁碟末端」。

方案 A:使用 growpart(推薦,簡單、風險相對可控)

如果系統有安裝 growpart,它能根據現有分區直接擴到剩餘空間。先檢查:

which growpart || true

若未安裝,根據發行版安裝:

  • Debian/Ubuntu:
sudo apt-get update
sudo apt-get install -y cloud-guest-utils
  • 騰訊雲國際帳號開通 CentOS/RHEL/類似:
sudo yum install -y cloud-utils-growpart

然後執行(示例:擴容 /dev/vdb1):

sudo growpart /dev/vdb 1

如果你的分區是 /dev/nvme0n1p2 這種命名,命令要相應改成:

sudo growpart /dev/nvme0n1 2

執行後,再用:

lsblk -f

確認 /dev/vdb1 的 SIZE 是否已增加。

方案 B:使用 parted(通用、對 ext4/xfs 都常見)

如果你沒有 growpart 或想更可控地操作,就用 parted。注意:你要擴的是「最後一個分區」,最理想情況是它緊貼磁碟末端。若後面還有別的分區或 LVM/特殊佈局,策略會不同。

先進入:

sudo parted /dev/vdb

在 parted 內依序輸入(請不要逐字照抄磁碟代號,務必確認你的磁碟/分區):

(parted) print

(parted) resizepart 1 100%

(parted) quit

如果你的分區號不是 1,改成對應分區號。100% 表示擴到整個磁碟可用末端。

退出後立刻檢查分區大小是否變了:

lsblk -f

方案 C:使用 fdisk(適合 MBR/DOS,亦可用于 GPT 但較需小心)

fdisk 可以做重新寫入分區表,但它的風險在於:操作不當可能改錯起始位置。原則是「分區起始不變,只改終止」。典型步驟是:

  1. 進入 fdisk /dev/vdb
  2. 列出分區,記下 Start 起始位置
  3. 刪除分區(只刪分區表項,不改數據內容本身)
  4. 以相同 start 重建分區,終止改為新大小
  5. 騰訊雲國際帳號開通 寫入並退出

若你不是很熟,建議優先用 growpartparted,因為它們通常更「不容易改到起始值」。

六、第四步:擴文件系統(df 仍不變?通常在這裡)

分區大小變了但你還是看不到容量,幾乎就是文件系統未擴容。文件系統類型不同命令不同。先確認:

df -hT
lsblk -f

假設你是 ext4:

1)ext4:resize2fs 或 online 擴容

騰訊雲國際帳號開通 若分區已擴大,ext4 可用 resize2fs 在線調整(掛載狀態通常沒問題):

sudo resize2fs /dev/vdb1

或者你要是知道掛載點是 /data,也可以間接確認,但命令仍建議直接對分區操作。

2)xfs:xfs_growfs(對 xfs 需掌握「用掛載點」)

騰訊雲國際帳號開通 xfs 的擴容通常使用:

sudo xfs_growfs /data

注意:xfs_growfs 以「掛載點」作參數,而不是分區設備。

3)btrfs / lvm2:命令會不同(必須先辨識架構)

如果 lsblk -f 顯示你是 LVM,例如分區是 /dev/vdb1 但真正掛載的是 /dev/mapper/vg-lv,那你需要先擴 PV/VG/LV,再擴文件系統。此時單純 resize2fs 可能失效或報錯。

辨識方法:查看:

lsblk -f

sudo pvs 2>/dev/null || true
sudo vgs 2>/dev/null || true
sudo lvs 2>/dev/null || true

你若看到 lvm 相關內容,告訴我設備名和文件系統類型,我可以再給你對應步驟。

七、驗證:擴容完成後你應該看到什麼

擴容操作後按順序驗證:

lsblk -f

df -hT

sudo dmesg | tail -n 50

你需要看到三個層次的變化:

  • 塊設備容量已變大(通常已在第一步完成)。
  • 分區 SIZE已變大(growpart/resizepart 成功)。
  • df 顯示可用容量已變大(resize2fs/xfs_growfs 成功)。

八、常見錯誤與排查(照著對答案就能定位)

錯誤 1:分區沒變大,resize2fs 提示 size 不匹配或沒有效果

原因:你跳過了「擴分區」或分區邊界仍在舊位置。先重新看:

lsblk -f

確認目標分區(如 /dev/vdb1)是否 SIZE 已增加。若沒增加,回到第五章。

錯誤 2:resize2fs 報錯:需要離線或發現文件系統狀態不合

騰訊雲國際帳號開通 通常會提示:

  • 文件系統型別不正確(例如你把 ext4 命令打到 xfs)。
  • 分區不是直接被該文件系統使用(可能是 LVM 或 RAID)。
  • 某些特殊場景需要重啟或先檢查。

先用:

lsblk -f

確認掛載點對應的最終設備。

錯誤 3:df 仍舊不變,但 lsblk 顯示分區變大

這多半是文件系統沒擴容。ext4 用 resize2fs,xfs 用 xfs_growfs。如果你擴的是 ext4,確保你對的是正確分區,例如:

sudo resize2fs /dev/vdb1

而不是隨便用錯設備號。

錯誤 4:使用 parted resizepart 失敗,提示分區不在磁碟末端或有重疊

騰訊雲國際帳號開通 原因:目標分區後面可能還有其他分區、或分區排列非預期。此時「把分區擴到 100%」不是正確方向。你需要看 parted printfdisk -l 的分區表,確認目標分區是否為最後一個。

若磁碟用的是 LVM,直接擴分區也可能不會如你預期生效,需要走 LVM 的擴容流程。

錯誤 5:系統仍顯示舊容量,可能需要更新內核視圖

少數情況分區變更後內核沒有立即刷新,你可以嘗試:

sudo partprobe /dev/vdb

lsblk -f

如果仍不行,再考慮重啟(尤其是虛擬化環境)。

九、把整套流程濃縮成一個可複用清單

當你下次又遇到「擴容後不顯示空間」,你可以按這個順序做:

  1. 查看掛載與文件系統: df -hTlsblk -f
  2. 確認磁碟容量已變: lsblk / fdisk -l
  3. 擴分區: 優先 growpart,或 parted resizepart
  4. 擴文件系統: ext4 用 resize2fs,xfs 用 xfs_growfs
  5. 驗證結果: lsblk -fdf -hT 對照

十、示例:從「看不到新容量」到「df 顯示正常」

以下用一個常見模板來描述(你要把磁碟代號與掛載點替換成你的實際值):

假設情況

  • 目標分區:/dev/vdb1
  • 掛載點:/data
  • 文件系統:ext4

操作步驟

# 1. 查看當前狀態
lsblk -f

df -hT

# 2. 確認磁碟已擴大(例如 /dev/vdb 變大)
lsblk

# 3. 擴分區(分區號為 1)
sudo growpart /dev/vdb 1

# 或者 parted
# sudo parted /dev/vdb
# (parted) resizepart 1 100%
# (parted) quit

# 4. 擴文件系統(ext4)
sudo resize2fs /dev/vdb1

# 5. 驗證
lsblk -f

df -hT

如果最後 df -hT/data 可用容量仍不對,回到擴分區那一步看 SIZE 是否真的變了;或檢查文件系統類型是否真的是 ext4。

十一、最後的提醒:不要只追求「命令成功」,要確保「對的層級被擴」

很多人卡住時,會出現一種誤導:看到一條命令執行完就以為擴容完成了。實際上你需要明確做到:分區擴了、文件系統也擴了。lsblkdf -hT 是你最直接的判斷工具。

如果你的環境比較特殊(例如 LVM、RAID、或分區不是最後一個),命令會改,而且不應該憑經驗硬套。你可以把以下三項信息貼出來,我就能幫你判斷該用哪套擴容流程:

  • lsblk -f 輸出
  • df -hT 輸出
  • 你擴容的雲端磁碟名稱與目標掛載點(如 /data)

只要流程走對,多數情況都能在幾分鐘內把新容量落到可用狀態。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系