systemd:停止 .automount 单元而不卸载文件系统

systemd:停止 .automount 单元而不卸载文件系统

有没有一种方法可以.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

相关内容