やらかしたので記録です。
環境
- ディストリビューション: Linux Mint 20.0
$ 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
ディスク構成
$ 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 向けのバックアップツールです。
スケジュールするとこいつが定期的に /back
へバックアップを作ってくれるのですが、それを忘れていた僕は「なんか動作重いな〜」と思いつつ(重いだけに)、あろうことか reboot
を掛けやがりました。バカタレ。
しかも最初、復旧作業中の僕はそのことに気づいていませんでした。
経緯
reboot
したものの、中々再起動が終わらないので様子を見て顔面蒼白になる。
プチ絶望 pic.twitter.com/tgY4OEQyn5
— 型推栄 (@_jj1lis_uec) 2023年3月29日
なんか文字化けしていてよくわからん。これの修正もそのうちやりたい(そもそも emergency mode に入りたくないが?)。
はい… pic.twitter.com/6J6WT5Yhuc
— 型推栄 (@_jj1lis_uec) 2023年3月29日
とりあえずダメ元で systemctl reboot
するが、特に効果なく同じ画面に戻される。
言われた通り journalctl -xb
しようとするが、かしこい[要出典]のでどうせよくわからん内容が死ぬほど流れてきて何もわからんだろうと思って journalctl -xb | grep error | less
する。
色々見ていると、どうやら sdb8
がぶっ壊れたらしい。
/dev/sdb8 がお亡くなりになったそうです pic.twitter.com/8GoZFeCU6v
— 型推栄 (@_jj1lis_uec) 2023年3月29日
定石ならまずは mount /dev/sdb8 <dir>
を試すのだが、アホなので自分のPCの構成を覚えていないし、ましてや sdb8
がどこにマウントされていたかなんて思い出せない。 df
やってんだから気づけよ。
仕方ないので初手 fsck
で復旧を試みる。 fsck /dev/sdb8 -p
で自動復旧。
お祈り… pic.twitter.com/JHlauunppO
— 型推栄 (@_jj1lis_uec) 2023年3月29日
ダメでした。
本当に死んでほしい pic.twitter.com/68iDBGNm2p
— 型推栄 (@_jj1lis_uec) 2023年3月29日
仕方ないので手動で復旧します。書いてある通り、 fsck /dev/sdb8
とオプションを外すだけ。
延々と ...? <y>
と聞かれるので Enter を押すだけのホモサピを15分くらい続ける。手動Enter押下bot、通称しゅどぼ。
- y を忘れたせいで6論理ブロックごとにfsckから同意を求められており、つらい
— 型推栄 (@_jj1lis_uec) 2023年3月29日
ちなみに man fsck
するとこんなことを言われた。㍂。
-y ファイルシステム固有のチェッカーの中には、 -y オプションが指定されると、検出さ れたファイルシステムの破損箇所を 常に自動的に修復しようとするものもある。 エキ スパートは、より上手に fsck を手動で実行させることができる場合もある。 全ての ファイルシステム固有のチェッカーが、 このオプションを実装しているわけではない 点に注意すること。 この man ページを書いている時点では、特に fsck.minix(8) と fsck.cramfs(8) は -y オプションをサポートしていない。
俺、ひょっとして死ぬまでfsckの修復に付き合う必要がある?
— 型推栄 (@_jj1lis_uec) 2023年3月29日
とかなんとか言ってるうち、出力に見覚えのある文字列を見つける。修復中のディレクトリが表示されるのだが、 timeshift/snapshots/...
とか書いてあるのである。ここで自分のやらかしに気づく。
そして同時に sdb8
のマウント先を思い出す。
今回の敗因ですが、timeshiftくんがバックアップをしてくれている間に間違えてrebootしてしまったようです←バカタレ
— 型推栄 (@_jj1lis_uec) 2023年3月29日
そうこうしている間に無限に続くかと思われた fsck
地獄が終了したので、満を持して mount /dev/sdb8 /back
する。
よろしくお願いしまーす!!!!! pic.twitter.com/OIjdSS4Wz0
— 型推栄 (@_jj1lis_uec) 2023年3月29日
大勝利 pic.twitter.com/eIX3lUqeNV
— 型推栄 (@_jj1lis_uec) 2023年3月29日
生還。
教訓
shutdown
やreboot
をするときは、必ず裏で動いているジョブを確認しなければならない。- 自分のPCのファイルシステムくらい把握しておかなければならない。