treedown’s Report

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

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

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

昨日の「(1/2)RaspberryPiの外付けHDDがOS起動時マウントされない」でfstabに必要なオプションは追記したのですが、これがうまく動作していないようで、再起動後はやっぱり自動的にマウントされない模様。
今日はその時の調査と対処についてご報告します。

fstab編集後の起動

再起動したらmdデバイスが見えなくなった。(※df -mで表示されない)おかしいな…

この状況になったら手動でマウントしてみましょう。
----------------------------------------------
$ sudo mdadm --assemble --scan
mdadm: /dev/md0 has been started with 2 drives.

$ sudo mount /dev/md0 /home/samba
$ df -m
ファイルシス 1M-ブロック 使用 使用可 使用% マウント位置
/dev/root 15056 3828 10563 27% /
 …中略
/dev/md0 74935 52 71054 1% /home/samba
----------------------------------------------
と、このように/dev/md0が出てきまして、無事(/home/sambaに)マウントはされます。
手動でmdadmから接続されている全部のRAIDデバイスを有効化するオプション「--assemble --scan」を付けて実行します。「has been started 」と出てmd0が手動ならアクティブになるようです。マウントしてみましたが、問題なく80GBのmdデバイスが認識します。

自動起動が?

fstabに設定を追記した「nofail」オプションはあくまでも「自動マウントに失敗した場合でもOSは正常起動を完了させる」と言うだけのオプションですから、冷静に考えると「自動マウントに失敗する」という点は解消していないことになります。ですね。
これは起動時にディレイを入れないといけないらしい。「/boot/cmdline.txt」を編集します。
※変更前
----------------------------------------------
$ sudo cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
----------------------------------------------
※これを変更します。
$ sudo vi /boot/cmdline.txt
※変更後
----------------------------------------------
$ sudo cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootdelay=10 rootwait
----------------------------------------------
単純に「rootdelay=10」をrootwait前に追記しただけです。
どうやらRaspberryPiの仕様(RaspberryPi 3に限るかどうかは不明ですが)でHDDの起動を待たなければOS起動時の自動マウントに失敗する、といううことのようです。

これでもダメだったが

どうやら手順で誤認識していたらしい…。

$ sudo mdadm --detail --scan
で表示されるUUIDと
$ sudo blkid /dev/md0
で表示されるUUIDは全く別のUUIDなのですが、/etc/fstabで指定するのは「blkid /dev/md0」で表示されるUUIDを指定しないといけないです。
----------------------------------------------
$ sudo blkid /dev/md0
/dev/md0: UUID="f6a94422-55f5-40a8-9c9f-0df24b09a221" TYPE="ext4"
$ sudo vi /etc/fstab
$ sudo cat /etc/fstab
(中略)
UUID=f6a94422-55f5-40a8-9c9f-0df24b09a221 /home/samba ext4 defaults,nofail 0 0
----------------------------------------------
こうすると、再起動後、
----------------------------------------------
$ df -m
ファイルシス 1M-ブロック 使用 使用可 使用% マウント位置
/dev/root 15056 3829 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
/dev/md0 74935 52 71054 1% /home/samba
tmpfs 93 1 93 1% /run/user/1000
tmpfs 93 0 93 0% /run/user/1001
----------------------------------------------
ちゃんと認識するようになりました。

うーんまだまだ私は修業が足りんってことですかね。