単一ボリュームCIFSマウントがあり、バインドマウント2サブディレクトリがあります。起動時にsystemdは「ソートサイクル」について文句を言い、バインディングの1つをインストールできませんが、もう1つは正しく機能します。を実行すると、欠落しているmount -a
バインディングがインストールされます。新しい仮想マシンでこの動作を再現できました。
/etc/fstab
//server.example.com /mnt/media cifs [snip] 0 0
/mnt/media/secure /var/www/media/secure none bind 0 0
/mnt/media/public /var/www/media/public none bind 0 0
バインドマウントは変更されておらず、これは実際の名前です。ただし、順序を変更するとバインドマウントfstab
だけが失敗するため、ソート順序によってこれが重要になる可能性があると思います。常に動作します。public
secure
ログ内のログ
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on var-www-media-public.mount/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on mnt-media.mount/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on network-online.target/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on networking.service/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on local-fs.target/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Breaking ordering cycle by deleting job var-www-media-public.mount/start
Mar 19 14:06:45 ubuntu systemd[1]: var-www-media-public.mount: Job var-www-media-public.mount/start deleted to break ordering cycle starting with local-fs.target/start
x-systemd.requires=/mnt/media
バインドマウントを指定しようとしましたが、何も変更されませんでした。この問題を解決するには、次にどこに行くのかわかりません。
答え1
バインドマウントの1つが機能する理由がわかりません。 2つが同時に失敗する可能性がある理由と回避策は次のとおりです。
あなたのnetworking.service
注文はローカルファイルシステムの背後にあります。バインドマウントはローカルファイルシステムとして扱われます。ただし、バインドマウントはネットワークマウント後も順序付けられます。 systemd は、バインドマウントに対するこれらの論理依存関係を自動的に追加します。
この場合、systemd
バインドマウントが実際にネットワークマウントになるように指示する必要があります。この場合、意図的な選択肢があります。_netdev
バンドルインストールにインストールオプションを追加するだけです。詳細はこのオプションで定義されていますman systemd.mount
。