treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

(1/2)RaspberryPiの外付けHDDがOS起動時マウントされない

昨日の続きです。昨日は外付けHDDのドライブ二台をRAID1構成にしました。
このUSB外付けHDDをOS起動時に自動的にマウントさせようとするとハマりました。
今日はそのご報告です。

昨日の記事⇒RaspberryPiの外付けHDDでソフトウェアRAID1

昨日の時点ではパーティションは認識するし、手動でマウントすることは成功しました。RAID1もmd0デバイスとして認識する状況です。この状況ですが、OS起動時にはなぜか認識しません。パソコンの内蔵HDDでRAID1を構成した時にはこんなことなかったんですが。

失敗した操作

OS起動時のUSBハードディスクの自動マウントは/etc/fstabファイルにディスクのUUIDを記述して実行します。(いつもそれでやってました)
----------------------------------------------
# vi /etc/fstab
----------------------------------------------
「/etc/fstab」には、いつもと同じように

UUID=XXXXXXXX…XXXXXXXX  /home/samba  ext4  defaults  0  0

という感じに再起動後でも用意したmd0アレイがマウントされるように記述しておきます…と思ったら、再起動後にOS自体が起動しない(正確にはシングルユーザモードでしか起動しない)ようになってしまいました。
※写真を撮り忘れ…

確かメッセージでは
"Welcome to emergency mode! After logging in, type "journalctl -x" to view system logs,
"systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode."
と表示されていたと思います。つまりシステム起動失敗でシングルユーザモードで起動した、みたいな状況です。rootのシェルだけがパスワードなしで画面に表示されていて、SSH接続も×、GUIも×な状況に陥りました。

調べてみた結果

どうやら、Debian公式にある「systemd 配下での起動時のマウント失敗に対する、より厳格な取り扱い」の記載に当てはまっているようです。

■Debian:jessie で知っておくべき問題点

https://www.debian.org/releases/jessie/i386/release-notes/ch-information.ja.html#systemd-auto-mounts-incompat

詳しくはURLをご覧ください、ってことで、概要だけ。

Debian Jessieからは新しいinitシステムsystemd-sysvが採用されていますけども、これが、ですね。
起動中に "auto" マウントが失敗した場合には、以前までのsysvinitよりもとても厳格に判定して扱いを決めるらしいのです。おそらくfstabで記載のdefailts欄に「nofail」オプションを付けていない(従来Wheezyと同じようにした)状況でautoマウントに失敗すると、新しいinitであるsystemdではOSの起動を継続せずにエマージェンシーモードで起動する、という仕様のようです。オリジナル本文に「非常時のシェルに落ちます」という記載があるのでこれでほぼ間違いないかな、と。

fstab文末の記述は…

UUID=XXXXXXXX…XXXXXXXX /home/samba ext4 defaults,nofail 0 0

「nofail」を追記し、自動マウントに失敗した場合でもOSは正常起動を完了させるようにします。

これでコールドスタートしてみると、
----------------------------------------------
$ df -m
ファイルシス 1M-ブロック 使用 使用可 使用% マウント位置
/dev/root 15056 3828 10563 27% /
devtmpfs 459 0 459 0% /dev
tmpfs 463 0 463 0% /dev/shm
tmpfs 463 7 457 2% /run
tmpfs 5 1 5 1% /run/lock
tmpfs 463 0 463 0% /sys/fs/cgroup
/dev/mmcblk0p1 63 21 43 33% /boot
tmpfs 93 1 93 1% /run/user/1000
tmpfs 93 0 93 0% /run/user/1001
----------------------------------------------
あれ?消えちゃいました…。/dev/md配下を見てもmd0デバイスは表示されないし、/proc/mdstatも(mdstatがなくて)表示できません。
ハードディスクがカンカンカラカラ、とか変な音だったので思わず故障か?と疑ってディスクチェックに走ってしまいました。結果ディスクは無事(むしろ良好)、しかもやらなくていいのにRAID1を再構成してしまいました。※どうやらハードディスクの音はたまに出る仕様のようです。

実はこれは消えていません。マウントされていないだけでした。

ここからさらに必要な設定

実際に追加設定を実施して自動起動するようになったのですが、作業メモをまだまとめ切っていないので、明日ご報告しまする。