释放小七猫的分享欲

飞牛系统分区迁移空间至存储空间 1

tags: NAS, 飞牛
@ 14/08/2026

飞牛系统分区迁移空间至存储空间 1

适用于像我一样,系统空间分大了导致空间浪费的人。

nvme0n1                                          259:0    0 465.8G  0 disk
├─nvme0n1p1                                      259:1    0   190M  0 part  /boot/efi
├─nvme0n1p2                                      259:2    0  63.8G  0 part  /
└─nvme0n1p3                                      259:3    0 401.8G  0 part
  └─md0                                            9:0    0 401.6G  0 raid1
    └─trim_18aed5f2_f622_4f91_a685_275a5d0eec58-0

飞牛系统 16g 都能够完美运行,多余的空间不如划给存储空间做下载缓存。

操作风险极高,务必备份好重要数据,随时做好重装系统/救砖的准备。

总体思路与工具准备

方案思路:

  1. 离线操作:使用 GParted Live USB / Ubuntu Live 启动系统,此时所有分区均未挂载,可安全操作。
  2. 分区调整:将 nvme0n1p2(系统分区)从 63.8G 缩小至 32G(或你期望的大小),然后将释放出的空间合并给 nvme0n1p3(存储分区)。
  3. 在线扩容:重启进入飞牛系统后,按顺序扩容 RAID 阵列 → LVM 卷 → Btrfs 文件系统。

准备工具:

  • 一个 U 盘(≥1GB),用于制作 GParted Live 启动盘。
  • 下载 GParted Live ISO 镜像(官方下载)。
  • 或者下载 Ubuntu Tiny 也可以的 (ghostplant/Ubuntu-Tiny)
  • 将 ISO 写入 U 盘。

关键信息梳理:

项目 当前状态
系统盘 /dev/nvme0n1(465.8G)
系统分区(/) /dev/nvme0n1p2(63.8G,使用约 20G)
存储分区 /dev/nvme0n1p3(401.8G)
RAID 阵列 /dev/md0(raid1 级别,但仅此一块盘)
LVM 卷组 trim_18aed5f2...(401.6G)
存储挂载点 /vol1(Btrfs 文件系统)

第一步:备份数据(不可跳过)

操作:

  1. 将 /vol1 中所有重要数据(文档、照片、影视库配置等)复制到外部硬盘或网络存储。
  2. 备份飞牛系统配置(如需要):可在 Web 控制台“系统设置 → 备份与恢复”中创建系统配置备份。
  3. 固态上的数据一般就是 docker 容器、镜像、Compose 文件等等,应该重要数据不多,但还是一定要做好备份。

作用:确保在任何意外情况下(如断电、操作失误),你的核心数据资产安全无虞。


第二步:启动 GParted Live U 盘

操作:

  1. 将前面制作好的 U 盘插入飞牛主机,开机进入 BIOS/UEFI 引导菜单,选择从 U 盘启动。
  2. 选择默认的 GParted Live 模式/Ubuntu Tiny,进入图形界面。

作用:在所有分区卸载的状态下操作磁盘布局,这是在线系统无法做到的。


第三步:缩小系统分区(/dev/nvme0n1p2)

操作(在 GParted 界面中):

  1. 在右上角选择磁盘 /dev/nvme0n1。
  2. 选中分区 nvme0n1p2(文件系统类型通常为 ext4)。
  3. 右键 → Resize/Move。
  4. 在“New Size”中输入 32(单位 GiB),或在“Free Space Following”中调整出约 32GB 的空闲空间。
    • 关键:确保“Free Space Following”不为 0,即在该分区后面留出空闲区域。
  5. 点击 Resize/Move 应用此更改(此时操作尚未写入磁盘)。
  6. 点击工具栏的绿色对勾 Apply All Operations,确认执行。

作用:将系统分区的结束位置向前移动,在磁盘中间区域腾出约 32GB 未分配空间。此步骤仅移动分区尾部,不涉及数据移动,速度较快。


第四步:移动存储分区(/dev/nvme0n1p3)以合并空间

风险提示:此步骤涉及大量数据读写,若中途断电或死机,分区表可能损坏。请确保机器供电稳定。

操作(这是最耗时且风险最高的一步):

  1. 选中分区 nvme0n1p3,右键 → Resize/Move。
  2. 在弹出的窗口中:
    • 将鼠标放在分区中间,向右拖动整个分区,直到其起始位置紧邻缩小后的 nvme0n1p2。
    • 或者,在“Free Space Preceding”中输入 0(或调整至系统分区后的空闲空间归零)。
    • 确保“New Size”不变(仍为 401.8G),即不改变分区大小,仅改变其起始位置。
  3. 点击 Resize/Move,然后点击 Apply All Operations。
  4. 等待进度条完成(移动 400GB 数据,可能需数十分钟至数小时,取决于硬盘速度)。

作用:将整个存储分区在磁盘上“平移”到系统分区后面,从而将所有未分配空间集中到存储分区的尾部,为下一步扩展分区做准备。


第五步:扩展存储分区(/dev/nvme0n1p3)

操作:

  1. 再次选中 nvme0n1p3,右键 → Resize/Move。
  2. 将分区右侧边界拖动到磁盘末尾,或在“New Size”中输入最大值(约 433G)。
  3. 点击 Resize/Move,然后点击 Apply All Operations。
  4. 完成后,退出 Live 系统,重启系统并拔掉 U 盘。

作用:将存储分区的容量扩大,吸收磁盘尾部的所有空闲空间。此时,物理分区已就绪。

可能部分设备无法无法在 gpart 中扩大存储空间,但没关系,可以使用 cfdisk 进行扩展

sudo cfdisk /dev/nvme0n1

将空闲空间分配给存储空间1所属分区即可。


第六步:进入飞牛系统,扩容 RAID 阵列

操作(通过 SSH 或本地终端):

# 1. 查看当前阵列信息,确认状态为 clean
sudo mdadm --detail /dev/md0

# 2. 扩容阵列以使用新分区空间
sudo mdadm --grow /dev/md0 --size=max

# 3. 再次查看阵列,确认容量已增大
sudo mdadm --detail /dev/md0

作用:让 Linux 的软件 RAID 层识别并利用经过扩展的物理分区。--size=max 参数将阵列扩展到该分区允许的最大值。


第七步:扩容 LVM 物理卷和逻辑卷

操作:

# 1. 将 RAID 设备的新增空间同步给 LVM 物理卷
sudo pvresize /dev/md0

# 2. 查看卷组信息,确认有 Free 空间
sudo vgs

# 3. 将卷组中所有剩余空间分配给逻辑卷(使用你的完整卷名)
sudo lvextend -l +100%FREE /dev/mapper/trim_18aed5f2_f622_4f91_a685_275a5d0eec58-0

作用:pvresize 让 LVM 知道底层设备变大了;lvextend 则将新空间全部划给存储逻辑卷。


第八步:扩容 Btrfs 文件系统

操作:

# 扩容 /vol1 挂载点下的文件系统
sudo btrfs filesystem resize max /vol1

# 验证扩容结果
df -h /vol1

作用:Btrfs 是飞牛存储空间的文件系统类型,此命令使其占用逻辑卷的全部新空间,完成最终扩容。


验证与收尾

  1. 在飞牛 Web 控制台“存储管理”中,确认 /vol1 容量已增加。
  2. 检查所有服务(Docker、SMB、影视库)是否运行正常。
  3. 如果一切正常,可删除或保留 GParted U 盘备用。