treedown’s Report

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

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

Raspberry PiからHDDが見えなくなったので対処

Raspberry PiにUSB接続していたHDDが見えなくなる現象が発生したので対処した内容をご報告です。
ディスクのエラー?

気づいたきっかけ

一日の始まりは日次のログ確認から、と一通りのログをざっくり眺めていたら、バックアップのログにいつもと違う警告が。

f:id:treedown:20220213141153p:plain

sambaサーバのファイルバックアップを取得しているBunBackupが教えてくれた「バックアップ元フォルダが存在しません」というメッセージ。変だなと思い対象のsambaが稼働するRaspberry Piにアクセスして確認してみたところ、共有フォルダとして使っている2台のHDD(USB接続の外付けHDD)のうち、1台のHDDがマウントされていないことを発見しました。

うーん。

このサーバが設置されている場所、ちょうど前日にネットワーク機器の不可解なシャットダウン⇒自動起動が発生していました。ブレーカーが落ちたような感じもするけど対象のRaspberry PiはUPSで瞬断には対応できるようになっているので、すっかり安心していました。UPSのコンセントが抜かれた?という可能性も考慮して、Raspberry Piのsyslogを調べてみようと思います。

dmesgで確認

syslogに記録された起動時のログから怪しい箇所を抜き出してみました。

--------------------------------------------------------------
Feb 00 10:00:00 smbsvr kernel: [10000000] usb 1-1.5: USB disconnect, device number 9
Feb 00 10:00:00 smbsvr systemd[1]: Unmounting /home/usbhdd2...
Feb 00 10:00:00 smbsvr kernel: [10000000] Buffer I/O error on dev sdc, logical block 365985792, lost sync page write
Feb 00 10:00:00 smbsvr kernel: [10000000] JBD2: Error -5 detected when updating journal superblock for sdc-8.
Feb 00 10:00:00 smbsvr kernel: [10000000] Aborting journal on device sdc-8.
Feb 00 10:00:00 smbsvr kernel: [10000000] Buffer I/O error on dev sdc, logical block 365985792, lost sync page write
Feb 00 10:00:00 smbsvr kernel: [10000000] JBD2: Error -5 detected when updating journal superblock for sdc-8.
Feb 00 10:00:00 smbsvr systemd[1]: Unmounted /home/usbhdd2.
--------------------------------------------------------------

うーん、「Buffer I/O error」が出ています。「Buffer I/O error on dev sdc, logical block 365985792, lost sync page write」と「JBD2: Error -5 detected when updating journal superblock for sdc-8.」で論理障害が発生した?と。

他にも「Failed to mount /home/usbhdd2.」と「home-usbhdd2.mount: Unit entered failed state.」というメッセージもあったので、論理障害によって起動時のマウントに失敗したと考えることができそうです。

このログのエントリを発見するのにちょっと時間が掛かってしまいました。

対処

これは以前に対処したことがあったのをすっかり忘れていました。ログを発見してからしばらく考えているうちに思い出しました。

blog.treedown.net

手順はこれに沿って、

$ sudo mkfs ext4 -n /dev/sda

を実行

f:id:treedown:20220213141312p:plain

「Superblock backups stored on blocks:」に数字が複数表示されました。

続いて、fsckコマンドで修復を実行します。

$ sudo fsck /dev/sda -p

を実行

f:id:treedown:20220213141340p:plain

「Journal checksum error found in /dev/sda」とか「/dev/sda was not cleanly unmounted, check forced.」と対象の/dev/sdaにエラーが発生していたことが窺えるメッセージの表示とともに、修復が進んで行きました。

対処後

対処が完了した後、改めてログから接続されたことを確認。

--------------------------------------------------------------
Feb 00 14:00:00 smbsvr systemd[1]: Mounting /home/usbhdd2...
Feb 00 14:00:00 smbsvr systemd[1]: Mounted /home/usbhdd2.
Feb 00 14:00:00 smbsvr kernel: [  669.515923] EXT4-fs (sda): mounted filesystem with ordered data mode. Opts: (null)
--------------------------------------------------------------

いままでは「Unmounting /home/usbhdd2...」となっていた処理は、「Mounting /home/usbhdd2...」と「Mounted /home/usbhdd2.」でエラーになっていた/dev/sdaがマウントされるようになりました。

ひとまず対処は完了ですが、HDDやHDDケースの故障の可能性もあるので、しばらくは注意して観察しておくようにします。