ミシシッピ川以東のルイジアナ

わたしのブログへようこそ!出てけ

Timeshift がバックアップをしている最中に reboot をしてはいけない(健常者エミュレータの記事)

やらかしたので記録です。

環境

$ uname -a
Linux mint-desk.jj1lis 5.4.0-139-generic #156-Ubuntu SMP Fri Jan 20 17:27:18 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

ディスク構成

  • /dev/sda: INTEL SSDSC2CT12 (120GB)
  • /dev/sdb: TOSHIBA DT01ACA1 (1000GB)
$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0     1K  0 part 
├─sda2   8:2    0   7.5G  0 part /
├─sda3   8:3    0   7.5G  0 part /tmp
├─sda5   8:5    0   953M  0 part /boot
├─sda6   8:6    0  29.8G  0 part [SWAP]
└─sda7   8:7    0  59.6G  0 part /home
sdb      8:16   0 931.5G  0 disk 
├─sdb1   8:17   0 238.4G  0 part /usr
├─sdb2   8:18   0     1K  0 part 
├─sdb5   8:21   0 238.4G  0 part /var
├─sdb6   8:22   0  59.6G  0 part /opt
├─sdb7   8:23   0   3.7G  0 part /srv
└─sdb8   8:24   0   298G  0 part /back

概要

以下、写真に写る画面や机の上が汚いですがご了承ください。

原因

Timeshift は Linux 向けのバックアップツールです。

github.com

スケジュールするとこいつが定期的に /back へバックアップを作ってくれるのですが、それを忘れていた僕は「なんか動作重いな〜」と思いつつ(重いだけに)、あろうことか reboot を掛けやがりました。バカタレ。

しかも最初、復旧作業中の僕はそのことに気づいていませんでした。

経緯

reboot したものの、中々再起動が終わらないので様子を見て顔面蒼白になる。

なんか文字化けしていてよくわからん。これの修正もそのうちやりたい(そもそも emergency mode に入りたくないが?)。

とりあえずダメ元で systemctl reboot するが、特に効果なく同じ画面に戻される。

言われた通り journalctl -xb しようとするが、かしこい[要出典]のでどうせよくわからん内容が死ぬほど流れてきて何もわからんだろうと思って journalctl -xb | grep error | less する。 色々見ていると、どうやら sdb8 がぶっ壊れたらしい。

定石ならまずは mount /dev/sdb8 <dir> を試すのだが、アホなので自分のPCの構成を覚えていないし、ましてや sdb8 がどこにマウントされていたかなんて思い出せない。 df やってんだから気づけよ。

仕方ないので初手 fsck で復旧を試みる。 fsck /dev/sdb8 -p で自動復旧。

ダメでした。

仕方ないので手動で復旧します。書いてある通り、 fsck /dev/sdb8 とオプションを外すだけ。

延々と ...? <y> と聞かれるので Enter を押すだけのホモサピを15分くらい続ける。手動Enter押下bot、通称しゅどぼ。

ちなみに man fsck するとこんなことを言われた。㍂。

-y     ファイルシステム固有のチェッカーの中には、 -y オプションが指定されると、検出さ
       れたファイルシステムの破損箇所を 常に自動的に修復しようとするものもある。 エキ
       スパートは、より上手に fsck を手動で実行させることができる場合もある。  全ての
       ファイルシステム固有のチェッカーが、  このオプションを実装しているわけではない
       点に注意すること。 この man ページを書いている時点では、特に fsck.minix(8)  と
       fsck.cramfs(8) は -y オプションをサポートしていない。

とかなんとか言ってるうち、出力に見覚えのある文字列を見つける。修復中のディレクトリが表示されるのだが、 timeshift/snapshots/... とか書いてあるのである。ここで自分のやらかしに気づく。

そして同時に sdb8 のマウント先を思い出す。

そうこうしている間に無限に続くかと思われた fsck 地獄が終了したので、満を持して mount /dev/sdb8 /back する。

生還。

教訓

  • shutdownreboot をするときは、必ず裏で動いているジョブを確認しなければならない。
  • 自分のPCのファイルシステムくらい把握しておかなければならない。