防止共享未安装的驱动器

防止共享未安装的驱动器

我设置了一个文件服务器,用于通过 samba 和 netatalk (AFP) 共享外部驱动器。我有一个 fstab 条目用于自动将驱动器安装到/mnt/external,然后由各种守护进程自动共享。

问题是如果驱动器没有正确安装(例如,如果我忘记打开它,或者我那天带它去上班)。在这种情况下,挂载点在没有连接相应驱动器的情况下被共享,导致各种元文件被写入我的挂载点,而不是干净的故障。这会阻止驱动器在下次连接时正确安装(非空目录),如果有人同时使用共享,可能会导致数据丢失。

在驱动器卸载的情况下,有什么方法会导致共享失败?

答案1

您可以设置原始挂载文件夹属性以使其immutable

chattr +i /mnt/external

该文件夹现已锁定,禁止对其进行任何操作(您可以使用 解锁-i)。但是mountfstab仍可正常工作。


运行 之前,请确保驱动器未安装chattr。如果出现错误"Inappropriate ioctl for device While reading flags",则可能是您正在使用的文件系统不支持文件夹属性。事实上,一些 Linux 发行版使用overlayfs文件系统而不是来安装主分区ext。因此,您必须手动将其安装到其他地方才能chattr处理文件夹(即mount /dev/mmcblk0p3 /mnt/temp然后chattr +i /mnt/temp/root/mnt/external)。

相关内容