如果可以,請在一開始就給飛牛os劃分更大的硬碟空間,以下是複雜的擴容步驟(因為重新裝的話,相冊就會重新緩存)
初始問題: 飛牛OS 虛擬機里 /vol1 只剩餘少量可用空間,影響後續應用部署或數據存儲。
目標容量: 希望將原先的 85GB 擴容到 500GB(或更大),保障後續業務和數據需求。
備份數據
在進行擴容或分區、檔系統操作前,最好先對關鍵數據進行備份,或利用 Unraid 的 VM “快照”功能進行快照備份。
在 Unraid 主機上連接到終端操作:
unraid的虛擬機:首選查看是否是raw格式
方式:qemu-img 命令行
# 關閉虛擬機後在 Unraid 主機終端執行
qemu-img resize -f raw /mnt/user/domains/飛牛OS/vdisk1.img 500G
-f raw 用於明確指定鏡像格式(若你的文件實際是 qcow2 或者其他格式,請改成 qcow2)。(如何看格式)
500G 即新的目標容量。
經過上一步,飛牛OS 虛擬機所看到的“物理磁碟”(/dev/sda)大小會變成 500GB。不過,在系統內部,分區依舊停留在 85GB 附近,需要進行以下若干步驟,讓系統真正識別並使用新的容量。
注意: 下面的示例命令大多在飛牛OS 的 root 終端執行。請事先確保已備份數據。
常用命令:
lsblk # 列出塊設備的層次結構
df -Th # 查看目前檔案系統類型及容量
fdisk -l # 查看物理分區資訊
在本例中可能類似:
/dev/sda → 500GB(已擴容,物理大小變了)
/dev/sda3 → 原先 85GB,裡面有 md0 (單盤 RAID1),然後上層跑 LVM,最後是 Btrfs 檔系統掛載到 /vol1。
飛牛OS 內部還需要讓 /dev/sda3“佔滿”多出來的空間,否則 md0、LVM 都無法感知到新的容量。
使用 parted 調整
parted /dev/sda
(parted) print # 查看現有分區
(parted) resizepart 3 100% # 將第3分區調整到500GB
(parted) quit
刷新分區表
partprobe /dev/sda
如果無法在線刷新,可能需要重啟飛牛OS,讓內核重新讀取分區表。
飛牛OS 將 /dev/sda3 通過 mdadm 建立了一個名為 /dev/md0 的 RAID1 陣列(即使目前只有一個磁碟,也算是“退化”狀態)。
要讓 md0 使用到 sda3 新增的容量,需要:
mdadm --detail /dev/md0 # 查看當前大小(約91GB)
mdadm --grow /dev/md0 --size=max
LVM(Logical Volume Manager)由三層組成:
PV (Physical Volume) – 在此例中就是 /dev/md0。
VG (Volume Group) – 例如 trim_d74f6746_f312_4727_8a80_8b4faa2c5ee3。
LV (Logical Volume) – 本例中,LV 叫 ...-0,最終掛載到 /vol1。
pvresize /dev/md0
讓 PV 知道底層設備容量已增大到 ~200GB。然後用 pvs 或 pvdisplay 查看結果:
pvs
可見 PSize 已擴大,出現新的可用空間(PFree)。
lvextend -l +100%FREE /dev/trim_d74f6746_f312_4727_8a80_8b4faa2c5ee3/0
-l +100%FREE 表示將 VG 中所有空閑空間都給到該 LV;也可以指定 -L +50G 來手動分配 50GB。
lvs 命令可查看邏輯卷的大小
含義:
pvresize 只告訴 LVM “底層變大了”,LV 還保持在舊大小,需要 lvextend 將“空地”分配給具體的邏輯卷。
本例中 /vol1 實際使用 Btrfs 檔案系統(你可以通過 df -Th /vol1 或 mount | grep vol1 看到 btrfs)。
在線擴容 Btrfs
btrfs filesystem resize max /vol1
核驗容量
df -Th /vol1
含義:
Btrfs 與 EXT4/XFS 的擴容命令不同:EXT4 用 resize2fs,XFS 用 xfs_growfs。Btrfs 則是 btrfs filesystem resize。
因為你在上一層 LVM 裡擴了空間,所以文件系統也要相應更新元數據。
在 Unraid 中修改 vDisk 大小
就像給你一個更大的“虛擬硬碟”,但系統內部還不知道這個硬碟空間增大了,你只是在“外殼”層面做了升級。
分區擴容
磁碟空間是通過分區來劃分。如果不調整分區,你就算“外殼”變大了,也沒法把新空間用到原先的 sda3 上。
mdadm --grow
mdadm 管理軟體 RAID:把擴容后的分區空間納入到陣列中,讓 /dev/md0 從 85GB 擴大。
pvresize
告訴 LVM 最底層的 Physical Volume 變大了,可以“吞”更多空間。
lvextend
將 Volume Group (VG) 裡的空閒容量分配給具體的 Logical Volume (LV)。只有這樣 /vol1 才能實打實地得到更多空間。
btrfs filesystem resize
最後一層:把文件系統本身也擴大到新的邏輯卷大小,否則文件系統仍認為只能用舊的 85GB。
通過以上流程,“小白”使用者也能在 Unraid 環境下,為安裝了 單磁碟 RAID + LVM + Btrfs 的 “飛牛OS” 虛擬機無損擴容磁碟空間,且順利把 /vol1 從原 85GB 提升到更大的容量。關鍵在於分層理解:外部先擴容 vDisk→內部分區→軟體 RAID→LVM→檔案系統,每一層都需要按順序進行擴展,才能讓新的空間被真正利用。
祝擴容順利,數據安全!