一般linux系统要想开机挂载网络磁盘,都是通过在/etc/fstab里添加启动项来实现,但是macos的实现却不太一样。macos是通过编辑/etc/auto_master来实现,如下:
#
# Automounter master map
#
+auto_master # Use directory service
#/net -hosts -nobrowse,hidefromfinder,nosuid
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab
/- -static
# SAMBA AutoFS
/- auto_smb
其中/- 表示配置文件auto_smb与auto_master 文件位于相同路径的文件夹下。然后编辑配置文件 /etc/auto_smb:
vim /etc/auto_smb
# 內容如下
/System/Volumes/Data/samba_mount/share -fstype=smbfs,soft,noowners,nosuid,rw ://username:password@ip-address:/share
://username:password@ip-address:/share 是挂载目标ip-address 上面通过samba 分享出的 share文件夹内容,username 和 password 按照实际情况修改。
/System/Volumes/Data/samba_mount 是 macos里的 挂载路径,并且挂在路径 一定要放在 /System/Volumes/Data下
官方说法:
如果你正在使用 macOS Catalina 10.15 和 macOS Big Sur 11(及以上版本)
你只需在现有的自动挂载路径前加上 /System/Volumes/Data。这是因为 macOS 会为用户数据创建第二个 APFS 卷,从而将现有的系统安装移至只读 APFS 卷
另外注意不要直接挂载到/Users/xxx(xxx是用户名)下,既不要直接挂载到用户主目录下,建议是/Users/xxx/shared目录下,所以完成路径应该是:/System/Volumes/Data/Users/xxx/shared
配置完以后执行automount命令
automount -vc
由于在docker desktop for mac中,默然情况下docker就能mount的目录包括/Users,所以可以在Users下的shared目录里各自创建对应文件夹的mount文件夹,例如:/System/Volumes/Data/Users/Shared/nextcloud,如果直接在/Users/#home目录的子文件夹里创建,autofs会出问题,另外注意,smb用户密码不能用@,且为了安全性,最好给smb目录单独创建一个用户且只对这个挂载目录有安全的读写权限,不要把admin直接使用。
注意:如果升级了系统版本,auto_master文件会被覆盖,需要重新把auto_smb加进去。