引言
有时候需要在 macOS 读写 NTFS 分区,但是系统默认只能读取不能写入,修改 fstab 和使用 Paragon NTFS 软件都可以实现读写,而我这里使用的是 osxfuse,因为它不仅能支持 NTFS, 还支持 Ext 等其他文件系统
以下操作需要关闭 SIP,进入恢复模式,在终端里输入 csrutil disable
,再重启就关闭 SIP 了,黑苹果可以在 clover 里设置
安装 osxfuse
FUSE for OS X
是用在 macOS 上的第三方文件系统扩展,地址:https://github.com/osxfuse/osxfuse/wiki
使用 homebrew 安装
brew cask install osxfuse |
事实上 FUSE 是提供了提供了接口,要实现 NTFS 和 Ext 文件系统的支持,还需要安装模块
读写 NTFS 分区
让 macOS 读写 NTFS 需要安装 ntfs-3g
brew install ntfs-3g |
手动挂载
使用 diskutil list
查看分区,例如我的 U 盘是 disk4s1
那么可以用以下命令挂载
mkdir ~/Desktop/UDISK |
这样 U 盘就被挂载到桌面了
卸载这个分区的命令式是 sudo umount /dev/disk4s1
注意:不管是用什么方式挂载 NTFS 分区,都不建议挂载 win 的系统盘,有翻车嫌疑,所以当 ntfs-3g 发现你挂载的分区有 win 休眠和快速启动遗留的缓存时,会以只读模式挂载,如果实在需要修改 win 系统分区,需要在 win 里关闭快速启动
自动挂载
我们知道,macOS 开机时会自动挂载 NTFS 分区,但是只能读取
安装 ntfs-3g 后,我们需要让新的 mount_ntfs 替换系统自带的版本,实现写入
为了减少对系统的影响,我们把旧版本备份,并把新版本软链接过去
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.bak |
重启生效,需要注意的是,每次升级或重装系统之后,需要重新做软链接
现在可以重新打开 SIP,在恢复模式的终端里,输入 csrutil enable
再重启,黑果可以在 clover 里设置
EXT 格式化和挂载
ext2、ext3、ext4 格式化需要安装 e2fsprogs,挂载需要安装 fuse-ext2
fuse-ext2 也依赖于 e2fsprogs,所以先装它
brew install e2fsprogs |
再安装 fuse-ext2
brew install https://raw.githubusercontent.com/yalp/homebrew-core/fuse-ext2/Formula/fuse-ext2.rb |
根据提示,设置面板里的选项需要这样操作才能显示
sudo cp -pR /usr/local/opt/fuse-ext2/System/Library/Filesystems/fuse-ext2.fs /Library/Filesystems/ |
这样就装好了
EXT 分区格式化
前面我们已经安装了 e2fsprogs,现在可以使用它提供的命令来格式化分区
先设置变量让 e2fs 库里的命令暴露出来,将以下字段加在 shell 的配置文件中,我用的是 zsh,所以加在 ~/.zshrc
里
export PATH="/usr/local/opt/e2fsprogs/bin:$PATH" |
重启终端或执行 source ~/.zshrc
生效
现在就能执行 mkfs.ext2
mkfs.ext3
mkfs.ext4
等命令了
用法:
mkfs.ext4 [-c|-l 文件名] [-b 块大小] [-C 簇大小] |
使用 diskutil list
查看分区,例如我想要格式化为 ext4 的分区是 disk3s1
sudo mkfs.ext4 /dev/disk3s1 |
挂载 EXT 分区
使用 diskutil list
查看分区,例如我有个 Ext4 分区是 disk3s1
那么命令是这样的
mkdir ~/Desktop/DISK |
这样就挂载上了
卸载这个分区的命令式是 sudo umount /dev/disk3s1
结语
平常这些挂载工具用的确实不是很多,但是需要用的时候,又很无奈,所以直接写个笔记记录一下,以后要用的时候方便些
本文章发表于底噪博客 https://zhih.me , 转载请注明
直接偷的人,你打球真蔡