Jac*_*_Hu 4 debian mount fstab bind-mount
我正在运行一个经过修改的 WD MyCloud (Gen 1) NAS,上面安装了 Debian 8 (Jessie)。
由于设备的细微差别,我无法调整根分区的大小,并且正在为它的空间而苦苦挣扎。
为了解决这个问题,我已将/var
和/usr
目录同步到主数据分区。
然后我将以下几行添加到/etc/fstab
:
/data/rootfs/var /var none defaults,bind 0 0
/data/rootfs/usr /usr none defaults,bind 0 0
Run Code Online (Sandbox Code Playgroud)
重启后发现/var
目录挂载成功,但是/usr
目录没有挂载。
如果我然后运行mount -a
,则不会出现任何错误,并且/usr
目录已正确安装。
怎么了?
如果您使用 systemd,挂载是并行完成的(通过将 fstab 条目动态转换为挂载单元),不会像预 systemd 体验中预期的那样保留行顺序。
您有一个无法自动猜到的未知依赖:mounting /data/
before mount /usr
。没有它,你会得到一个竞争条件。
您必须手动添加依赖项作为伪挂载选项,使用x-systemd.requires=
. 因此,如果应该挂载的前一个挂载点是/data
,这应该使它工作:
/data/rootfs/var /var none x-systemd.requires=/data,bind 0 0
/data/rootfs/usr /usr none x-systemd.requires=/data,bind 0 0
Run Code Online (Sandbox Code Playgroud)
如果别人发现了这个问题,但使用的情况下是/data
作为一个远程网络文件系统,如NFS,伪安装选项_netdev
(预systemd选项也由systemd识别)必须也可以在添加/data/rootfs/usr
条目把一切工作正常,因为none
不能自动提示这一点,没有它可能会混淆x-systemd.requires=
分辨率。
归档时间: |
|
查看次数: |
3266 次 |
最近记录: |