Ubuntu 24.04 的 VM 擴增虛擬 HD 大小後的處理方式
- 適用情境 : VM(如 QEMU/KVM)的磁碟 volume 擴充容量後,需要讓 OS 實際使用新增空間。
前置確認
# 確認磁碟實際大小 vs 分割表記錄的大小 sudo fdisk -l /dev/sda # 確認分割區與掛載架構 lsblk # 確認檔案系統使用量 df -h
- 判斷重點:
- `fdisk` 出現 `GPT PMBR size mismatch` → 磁碟已擴容但分割表未更新
- `lsblk` 看到 LVM layer(`ubuntu–vg-ubuntu–lv`)→ 需走 LVM 擴容流程
擴充步驟
- Step 1|擴展分割區
sudo growpart /dev/sda 3 # 數字 3 = 要擴展的分割區編號(依實際情況調整)
- ✅ 成功訊息:`CHANGED: partition=3 … new: size=XXXXXX`
- Step 2|通知 LVM,PV 已變大
sudo pvresize /dev/sda3 - Step 3|擴展 Logical Volume
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv- `+100%FREE` 代表把 VG 內所有剩餘空間都加入 LV
- Step 4|擴展檔案系統
# ext4(Ubuntu 預設) sudo resize2fs /dev/ubuntu-vg/ubuntu-lv # XFS sudo xfs_growfs /
- Step 5|確認結果
df -h- 確認根目錄 `/` 的 Size 已反映新的磁碟大小。
注意事項
| 項目 | 說明 |
| —— | —— |
| 停機需求 | ❌ 不需要,全程線上擴容 |
| 資料風險 | 低,但建議操作前先做 snapshot |
| 適用 FS | ext4、XFS |
| 不適用情境 | 縮小分割區(需離線且風險高) |
架構示意
實體磁碟 /dev/sda 120G └─ /dev/sda3 118G ← growpart 擴展 └─ LVM PV ← pvresize 更新 └─ ubuntu-vg └─ ubuntu-lv 116G ← lvextend 擴展 └─ / (ext4) ← resize2fs 擴展