我需要一个特定的行/etc/fstab
始终安装在另外两行之后:
# Always mount these first
UUID=fdf38dd4-9e9d-479d-b830-2a6989958503 / ext4 noatime,discard,errors=remount-ro 0 1
UUID=2b548eb8-fa67-46ce-a998-91d587dba62f /home/.hdd ext4 errors=remount-ro 0 2
# Always mount this second
none /home/ak aufs br:/home/.ssd/ak=rw:/home/.hdd/ak=rw 0 0
当前的行为是经常以不可预测的方式反转最后两行的顺序。我该如何指定必要的顺序?
答案1
一个选项是推迟安装直至/etc/fstab
完成,这样您就可以完全控制安装顺序。
只需添加noauto
到 fstab 中的挂载选项,然后挂载即可rc.local
。
根据手册页,mount -a
按顺序挂载条目fstab
,而添加-F
('fork') 选项将并行挂载它们。看来标准启动使用 'fork',大概是为了减少启动时间,所以我猜事后(半)手动挂载是重新控制挂载顺序的最简单方法。
答案2
Systemd 现在包含一个强制挂载顺序的依赖选项。根据您的情况,添加 fstab 参数:
x-systemd.requires-mounts-for=/,x-systemd.requires-mounts-for=/home/.hdd
如果您需要在其他已安装的文件系统上安装,noauto 选项将不起作用。就我而言,上述方法有效,请参阅提交https://github.com/systemd/systemd/commit/3519d230c8bafe834b2dac26ace49fcfba139823更多细节。
答案3
Ubuntumountall
在启动时使用,而不是mount -a
。Mountall 等待底层设备出现,然后立即在其上挂载 fs,除非它正在挂载的 fs 尚未挂载,否则它会等待该 fs。
您应该能够通过设置 3 个文件系统的挂载点来获得所需的顺序,使它们一个接一个地堆叠在一起。不要将这三个都挂载到 /home/.something 中,而是将第一个放在 /home/.x 中,将第二个放在 /home/.x/.y 中,将第三个放在 /home/.x/.y/.z 中。
答案4
根据man fstab
,该showthrough
选项可能正是您要找的。尝试将其设置在 /home/ak 上,看看是否有效。
在启动期间挂载文件系统时可能会出现mount
分叉;如果是这样,则分区的挂载顺序将是未定义的。