wireguardの後にfstabまたはsystemdを使用したsmb共有マウント

wireguardの後にfstabまたはsystemdを使用したsmb共有マウント

Wireguard接続を確立したら、SMB共有をマウントしようとしています。だから私は次のことをしました。

  • Wireguard設定が作成されました。
  • 起動時にsystemdが接続を開始できるようにする systemctl enable [email protected]
  • fstabに次のエントリを追加します。
//192.168.0.10/home /mnt/smb cifs [email protected],credentials=/home/user/.smbcredentials,vers=3.0,uid=user,pid=user,users,_netdev 0 0

再起動後、ネットワーク共有はマウントされません。 fstabのすべてのエントリがsystemd-unitに変換されることを知り、そのデバイスの状態を確認しましたsystemctl status mnt-smb.mount

● mnt-smb.mount - /mnt/smb
   Loaded: loaded (/etc/fstab; generated; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2022-02-09 16:55:28 CET; 1min 17s ago
    Where: /mnt/smb
     What: //192.168.0.10/home
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
  Process: 496 ExecMount=/bin/mount //192.168.0.10/home /mnt/smb -t cifs -o [email protected],credentials=/home/user/.smbcredentials,vers=3.0,uid=user,gid=user,users,_netdev (code=exited, status=32)

Feb 09 16:55:28 homeserver systemd[1]: Mounting /mnt/smb...
Feb 09 16:55:28 homeserver systemd[1]: mnt-smb.mount: Mount process exited, code=exited status=32
Feb 09 16:55:28 homeserver systemd[1]: Failed to mount /mnt/smb.
Feb 09 16:55:28 homeserver systemd[1]: mnt-smb.mount: Unit entered failed state.

確認した結果、dmesg次のような情報が得られました。

[   17.612210] Key type cifs.spnego registered
[   17.612253] Key type cifs.idmap registered
[   17.758816] wireguard: loading out-of-tree module taints kernel.
[   17.775249] wireguard: WireGuard 0.0.20191206 loaded. See www.wireguard.com for information.
[   17.775273] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <[email protected]>. All Rights Reserved.
[   27.752548] CIFS VFS: Error connecting to socket. Aborting operation.
[   27.752576] CIFS VFS: cifs_mount failed w/return code = -115

に基づいてスタックオーバーフローに関する質問,115は「進行中」を意味すると仮定する。 Wireguard VPN接続が開始されていない場合でも、同じ動作が表示されます。

生成されたユニットファイルを表示します。

# Automatically generated by systemd-fstab-generator

[Unit]
SourcePath=/etc/fstab
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
Before=remote-fs.target

[Mount]
What=//192.168.0.10/home
Where=/mnt/smb
Type=cifs
[email protected],credentials=/home/user/.smbcredentials,vers=3.0,uid=user,gid=user,users,_netdev

mount -aログイン後に実行すると、すべてが期待どおりに機能します。だからユニット間のタイミング問題だと思います。したがって、私も自分のシステムユニットを作成し、fstabからエントリを削除しました。

[Unit]
Description=Homeserver SMB
Before=remote-fs.target
[email protected]
[email protected]

[Mount]
Type=cifs
What=//192.168.0.10/home
Where=/mnt/smb
Options=credentials=/home/user/.smbcredentials,vers=3.0,uid=user,gid=user,users

[Install]
WantedBy=multi-user.target

/etc/systemd/system/mnt-smb.mountアクティベーションを通じて移動しますsystemctl enable mnt-smb.mount。この方法は一度再起動した後は機能しますが、次の再起動後は機能しなくなります。

質問:

  • このタイミングの問題を解決するには?
  • ユニットファイルまたはfstabでどのsystemdオプションを使用できますか?

答え1

サービスが開始されたとしても、wireguardで設定したインタフェースが準備されていないのではないかと疑われます。あなたの質問は次のとおりです。これに関連してこの場合、解決策は仮想デバイスを待つことです。

After=network.target [email protected]
Requires=sys-devices-virtual-net-wg0.device

関連情報