ぶちこわれたArch LinuxをLive Diskから蘇生する+フリーズ問題のまとめ
最近、Arch LinuxをデスクトップPCにインストールして使っています。
ただし、グラボのせいか、謎の突発フリーズ現象に見舞われることが多く、長らく苦しめられてきました。原因も再現手順も不明なため、原因解明がなかなかしづらいという難点があり、しかも大事な作業中にフリーズしてしまうという曲者です。
そんな中事件は起きました。なんとpacmanによるパッケージのアップデート中にフリーズするという大事件が起きたのです!!これのせいでArch Linuxは崩壊、ライブラリのファイルサイズは0になり、これによってOSそのものが起動しなくなってしまいました。しかも、chrootしてもうまくパッケージをインストールできず・・・
ツイートを読み込み中...
まあ要するにこのツイートが全てです。今回は問題発覚と解決までの流れ、ついでにフリーズ問題のわかっていることをまとめます。フリーズ問題は たぶん 未だに解決していないので、誰か助けてください。
発端
pacman -Syuでパッケージ更新中にフリーズし、再起動したらカーネルパニックが発生
ツイートを読み込み中...
init (というかsystemd?)の起動に失敗したようです。liblzma.so.5のファイルサイズが小さいらしいです。後で見たら0バイトでした。
その場しのぎの解決
ということで、困ったときのLive Disk起動を試みます。とりあえずライブラリのバックアップを取って(cp liblzma.so.5 liblzma.so.5.bak
みたいな感じで)、Live Diskから該当するライブラリを引っ張ってきます。すると別のライブラリに関するエラーが出てきました。ということで、これをカーネルパニックがなくなるまで繰り返します。
パッケージの再インストール(失敗)
とりあえずこれでOSが起動するようになりました。一応何があるかわからないので、すべてのパッケージを再インストール(pacman -S $(pacman -Qnq)
を実行)しようとすると、GPGME error: Invalid crypto engine
というエラーが表示されてしまいます。何をインストールしようとしてもこのエラーが出るようになってしまいました。
chrootもpacstrapもうまくいかない
再びLive Diskから起動、いろいろ試したけど再インストールはできないままでした。見出しのとおりですが、chrootしてコマンドを実行しても、pacstrapで再インストールしようとしてもうまく行きませんでした。Arch Wikiを見て、 pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg
みたいなやつをこのときのエラーは exists on filesystem
みたいなやつです。 色々見てみると、--forceオプションを指定したらどうにかなるという情報がありましたが、これでもうまく動きませんでした。どうやら廃止されたオプションらしいです。
そして解決へ
exists on filesystem
で検索するとこの記事が出てきました。
ということで、最終的に解決したコマンドは:
$ pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -S $(pacman --root=/mnt --cachedir=/mnt/var/cache/pacman/pkg -Qnq)
これでいけました(具体的には、mkinitcpioしないと起動しませんでしたが)。やったね。
目に見えてなにか変わったわけではないですが、アップデートも問題なくできるようになってほっ としました。
フリーズ問題について
色々試して解決に至っていないフリーズ問題ですが、試行錯誤は以下のような内容です。
- 2年前にArch Linuxを入れたときも同様の不具合が発生した
- 完全なフリーズ。画面および音声は停止し、マウスカーソルは動かず、ディスクアクセスランプは点灯しない、数時間放置しても復帰しない
- キーボード以外すべてのデバイスを外して起動しても発生する、キーボードはPS/2接続のものとUSB接続のものと両方で発生する →外部ハードウェアはあまり関係なさそう
- htopやvmstatを見る限り、フリーズ前にCPUやディスクアクセスに関する異常は見られない
- ltsカーネルとzenカーネルで発生する
- xorgとGPU(GTX1060)が若干怪しいが、i3wmが原因ではない
- NTFSパーティションをfstabでマウントするようにしてから起きるようになった気がする
:thinking: (このブログ、というかstrapiって絵文字使えないんですね)
終わりに
一応修復作業を行ってからはまだフリーズ現象が起きていないので、これで治ったらいいんですけどね。みなさんもアップデート時のフリーズには気をつけましょう。
追記:発生しました もう駄目です
Comments
Powered by Giscus