我的移动硬盘上,有个分区是ext2文件系统的,不能在Mac OS X中挂载。幸好,在开源世界里,我们总是能找到各种问题的解决方法,感谢无私的开发者。
fuse-ext2是ext2文件系统在FUSE上的实现,支持Linux和Mac OS X。FUSE是在操作系统用户态下实现的文件系统,源自Linux,Mac OS X的移植版本主要有三个,MacFUSE、Fuse4X和OSXFUSE,其中,MacFUSE已经停止开发,后二者是MacFUSE的继承者。Fuse4X和OSXFUSE都把对FUSE最新API的支持作为项目目标,但Fuse4X不提供对MacFUSE旧版本接口的兼容,OSXFUSE则同时兼容MacFUSE旧接口。fuse-ext2二进制安装包是基于MacFUSE编译的,所以我们选择OSXFUSE,获取最佳的功能与兼容性。
分别下载OSXFUSE和fuse-ext2的.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
文件进行读写挂载。
1
|
|
修改Mount函数(第200行前后),为OPTIONS变量增加rw+
标志。
1 2 3 4 5 6 7 8 9 10 11 |
|
在Finder中对ext2/ext3文件系统进行写操作,时常出现error code -36
错误,但在终端中使用命令行则没有任何问题,可能是FUSE和Mac OS X的兼容性导致。
虽然名为fuse-ext2,实际也支持ext3的读写,只是不支持ext3文件系统的日志。
OSXFUSE和fuse-ext2都可以在系统偏好设置中卸载。