尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

WinBtrfs:3步让Windows原生读写Btrfs

WinBtrfs:3步让Windows原生读写Btrfs WinBtrfs3步让Windows原生读写Btrfs【免费下载链接】btrfsWinBtrfs - an open-source btrfs driver for Windows项目地址: https://gitcode.com/gh_mirrors/bt/btrfsWinBtrfs 是一款开源 Btrfs 驱动装进 Windows 就能直接读写 Linux 的 Btrfs 分区子卷、快照、压缩都是原生能力。适合双系统开发者和 WSL 用户。先看 10 秒速览再决定要不要装。⚡ 速览是什么Windows 上的 Btrfs 内核驱动外加资源管理器壳扩展和格式化工具LGPL 协议干什么用让 Windows 直接识别并读写 Btrfs 分区驱动器在资源管理器里出现当普通盘用适合谁Windows/Linux 双系统用户、WSL 用户、想跨平台共享数据的开发者兼容性Windows XP 到 11 都能装功能追到 Linux 6.1块组树最核心卖点完全从零重写、不含任何 Linux 内核代码子卷快照和 scrub 数据体检在 Windows 里就能做 它到底怎么工作的装完的本质是一个内核驱动。Windows 扫盘时认出 Btrfs 的超级块就把这个分区交给驱动处理驱动把 Btrfs 的 extent 树、校验和树这些元数据翻译成 Windows 熟悉的磁盘接口于是资源管理器、文件复制、WSL 都把它当成一个普通盘。每个数据块都带校验和默认 CRC32C读取时顺路验证坏块能被发现。主驱动逻辑在 src/btrfs.c。 WinBtrfs 从 0 到 1两条安装路径路径一拿代码装 infGUI获取代码git clone https://gitcode.com/gh_mirrors/bt/btrfs右键src/btrfs.inf选择安装。预期看到安装向导跑完设备管理器Storage volumes下出现 Btrfs controller且没有黄色感叹号打开资源管理器你的 Btrfs 分区已经带上盘符。预期看到双击能进目录复制粘贴文件正常Secure Boot 用户注意Win10/11 开了 Secure Boot 时驱动可能加载不了。要么在 BIOS 里关掉 Secure Boot要么打开 regedit在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy下新建 DWORD 值UpgradedSystem设为 1然后重启。路径二包管理器CLIchoco install winbtrfs scoop bucket add nonportable scoop install winbtrfs-np -gChocolatey 和 Scoop 任选一条线装完重启一次。预期看到重启后资源管理器里 Btrfs 分区直接出现无需任何手动操作。 功能拆解最值得用的 4 个把分区格式化成 Btrfs它帮你解决什么Windows 自带格式化对话框里根本没有 Btrfs 这个选项新分区没法直接变 Btrfs。怎么用磁盘管理里新建一个简单卷拿到盘符比如 E:在 mkbtrfs 所在目录执行下面的命令想换校验和或开混合块组加对应参数mkbtrfs E: mkbtrfs E: My Data /csum:xxhash /mixed也可以直接format /fs:btrfs E:能跑但设不了 Btrfs 专属参数。格式化工具源码在 src/mkbtrfs/。你会看到什么变化命令跑完后资源管理器里多了一个盘拿到 Linux 上用btrfs fi show能看到新建的文件系统两边都认。子卷与快照动手前先留一份它帮你解决什么重组数据、试错环境之前心里没底改坏了怎么办。怎么用命令行创建子卷和快照shellbtrfs.dll 所在目录执行rundll32.exe shellbtrfs.dll,CreateSubvol E:\work rundll32.exe shellbtrfs.dll,CreateSnapshot E:\work E:\snap\work或者不用命令行资源管理器里右键目录选创建子卷/创建快照壳扩展提供的菜单源码见 src/shellext/改完数据发现不对从快照里把文件拷回来即可你会看到什么变化快照秒级完成、几乎不占额外空间reflink 复制目录图标会变成子卷样式一眼分辨出哪些是子卷。用 scrub 给数据做体检它帮你解决什么磁盘坏块、位翻转这类静默损坏平时看不见等发现时数据已经错了。怎么用管理员权限执行rundll32.exe shellbtrfs.dll,StartScrub E:在盘符属性页的 Btrfs 标签里看进度随时可用StopScrub中止跑完查看报告有错误就按报告里的块处理你会看到什么变化scrub 会把每个块和校验和树对一遍结束后告诉你扫了多少、修了多少个坏块。健康盘跑完是 0 错误有问题的盘能精确定位。WSL 下保留 Linux 元数据它帮你解决什么Windows 里建的文件夹进 Linux 一看属主、权限全变了和原生 Linux 目录对不上。怎么用在 WSL 的 bash 里编辑/etc/wsl.conf加上这段[automount] enabled true options metadata mountFsTab false重启 WSL你会看到什么变化之后 Windows 创建的目录会带正确的 Linux 属主和权限位ls -l看起来和 Linux 原生建的目录没区别。 场景实战3 个真实处境双系统共用一个代码目录你的处境Windows 和 Linux 双系统项目目录来回拷.git 目录拷一遍要半天权限还老丢。具体操作拿一块 SSD 分区按前面格式化成 Btrfs两个系统各自挂载它WSL 侧按上一节配好 metadata再在注册表HKLM\SYSTEM\CurrentControlSet\Services\btrfs\Mappings下新建一个 DWORD名字是你的 Windows SIDwmic useraccount get name,sid可查值填你的 Linux uid比如 1000重启后生效。最终效果同一份代码两个系统直接读写不拷第二份你在 Windows 建的文件Linux 里看属主就是你自己的账号git 操作不受影响。大改动前留一条退路你的处境准备把几个 G 的数据目录重新整理、迁移万一删错没有后悔药。具体操作动手前先CreateSnapshot给整个目录拍一份快照然后放心地移动、删除发现删错了从快照把文件拷回来。最终效果回滚只花几秒快照本身因为是 reflink创建那一刻几乎不占空间改动多少才占多少。定期给存储做数据体检你的处境一块大盘存着重要资料担心坏块积累但不想天天盯着。具体操作每几周跑一次StartScrub嫌手动麻烦用 Windows 任务计划程序把上面那条 rundll32 命令排成每周任务。最终效果每次体检出一份扫了多少、修了多少的报告坏块在变大之前就被修掉而不是等你打开文件才发现打不开。⚙️ WinBtrfs 配置速查真正要调的只有这几个配置只在一个地方注册表HKLM\SYSTEM\CurrentControlSet\Services\btrfs。想只针对某个卷生效就进以该卷 UUID 命名的子键Linux 上btrfs fi show可查 UUID。改完重启生效。配置项默认值推荐值一句话说明Compress01写入时默认压缩省空间的主要开关CompressType031zlib、2lzo、3zstdzstd 速度和压缩率平衡最好FlushInterval3030~60元数据提交间隔秒越大写盘越少掉电丢失窗口越长ZstdLevel33zstd 压缩级别CPU 快而磁盘慢时可调高Mappings子键无你的 Linux uidDWORD名字是 Windows SID决定你新建文件归属哪个 Linux 用户 排障手册装完后资源管理器里看不到 Btrfs 分区先试打开 diskpart执行automount enable——Paragon 这类工具会顺手关掉自动挂载再查设备管理器Storage volumes下有没有 Btrfs controller有没有黄色感叹号还不行禁用或卸载 Paragon 类软件后重试如果是 XP/2003 这类老系统在 Linux 里用 fdisk 把分区类型从 83 改成 7Win10/11 开了 Secure Boot驱动加载失败先试BIOS 里关掉 Secure Boot重启再查需要保留 Secure Boot 的话regedit 进HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy新建 DWORDUpgradedSystem值为 1重启还不行看系统事件日志里驱动加载失败的具体错误码文件名乱码或个别文件/目录报错这个驱动假定所有文件名是 UTF-8 编码这是现在大多数环境的大默认如果你的 Linux 侧用的是别的编码先把文件批量转成 UTF-8 再挂载问题一般就消失了分配的盘符不对想改驱动器号先试资源管理器右键该盘 → 属性 → Btrfs 标签里面有改盘符的按钮还不行regedit 删掉HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices里对应这条盘的项重启让 Windows 重新分配收束WinBtrfs 把 Btrfs 从Linux 专属变成了 Windows 上的一个普通盘符格式化、快照、体检、跨系统共享全在本机闭环不用再拷来拷去。下一步去仓库给项目点个 Star盯上后续版本装不上、识别不了的问题把系统版本和分区信息整理好再去提 Issue处理会快很多。【免费下载链接】btrfsWinBtrfs - an open-source btrfs driver for Windows项目地址: https://gitcode.com/gh_mirrors/bt/btrfs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表