このサイトを稼働させている自宅サーバーをDebian10(Buster)にして以降、WebDAV接続でマウントしているクラウドストレージのディレクトリーが、サーバー再起動時に自動マウントされずにエラーが出るようになっていました。
fstabに記述するオプションを変更して、起動時にマウントではなくWebDAVディレクトリーにアクセスがあったときに初めてマウントする設定にして上手くいきました。
このページの目次
起動時にエラーが出るfstab
いままでDebian9(Stretch)までは問題なく起動時にマウントできていたfstabです。Debian10でもデスクトップ環境(GNOMEやKDE)を入れているとマウントできています。デスクトップ環境無しのcui環境の場合だけエラーがでます。
https://nanao.teracloud.jp/dav/ /mnt/teracloud davfs _netdev,rw,user 0 0
https://webdav.pcloud.com /mnt/pcloud davfs _netdev,rw,user 0 0
https://webdav.yandex.com /mnt/yandexdisk davfs _netdev,rw,user 0 0
journalctl -b コマンドでboot.logを表示すると、ネット接続前にWebDAVマウントをしようとしているのでエラーが出ているようです。これってfstabの_netdevオプションで回避できるはずですが効いていないようです。
# journalctl -b
/sbin/mount.davfs: Mounting failed.
Could not resolve hostname `nanao.teracloud.jp': 名前解決に一時的に失敗しました
/sbin/mount.davfs: Mounting failed.
Could not resolve hostname `webdav.pcloud.com': 名前解決に一時的に失敗しました
/sbin/mount.davfs: Mounting failed.
Could not resolve hostname `webdav.yandex.com': 名前解決に一時的に失敗しました
mnt-teracloud.mount: Mount process exited, code=exited, status=1/FAILURE
mnt-teracloud.mount: Failed with result 'exit-code'.
Failed to mount /mnt/teracloud.
mnt-pcloud.mount: Mount process exited, code=exited, status=1/FAILURE
mnt-pcloud.mount: Failed with result 'exit-code'.
Failed to mount /mnt/pcloud.
mnt-yandexdisk.mount: Mount process exited, code=exited, status=1/FAILURE
mnt-yandexdisk.mount: Failed with result 'exit-code'.
Failed to mount /mnt/yandexdisk.
上手くいったfstab
_netdevオプションが効かない原因はわからないので、とりあえず回避策です。fstabの記述をこちらに変更しました。
https://nanao.teracloud.jp/dav/ /mnt/teracloud davfs x-systemd.automount,_netdev 0 0
https://webdav.pcloud.com /mnt/pcloud davfs x-systemd.automount,_netdev 0 0
https://webdav.yandex.com /mnt/yandexdisk davfs x-systemd.automount,_netdev 0 0
x-systemd.automount オプションで起動時にはマウントされませんが、WebDAVディレクトリーにアクセスがあったときに初めてマウントされるようになりました。
CronでWordPressのバックアップを取る設定をしています。バックアップデータの保存先にWebDAVディレクトリーを指定していますが、ちゃんとバックアップが取れているのを確認できました。これでDebian10にしてからOS再起動時に手動でマウントしていた手間が省けるようになって問題解決です。
cui環境でWebDAV接続でクラウドストレージを設定する方法は過去記事にしています。