kernel updateの際に再起動をしますが、その時SSHが繋がらず
モニターを繋いで確認するとこんな内容が表示されていました。
You are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, or "exit"
to continue bootup.
Give root password for maintenance
(or press Control-D to continue): _
意味はこんな感じ
You are in emergency mode. 現在、緊急モード(Emergency Mode)に入っています。
After logging in, type “journalctl -xb” to view system logs, “systemctl reboot” to reboot, or “exit” to continue bootup. ログイン後、システムログを見るには journalctl -xb、再起動するには systemctl reboot、ブート(起動)を続行するには exit と入力してください。
Give root password for maintenance メンテナンスを行うために root(管理者)のパスワードを入力してください。
(or press Control-D to continue): (または、[Ctrl] + [D] キーを押してそのまま続行します)
起動にコケたので緊急モードにはいったわ、確認するにはrootパスワードいれてね。って事でしょう。
と言うわけで、rootパスワードを入力して調査
# journalctl -b -1 -p err
で確認するとこんなログが
Timed out waiting for device dev-sdb2.device - /dev/sdb2.
Failed to mount mnt-ds\x2d01.mount - /mnt/ds-01.
起動時に /dev/sdb2 というディスク領域を探しましたが、待っても認識されずタイムアウトしました。
その結果、/mnt/ds-01 へのマウントに失敗し、システムが緊急モードで停止しました。
と言う事なので/mnt/ds-01 はネットワークドライブなのでfstabの記述を確認
このように書かれてました。
192.168.5.55:/volume1/ds218j-01 /mnt/ds-01 nfs defaults 0 0
これだと、ネットワークが起動していない場合やNASが落ちていた時にタイムアウトしてシステムが起動しません。
なのでこのように修正
192.168.5.55:/volume1/ds218j-01 /mnt/ds-01 nfs defaults,_netdev,nofail,x-systemd.device-timeout=10 0 0
内容はこんな感じ
_netdev: ネットワークが有効化されてからマウントを試みる指定です。
nofail: 万が一NASに繋がらなくても、エラーにせずそのままOSを正常起動させます。
x-systemd.device-timeout=10: タイムアウトを90秒から10秒に短縮し、起動を遅らせません。
これで、再起動しても無事に起動してくれると信じて様子見します。