在我的情况中,我需要确保在挂载几个后续文件系统之前挂载一个特定的文件系统。例如,在这种情况下,我想在将其他目录绑定挂载到 USB 磁盘之前挂载它。
我可以轻松地编写一个初始化脚本来完成此操作,但是在执行此操作之前,我想知道是否有更谨慎或更常见的解决方案来解决这个问题 - 我怀疑这个问题是否罕见。
答案1
您是否希望它只在系统启动时发生?如果不是,您可能可以使用自动挂载来做一些事情,类似于可执行映射,它会检查 USB 设备是否可用,如果可用,则使相关位置可供挂载。
就像是:
自动魔法:
#/bin/sh
if [[ -z /media/usb ]] then
echo "films /media/usb/films"
echo "photos /media/usb/photos"
fi
自动主控:
/magic auto.magic
您需要执行 service autofs (re)start。
然后,当您执行 ls /magic/films 时,如果 /media/usb 可用,automount 将调用您的脚本并挂载电影共享。
答案2
您正在使用什么发行版?
我很确定 init 脚本要么从上到下逐个挂载文件系统/etc/fstab
,要么查找依赖项。
无论哪种方式,我从来没有遇到过挂载点位于其他挂载点的任何问题,并广泛使用它们以及mount --bind
。
另一方面,当挂载点不存在时,mount
将会打印错误并且初始化脚本继续(只要通过0
在最后一列中设置挂载点为非关键/etc/fstab
)