Unraid安裝飛牛OS系統後“擴容”分區教程
更新于:2025-03-25 23:39:36

如果可以,請在一開始就給飛牛os劃分更大的硬碟空間,以下是複雜的擴容步驟(因為重新裝的話,相冊就會重新緩存)

一、在 Unraid 中擴容虛擬機磁碟

1.1 確定 vDisk 擴容需求

  1. 初始問題: 飛牛OS 虛擬機里 /vol1 只剩餘少量可用空間,影響後續應用部署或數據存儲。

  2. 目標容量: 希望將原先的 85GB 擴容到 500GB(或更大),保障後續業務和數據需求。

1.2 擴容前的關鍵準備

  1. 備份數據

    • 在進行擴容或分區、檔系統操作前,最好先對關鍵數據進行備份,或利用 Unraid 的 VM “快照”功能進行快照備份。

1.3 調整 vdisk1.img 容量

在 Unraid 主機上連接到終端操作:

unraid的虛擬機:首選查看是否是raw格式

方式:qemu-img 命令行

  • # 關閉虛擬機後在 Unraid 主機終端執行

    qemu-img resize -f raw /mnt/user/domains/飛牛OS/vdisk1.img 500G

  • -f raw 用於明確指定鏡像格式(若你的文件實際是 qcow2 或者其他格式,請改成 qcow2)。(如何看格式)

    • 500G 即新的目標容量。

二、飛牛OS 內部擴容

經過上一步,飛牛OS 虛擬機所看到的“物理磁碟”(/dev/sda)大小會變成 500GB。不過,在系統內部,分區依舊停留在 85GB 附近,需要進行以下若干步驟,讓系統真正識別並使用新的容量。

注意: 下面的示例命令大多在飛牛OS 的 root 終端執行。請事先確保已備份數據。

2.1 查看原始磁碟和文件系統資訊

常用命令:

lsblk # 列出塊設備的層次結構

df -Th # 查看目前檔案系統類型及容量

fdisk -l # 查看物理分區資訊

在本例中可能類似:

  • /dev/sda → 500GB(已擴容,物理大小變了)

  • /dev/sda3 → 原先 85GB,裡面有 md0 (單盤 RAID1),然後上層跑 LVM,最後是 Btrfs 檔系統掛載到 /vol1。

2.2 擴容分區 /dev/sda3

飛牛OS 內部還需要讓 /dev/sda3“佔滿”多出來的空間,否則 md0、LVM 都無法感知到新的容量。

  1. 使用 parted 調整

    parted /dev/sda

    (parted) print # 查看現有分區

    (parted) resizepart 3 100% # 將第3分區調整到500GB

    (parted) quit

  1. 刷新分區表

    partprobe /dev/sda

    如果無法在線刷新,可能需要重啟飛牛OS,讓內核重新讀取分區表。

2.3 mdadm — 擴容單設備 RAID1

飛牛OS 將 /dev/sda3 通過 mdadm 建立了一個名為 /dev/md0 的 RAID1 陣列(即使目前只有一個磁碟,也算是“退化”狀態)。

要讓 md0 使用到 sda3 新增的容量,需要:

mdadm --detail /dev/md0 # 查看當前大小(約91GB)

mdadm --grow /dev/md0 --size=max

2.4 LVM 層擴容:pvresize、lvextend

LVM(Logical Volume Manager)由三層組成:

  1. PV (Physical Volume) – 在此例中就是 /dev/md0。

  2. VG (Volume Group) – 例如 trim_d74f6746_f312_4727_8a80_8b4faa2c5ee3。

  3. LV (Logical Volume) – 本例中,LV 叫 ...-0,最終掛載到 /vol1。

2.4.1 擴展 PV

pvresize /dev/md0

讓 PV 知道底層設備容量已增大到 ~200GB。然後用 pvs 或 pvdisplay 查看結果:

pvs

可見 PSize 已擴大,出現新的可用空間(PFree)。

2.4.2 擴展 LV

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 將“空地”分配給具體的邏輯卷。

2.5 擴容 Btrfs 檔案系統

本例中 /vol1 實際使用 Btrfs 檔案系統(你可以通過 df -Th /vol1 或 mount | grep vol1 看到 btrfs)。

  1. 在線擴容 Btrfs

    btrfs filesystem resize max /vol1

核驗容量

df -Th /vol1

含義:

  • Btrfs 與 EXT4/XFS 的擴容命令不同:EXT4 用 resize2fs,XFS 用 xfs_growfs。Btrfs 則是 btrfs filesystem resize。

  • 因為你在上一層 LVM 裡擴了空間,所以文件系統也要相應更新元數據。

三、驗證與總結

四、每個步驟的含義(小白向)

  1. 在 Unraid 中修改 vDisk 大小

    • 就像給你一個更大的“虛擬硬碟”,但系統內部還不知道這個硬碟空間增大了,你只是在“外殼”層面做了升級。

  2. 分區擴容

    • 磁碟空間是通過分區來劃分。如果不調整分區,你就算“外殼”變大了,也沒法把新空間用到原先的 sda3 上。

  3. mdadm --grow

    • mdadm 管理軟體 RAID:把擴容后的分區空間納入到陣列中,讓 /dev/md0 從 85GB 擴大。

  4. pvresize

    • 告訴 LVM 最底層的 Physical Volume 變大了,可以“吞”更多空間。

  5. lvextend

    • 將 Volume Group (VG) 裡的空閒容量分配給具體的 Logical Volume (LV)。只有這樣 /vol1 才能實打實地得到更多空間。

  6. btrfs filesystem resize

    • 最後一層:把文件系統本身也擴大到新的邏輯卷大小,否則文件系統仍認為只能用舊的 85GB。

結語

通過以上流程,“小白”使用者也能在 Unraid 環境下,為安裝了 單磁碟 RAID + LVM + Btrfs 的 “飛牛OS” 虛擬機無損擴容磁碟空間,且順利把 /vol1 從原 85GB 提升到更大的容量。關鍵在於分層理解:外部先擴容 vDisk→內部分區→軟體 RAID→LVM→檔案系統,每一層都需要按順序進行擴展,才能讓新的空間被真正利用。

祝擴容順利,數據安全!