萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 擴大 Xen 虛擬硬碟空間完整教學:dd 擴容 + resize2fs 調整檔案系統

Xen 虛擬機使用映像檔作為虛擬硬碟,空間不足時可透過 dd 追加空白區塊擴大映像檔,再以 resize2fs 線上調整 ext2/ext3/ext4 檔案系統大小。本文提供完整操作流程與原理解析。

適用條件

  • 虛擬硬碟為原始映像檔(.img)
  • 檔案系統為 ext2、ext3 或 ext4
  • 具備宿主機 root 權限

操作步驟

1. 關閉虛擬機

# /usr/sbin/xm shutdown vm01

必須完全關機,不可僅暫停或休眠,確保檔案系統處於乾淨卸載狀態。

2. 追加映像檔空間(範例:增加 4GB)

# dd if=/dev/zero bs=1024k count=4096 >> /vm/vm01.img
  • bs=1024k:區塊大小 1MB
  • count=4096:4096 × 1MB = 4GB
  • >>:追加模式寫入映像檔末尾

3. 檢查檔案系統一致性

# /sbin/e2fsck -f /vm/vm01.img

-f 強制檢查即使標記為乾淨。修復任何不一致後再進行擴容。

4. 調整檔案系統大小

# /sbin/resize2fs /vm/vm01.img

此步驟將 ext2/3/4 檔案系統擴展至映像檔新大小。**關鍵步驟**:若略過此步,虛擬機內 df -h 仍顯示原大小。

5. 重新啟動虛擬機

# /usr/sbin/xm create vm01

6. 驗證擴容結果

# /usr/sbin/xm console vm01
# df -h
# 應顯示新增空間已可用

原理解析

  • 映像檔 ≠ 檔案系統:映像檔是區塊裝置容器,內含完整檔案系統結構
  • dd 僅擴大容器
  • resize2fs 修改檔案系統超級區塊、群組描述符、inode 表等中繼資料,使檔案系統識別新空間
  • ext4 支援線上擴容(掛載狀態下),但離線操作更安全

安全性警示(原文觀點延伸)

從技術角度來說,VPS 服務商隨時可掛載/卸載你的虛擬機映像檔讀寫內容。若宿主機 root 權限外洩,攻擊者可在你不知情下植入後門、竊取金鑰、修改系統二進制檔。這是雲端運算固有的信任邊界問題,也是企業遲遲不採用公有雲、轉向私有雲/混合雲的核心考量。

替代方案:LVM 彈性管理

若虛擬機內部使用 LVM 管理磁碟,擴容流程更彈性:

  1. 宿主機 dd 擴大映像檔
  2. 虛擬機內 pvresize /dev/xvda → lvextend -l +100%FREE /dev/vg/lv → resize2fs /dev/vg/lv
  3. 無需重啟虛擬機即可完成線上擴容

注意事項

  • 操作前**務必備份**映像檔
  • 確認虛擬機確實關機(xm list 檢查狀態)
  • ext2/3/4 以外檔案系統(XFS、Btrfs、NTFS)需用對應工具(xfs_growfs、btrfs filesystem resize 等)
  • MBR 分區表限制 2TB,大容量需用 GPT
copyright © 萬盛學電腦網 all rights reserved