收起左侧

群晖 Btrfs 硬盘无法挂载?内核补丁兼容方案

0
回复
47
查看
[ 复制链接 ]

1

主题

0

回帖

0

牛值

江湖小虾

项目主页及详细技术细节:

👉 https://github.com/limitcool/synology-btrfs-kernel-patch

(建议前往 GitHub 获取最新的补丁文件及一键自动化编译脚本)

如果你尝试将群晖(DSM 7.x)的硬盘直接挂载到飞牛云、Ubuntu 或其他 Linux 系统,可能会报错:

BTRFS critical: corrupt leaf... invalid root flags, have 0x400000000

✅ 核心解决方案

这是因为群晖 Btrfs 的自定义 Flag 被原生 Linux 内核拦截。通过本仓库提供的驱动补丁,可以绕过校验,实现无损挂载。


🛠️ 快速操作指引

1. 编译环境准备

在飞牛云终端执行:

Bash

sudo apt update
sudo apt install -y build-essential bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves bison

2. 获取补丁并编译

你需要下载对应内核版本的源码,并应用本项目的 btrfs-synology-compat.patch

详细的补丁手动修改位置及自动化编译指令,请参考 GitHub README。

3. 替换内核驱动模块 (.ko) —— 关键步骤

编译生成的 btrfs.ko 需要替换系统原有的驱动才能生效:

Bash

# 1. 定位系统驱动路径
MOD_PATH=$(modinfo btrfs | grep filename | awk '{print $2}')

# 2. 备份原驱动 (防止意外)
sudo cp "$MOD_PATH" "${MOD_PATH}.backup"

# 3. 替换为带补丁的驱动
sudo cp fs/btrfs/btrfs.ko "$MOD_PATH"

# 4. 重新加载驱动
sudo depmod -a
sudo modprobe -r btrfs
sudo modprobe btrfs

4. 激活并挂载

Bash

sudo vgchange -ay      # 激活群晖 LVM 卷组
sudo lvs               # 查看卷路径
sudo mount /dev/mapper/vgX-volume_X /mnt/syno_data

🔗 更多内容请访问 GitHub 仓库

如果你遇到以下情况,请务必前往 GitHub 查看详细文档:

  • 需要使用一键重建脚本 (rebuild-btrfs-module.sh)
  • 内核版本不是 6.12.x,需要针对旧版本内核打补丁
  • 替换驱动后无法正常卸载旧模块的解决方法

👉 传送门:limitcool/synology-btrfs-kernel-patch

收藏
送赞 2
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则