WinBtrfs 快速上手:3 步让 Windows 直接读写 Btrfs 分区
【免费下载链接】btrfsWinBtrfs - an open-source btrfs driver for Windows项目地址: https://gitcode.com/gh_mirrors/bt/btrfs
把一块带 Btrfs 分区的硬盘插到 Windows 上,资源管理器里什么也看不到——系统不认这种分区。WinBtrfs 就是一个 Windows 驱动,装完以后 Windows 能直接读写 Btrfs 分区,快照、压缩、RAID 这些特性都能用。看完这篇,你能自己装好驱动、把分区挂出来,并完成第一次快照。
先弄清楚它能替你干什么
- 痛点:Btrfs 盘上的文件,每次都得重启进 Linux 才能搬动,来回折腾。用它之后:分区自动获得盘符,你在资源管理器里直接复制粘贴,Windows 和 Linux 共用同一块盘,不用来回搬文件。
- 痛点:WSL 里访问 Btrfs 目录时,Linux 的权限和属主信息全丢了,一堆文件变成 root 所有。用它之后:开启元数据模式,WSL 看到的权限、属主和 Linux 侧一致,不用再 chown。
- 痛点:管子卷、打快照只能在 Linux 命令行里敲。用它之后:资源管理器里右键就能建子卷、做快照,还能发起 scrub。
适合谁?平时两头跑(Windows + Linux)的开发者、手里有 Btrfs 盘想拿来跨系统用的人,都值得装一下。
三步装好,直接能用
- 拿到驱动。最省事的办法是去官方仓库的 release 页,下载最新发行包并解压,里面能看到
btrfs.inf、btrfs.sys、shellbtrfs.dll这些文件。如果你习惯用包管理器,Chocolatey 里一行命令就装好了:
choco install winbtrfsScoop 用户装winbtrfs-np也一样快。想读源码的话,用git clone https://gitcode.com/gh_mirrors/bt/btrfs把仓库拉下来即可,不过自己编译需要 Visual Studio 和 Windows DDK,新手不建议折腾。
右键安装。在解压出来的文件夹里,右键点击
btrfs.inf,选择"安装"。驱动是签过名的,Windows 10/11 上基本装上就能用。开了 Secure Boot 的机器如果驱动没起来,看下面常见问题那一节。验证成功。打开"此电脑",那块 Btrfs 分区应该已经分到盘符了;设备管理器"存储卷"下能看到"Btrfs controller"。在新盘里建个文本文件再删掉,不报错,读写就通了。核心逻辑在 src/btrfs.c 里,驱动行为有问题时也可以对着它排查。
装完能干嘛:3 个真实用法
建子卷、打快照
在 Btrfs 分区里的目录上右键,就能看到 Btrfs 的菜单项;嫌右键麻烦也可以用命令行:
rundll32.exe shellbtrfs.dll,CreateSnapshot D:\data D:\snap执行完D:\snap就是D:\data的快照,瞬间生成、几乎不占空间,之后只写入变化的部分。实用套路:改大文件前先打快照,改坏了随时能回退。
让 WSL 原样读 Btrfs
用 Ubuntu on Windows(WSL)的话,只需开一下元数据模式。在 WSL 终端里编辑/etc/wsl.conf:
[automount] enabled = true options = "metadata" mountFsTab = false重启 WSL 生效。之后 Btrfs 目录在 WSL 里的 Linux 权限和属主都保住了,跑编译、跑脚本不会再一堆 permission denied。
换盘符、查磁盘状态
右键盘符 → 属性 → Btrfs 选项卡:可以改盘符,能看碎片率和磁盘用量,还能直接发起 balance 和 scrub。盘符分配不合理的机器,这里改一次就省事很多。
常用的注册表调优项
配置放在注册表HKLM\SYSTEM\CurrentControlSet\Services\btrfs下,驱动按卷的 UUID 也支持单独覆盖,读取逻辑见 src/registry.c。下面几个是日常最常动的:
| 配置项 | 推荐值 | 作用 |
|---|---|---|
| Compress | 1 | 新文件默认压缩,省空间 |
| CompressType | 3 | 1 是 zlib、2 是 lzo、3 是 zstd,压缩率和速度综合最好 |
| FlushInterval | 60 | 元数据落盘间隔(秒),调大可减少写放大 |
| MaxInline | 4096 | 内联小文件大小上限(字节),小文件多的场景更快 |
| Readonly | 1 | 只读挂载,翻旧盘时最安全 |
改完重启生效。压缩开着但对某个文件不想压,可以在 Linux 侧给它打 nocompress 标记。
遇到问题先查这 4 个
Secure Boot 挡住驱动加载
- 打开 regedit,定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy; - 新建 DWORD 值
UpgradedSystem,设为1; - 重启。
或者干脆在 BIOS 里关掉 Secure Boot,更省事。
Btrfs 分区不显示
- 很老的 Windows 会直接无视 Linux 分区,去 Linux 侧把分区类型从 83 改成 7;
- 装过 Paragon 磁盘软件的,它会把自动挂载禁掉——停用或卸载 Paragon,然后在
diskpart里执行automount enable。
想把新盘格式化成 Btrfs
Windows 的格式对话框里没有 Btrfs 选项。命令行直接format /fs:btrfs D:就行;要设标签之类的选项,用发行包里自带的mkbtrfs.exe,源码在 src/mkbtrfs/mkbtrfs.c。
盘符不是想要的
右键盘符 → 属性 → Btrfs 选项卡,里面有按钮直接改盘符。还不行就去HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices删掉对应条目,重启一次。
最后说一句
装完 WinBtrfs,Btrfs 这块盘就不再是"只有 Linux 能读"的分区,挂载、快照、压缩、scrub 在 Windows 这边都能做完。下一步建议去官方仓库的 release 页看看有没有新版本;遇到问题先去 issues 里搜一圈,搜不到就提一个——README.md 末尾写了怎么开调试日志,附上日志会让维护者更快定位问题。
【免费下载链接】btrfsWinBtrfs - an open-source btrfs driver for Windows项目地址: https://gitcode.com/gh_mirrors/bt/btrfs
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考