やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ラズパイ4がemergencyモードで起動するようになってしまった😨

 異常に遅くなってしまい、まともに使えない。対処に迫られた。

背景

 私はラズパイをメインメインマシンとして使っている。2016年の3Bだった頃から。今は4Bだが、それでもだいたい半年に一回はクラッシュなどのトラブルにみまわれ、OS再インストールさせられる。「またか」という印象。

経緯

 おそらく電源のせい。ラズパイ4Bから5V電圧の電源でないと動作しなくなった。ちゃんと5V電圧を使っているのだが、すでに3つ目。まともな電源がみつからない。そのせいか常に「⚡低電圧」のマークが出ていた。新しい電源にすると最初のころは出なくても2〜3ヶ月くらいしたら出てくるようになり、半年くらいで頻出し、そう遠くないうちに外付HDDの電源が落ち、ファイルシステムがやられる。今回もそうだと思われる。もうやだ。

対応

 e2fsckでディスクチェックした。

  1. 問題のRaspberry PI OSが入った外付HDDをラズパイから外す
  2. 1を他のLinuxマシンにつなげる(Ubuntu 20)
  3. 自動的にマウントされる(USBを挿して少し待ったらGUI表示される)
  4. df -hで1のデバイスIDとマウントパスをみつける(rootfs,bootの2つあるはず)
  5. umount マウントパスする
  6. e2fsckでディスクチェックする
  7. 再びラズパイに接続して試す

 df -hしたら次のようになった。/dev/sdc1がデバイスID、/media/acer/bootがマウントパス。

 ラズパイOSはbootrootfsの2つのパーティションがあるはず。あとはディスクの容量などをヒントにあたりをつける。ほかにはディスクIDもヒントになる。sdの後ろはa,b,c,...のようなアルファベット順になる。これはふつう接続順になるようだ。なので番号がもっとも大きいものが対象と思われる。まちがっても今動作しているマシンのディスクを選ばないこと。

$ df -h
...
/dev/sdc2       917G   34G  846G   4% /media/acer/rootfs
/dev/sdc1       253M   49M  204M  20% /media/acer/boot

 今回問題になったパーティションはブート側bootと思われる。が、念のため両方e2fsckでディスクチェックする。そのためにはまず全2パーティションともアンマウントする必要がある。以下コマンドで。

umount /media/acer/rootfs
umount /media/acer/boot

 e2fsckコマンドでディスクチェックする。sudoがないと権限がないと怒られる。-pがないと不良セクタなど問題が見つかるたびに人が手で応答しなきゃいけない。それらに対応すると以下コマンドになる。

sudo e2fsck -p /dev/sdc1
sudo e2fsck -p /dev/sdc2

 /dev/sdc1rootfs)側には問題なかった。が、案の定/dev/sdc2boot)側に問題があったようだ。次のようなログが出た。

rootfs contains a file system with errors, check forced.
rootfs: Entry '01' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 1803633.  CLEARED.
rootfs: Entry '08' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 2699641.  CLEARED.
rootfs: Entry '09' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 2827603.  CLEARED.
rootfs: Entry '0a' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 2827629.  CLEARED.
rootfs: Entry '0b' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 2958078.  CLEARED.
rootfs: Entry '0c' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 2958084.  CLEARED.
rootfs: Entry '0d' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 3216001.  CLEARED.
rootfs: Entry '0e' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 3216002.  CLEARED.
rootfs: Entry '12' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 3474761.  CLEARED.
rootfs: Entry '13' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 3474762.  CLEARED.
rootfs: Entry '14' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 3474763.  CLEARED.
rootfs: Entry '1b' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 3855386.  CLEARED.
rootfs: Entry '21' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 4115315.  CLEARED.
rootfs: Entry '22' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 4115317.  CLEARED.
rootfs: Entry '23' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 4115318.  CLEARED.
rootfs: Entry '33' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 4885637.  CLEARED.
rootfs: Entry '36' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5014253.  CLEARED.
rootfs: Entry '37' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5017811.  CLEARED.
rootfs: Entry '38' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5017812.  CLEARED.
rootfs: Entry '39' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5143740.  CLEARED.
rootfs: Entry '3a' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5143981.  CLEARED.
rootfs: Entry '3b' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5143982.  CLEARED.
rootfs: Entry '3c' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5272732.  CLEARED.
rootfs: Entry '3d' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5272735.  CLEARED.
rootfs: Entry '3e' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5272736.  CLEARED.
rootfs: Entry '3f' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5401167.  CLEARED.
rootfs: Entry '40' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5401168.  CLEARED.
rootfs: Entry '41' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5401169.  CLEARED.
rootfs: Entry '42' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5532320.  CLEARED.
rootfs: Entry '4b' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5915163.  CLEARED.
rootfs: Entry '4c' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5915164.  CLEARED.
rootfs: Entry '4d' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 5915165.  CLEARED.
rootfs: Entry '60' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 6942287.  CLEARED.
rootfs: Entry '61' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 6942288.  CLEARED.
rootfs: Entry '63' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 7071541.  CLEARED.
rootfs: Entry '64' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 7071542.  CLEARED.
rootfs: Entry '65' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 7071543.  CLEARED.
rootfs: Entry '66' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 7200290.  CLEARED.
rootfs: Entry '67' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 7200291.  CLEARED.
rootfs: Entry '68' in /home/pi/.cache/??? (1803480) has 削除/unused iノード 7200292.  CLEARED.
rootfs: ディレクトリ iノード 2059452, block #0, offset 0: ディレクトリ corrupted


rootfs: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
    (i.e., without -a or -p options)

 念のためもう一度かけてみる。たぶん問題ない。

$ sudo e2fsck -p /dev/sdc2
rootfs contains a file system with errors, check forced.
rootfs: ディレクトリ iノード 2059452, block #0, offset 0: ディレクトリ corrupted


rootfs: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
    (i.e., without -a or -p options)

 これを再びラズパイと接続しなおして正常に起動するか試す。

治らず

 まだemergencyモードで起動する。

 残念でした。

どうするか

 もうOS再インストールしかないのだろう。

 そうなるとmpurseで作ったモナコインのアカウントはどうなるのか。

 そして諸悪の根源、電源をどうするか。

 これらに対応するのに何日かかるのか……orz

 ああ、こんなことやりたくないのに。コード書きたいのに!💢