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