Unraid安装飞牛OS系统后“扩容”分区教程
更新于:2025-03-24 11:42:00

如果可以,请在一开始就给飞牛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→文件系统,每一层都需要按顺序进行扩展,才能让新的空间被真正利用。

祝扩容顺利,数据安全!

如何科学减肥
如何科学减肥
2025-03-24 11:41:10