在电脑上安装 Windows/Linux 双系统的一大困扰就是无法在 Windows 上读取 Linux 所用的文件系统。虽然有些软件可以读取 Ext2/3/4 等格式的文件系统,但是我还没发现能在 Windows 上读取 XFS 、 Btrfs 格式文件系统的软件。
最近发现 GRUB 自带多种文件系统的实现,其自带的工具 grub-mount 可以在 Linux 上通过 FUSE 来挂载各种文件系统的分区 /镜像,不过在 Windows 因为没有 FUSE 不能用。但后来我发现通过 GRUB 提供的另一个工具 grub-fstest 可以不依赖额外库读取各种类型的文件系统。
GRUB 可以在 Windows 上用 Cygwin 或是 MSYS2 编译,官方的代码有点问题,我稍微修改了一下,具体编译步骤及使用方法见:
https://github.com/Archstacker/GRUB/wiki/Compile-GRUB-on-Windows-to-use-grub-fstest-to-read-files-from-different-filesystems ,其中也对在这过程中可能遇到的大坑进行了提醒。
同时我也上传了编译好的二进制文件,大家可以下载下来尝试一下:
https://github.com/Archstacker/GRUB/releases/download/v0.1/grub-fstest-0_1.exe ,是用 MSYS2 编译的,不依赖于特殊的 dll 文件。
我只是简单地测试了一下,应该是没有问题的,如果大家有什么问题麻烦提出来。
好像 GRUB 也支持在 Mac OS X 上编译,这个我没有环境无法尝试。按照我上面的编译说明可以只编译 grub-fstest 需要的那部分,我感觉还是很有希望成功的。如果有谁成功了麻烦告诉我下。
现在问题来了:
我如果想以此来做一个图形界面的工具,或是做成 Windows 的驱动的话,应该如何去做?我想着应该是要把 grub-fstest 封装成一个库,不过我对这个还不太熟悉,求老司机指导。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/217087
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.