目录

Mac-OS-X下读写ext2ext3文件系统

目录

Mac OS X下读写ext2/ext3文件系统

我的移动硬盘上,有个分区是ext2文件系统的,不能在Mac OS X中挂载。幸好,在开源世界里,我们总是能找到各种问题的解决方法,感谢无私的开发者。

是ext2文件系统在 上的实现,支持Linux和Mac OS X。FUSE是在操作系统用户态下实现的文件系统,源自Linux,Mac OS X的移植版本主要有三个, 、 和 ,其中,MacFUSE已经停止开发,后二者是MacFUSE的继承者。Fuse4X和OSXFUSE都把对FUSE最新API的支持作为项目目标,但Fuse4X不提供对MacFUSE旧版本接口的兼容,OSXFUSE则同时兼容MacFUSE旧接口。fuse-ext2二进制安装包是基于MacFUSE编译的,所以我们选择OSXFUSE,获取最佳的功能与兼容性。

分别下载 和 的.dmg二进制包并安装。 注意:安装OSXFUSE时,一定要勾选 MacFUSE Compatibility Layer 。安装完成后重启,就可以自动挂载ext2/ext3文件系统了。当然,也可以使用mount命令挂载, mount -t fuse-ext2 <device> <mountpoint>

默认情况下,fuse-ext2进行只读挂载,可以修改 /System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util 文件进行读写挂载。

1sudo vi /System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util

修改Mount函数(第200行前后),为OPTIONS变量增加 rw+ 标志。

1 2 3 4 5 6 7 8 9 10 11function Mount () { LogDebug "[Mount] Entering function Mount..." # Setting both defer_auth and defer_permissions. The option was renamed # starting with MacFUSE 1.0.0, and there seems to be no backward # compatibility on the options. OPTIONS="auto_xattr,defer_permissions,rw+" # The local option is only enabled on Leopard. It causes strange ... }

在Finder中对ext2/ext3文件系统进行写操作,时常出现 error code -36 错误,但在终端中使用命令行则没有任何问题,可能是FUSE和Mac OS X的兼容性导致。

虽然名为fuse-ext2,实际也支持ext3的读写,只是不支持ext3文件系统的日志。

OSXFUSE和fuse-ext2都可以在系统偏好设置中卸载。