引言

之前使用macOS Catalina的时候,使用冰水的教程macOS读写NTFS,及EXT分区格式化和挂载,但是今天更新了macOS Big Sur,冰水的方法就需要删除快照才能使用了,在这里,予雨介绍一种不需要删除快照就能使用FUSE挂在NTFS分区的方法。

2020-11-13-55-14

  • 在食用本教程之前,请注意备份好数据
  • 不管是用什么方式挂载 NTFS 分区,都不建议挂载 win 的系统盘,有翻车嫌疑,所以当 ntfs-3g 发现你挂载的分区有 win 休眠和快速启动遗留的缓存时,会以只读模式挂载,如果实在需要修改 win 系统分区,需要在 win 里关闭快速启动

题外话

毛主席说过:“实践是检验真理的唯一标准”.
没有尝试请不要说"貌似不可以".

挂载系统分区

解锁SIP

白苹果用户进入恢复模式,在终端输入csrutil disable

黑苹果用户参考一下步骤(仅适用于OC):

修改config.plist-NVRAM-Add-7C436110-AB2A-4BBB-A880-FE41995C9F82-csr-active-configFF0F0000

2020-11-14-14-01

增加config.plist-NVRAM-Block-7C436110-AB2A-4BBB-A880-FE41995C9F82-csr-active-config

2020-11-14-15-06

完成后重启

挂载系统分区到目录

1
mkdir ~/livemount

使用diskutil list查找自己的系统分区,比如,我的系统分区为disk2s2

2020-11-13-56-54

1
sudo mount -o nobrowse -t apfs /dev/disk2s2 ~/livemount

安装osxfuse

FUSE for OS X是用在macOS上的第三方系统扩展,地址:https://github.com/osxfuse/osxfuse/wiki

使用Homebrew安装

1
brew cask install osxfuse

2020-11-13-55-54

安装ntfs-3g

1
brew install ntfs-3g

挂载NTFS分区

手动挂载

使用diskutil list查看分区,比如我的U盘是disk4s1

那么可以使用一下命令挂载

1
2
mkdir ~/Desktop/UDisk
sudo ntfs-3g /dev/disk4s1 ~/Desktop/UDisk -o allow_other

这样U盘就挂载到桌面了

卸载这个分区的命令是sudo unmount /dev/disk4s1

自动挂载

我们知道,macOS 开机时会自动挂载 NTFS 分区,但是只能读取

安装 ntfs-3g 后,我们需要让新的 mount_ntfs 替换系统自带的版本,实现写入

为了减少对系统的影响,我们把旧版本备份,并把新版本软链接过去

1
2
sudo mv ~/livemount/sbin/mount_ntfs ~/livemount/sbin/mount_ntfs.bak
sudo ln -s /usr/local/sbin/mount_ntfs ~/livemount/sbin/mount_ntfs

需要注意的是,每次升级或者重装系统后,都要重新做软链接

(可选)如修改S/L/E下的驱动,则需要重建缓存

1
2
3
4
sudo chown -R root:wheel ~/livemount/System/Library/Extensions/
sudo chmod -R 755 ~/livemount/System/Library/Extensions/
sudo kmutil install --volume-root ~/livemount --update-all
sudo kcditto

创建新的快照

1
sudo bless --folder ~/livemount/System/Library/CoreServices --bootefi --create-snapshot

完成后重启即可

参考链接

https://zhih.me/macos-mount-ntfs-ext/
http://bbs.pcbeta.com/viewthread-1873750-1-3.html