我设置了一个文件服务器,用于通过 samba 和 netatalk (AFP) 共享外部驱动器。我有一个 fstab 条目用于自动将驱动器安装到/mnt/external
,然后由各种守护进程自动共享。
问题是如果驱动器没有正确安装(例如,如果我忘记打开它,或者我那天带它去上班)。在这种情况下,挂载点在没有连接相应驱动器的情况下被共享,导致各种元文件被写入我的挂载点,而不是干净的故障。这会阻止驱动器在下次连接时正确安装(非空目录),如果有人同时使用共享,可能会导致数据丢失。
在驱动器卸载的情况下,有什么方法会导致共享失败?
答案1
您可以设置原始挂载文件夹属性以使其immutable
:
chattr +i /mnt/external
该文件夹现已锁定,禁止对其进行任何操作(您可以使用 解锁-i
)。但是mount
或fstab
仍可正常工作。
运行 之前,请确保驱动器未安装chattr
。如果出现错误"Inappropriate ioctl for device While reading flags"
,则可能是您正在使用的文件系统不支持文件夹属性。事实上,一些 Linux 发行版使用overlayfs
文件系统而不是来安装主分区ext
。因此,您必须手动将其安装到其他地方才能chattr
处理文件夹(即mount /dev/mmcblk0p3 /mnt/temp
然后chattr +i /mnt/temp/root/mnt/external
)。