有没有一种方法可以.automount
在不卸载文件系统的情况下停止?
我只是想防止未来任何自动安装,但我不想要卸载当前挂载的文件系统。
为什么我不能重新挂载您问的文件系统?
嗯,就像umount --lazy
很危险并且不可能知道它什么时候完成,看来停止该.automount
单位也使用相同的MNT_DETACH
标志。
演示:
$ # Call this shell #1:
$ # I block permissions on the unmounted mountpoint:
$ ls -ld /media/backup/
dr-------- 1 root root 0 Nov 19 14:16 /media/backup/
$ ls /media/backup
ls: cannot open directory '/media/backup': Permission denied
# Enable the automounter:
$ sudo systemctl start media-backup.automount
$ # Now I can see the contents:
$ ls /media/backup
blockchain btrbk syncthing
$ # Pin it down with a working directory:
$ cd /media/backup/
# Stop the automounter:
$ sudo systemctl stop media-backup.automount
$ # Note there is no complaint about a mounted filesytem...
此时,在另一个shell中:
$ # Shell #2
$ ls /media/backup/
ls: cannot open directory '/media/backup/': Permission denied
因此,从 shell #2 查看时它已被卸载,但仍然可以在 Shell #1 中访问:
$ # Shell #1
$ ls
blockchain btrbk syncthing
如何.automount
在不卸载当前安装的文件系统的情况下停止设备?
答案1
通过简单地创建符号链接来屏蔽该单元以防止将来运行/dev/null
:
$ sudo systemctl --runtime mask "$(systemd-escape -p --suffix=automount /media/backup)"
Created symlink /run/systemd/system/media-backup.automount → /dev/null.
该--runtime
标志只会在下次启动之前被屏蔽。
要重新启用自动挂载,只需删除符号链接即可。
笔记:
屏蔽并卸载当前挂载的文件系统后,未来的访问尝试可能会显示如下内容:
$ ls backup
ls: cannot open directory 'backup': Host is down