Ubuntu 24.04 的 VM 擴增虛擬 HD 大小後的處理方式

  • 適用情境 : VM(如 QEMU/KVM)的磁碟 volume 擴充容量後,需要讓 OS 實際使用新增空間。
  • # 確認磁碟實際大小 vs 分割表記錄的大小
    sudo fdisk -l /dev/sda
    
    # 確認分割區與掛載架構
    lsblk
    
    # 確認檔案系統使用量
    df -h

  • 判斷重點:
    1. `fdisk` 出現 `GPT PMBR size mismatch` → 磁碟已擴容但分割表未更新
    2. `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 擴展
  • tech/lvm/ubuntu24.txt
  • 上一次變更: 2026/06/09 11:01
  • jonathan