分享一个在 Windows 上读取各种类型文件系统( Ext2/3/4, Reiserfs, XFS, Btrfs...)的方法

2015-08-30 14:00:42 +08:00
 ArchStacker
在电脑上安装 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 封装成一个库,不过我对这个还不太熟悉,求老司机指导。
24693 次点击
所在节点    程序员
26 条回复
likuku
2015-08-31 10:13:16 +08:00
@sNullp 你要觉得为了一点方便愿意冒数据损失的风险,那 OK 的。
fengyqf
2015-08-31 10:45:30 +08:00
@supvesonico 为什么要在 windows 下读取这些东西呢? windows 不就是用来玩游戏的么……
+65535
sNullp
2015-08-31 11:14:24 +08:00
@likuku LZ 都说了是 readonly 的,数据损失的概率其实比你说的 linux 虚拟机的方法要小得多。
ArchStacker
2015-08-31 20:59:25 +08:00
likuku
2015-09-01 09:41:47 +08:00
@sNullp readonly 真就能保证是 readonly ? 再三说一句,我这不是 linux 虚拟机,而是 linux 里跑个 win 虚拟机。
ArchStacker
2015-09-01 14:46:38 +08:00
@likuku 我看出来了,你只是关心写出来的驱动是不是稳定,对做这个东西你还是非常支持的对吧 :doge:

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/217087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX