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