CIFSマウントバインドマウントのシステムマウントサイクル

CIFSマウントバインドマウントのシステムマウントサイクル

単一ボリューム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だけが失敗するため、ソート順序によってこれが重要になる可能性があると思います。常に動作します。publicsecure

ログ内のログ

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

関連情報