Top > Blog > Article > ぶちこわれたArch LinuxをLive Diskから蘇生する+フリーズ問題のまとめ

ぶちこわれたArch LinuxをLive Diskから蘇生する+フリーズ問題のまとめ

2022-04-28
2022-04-27

最近、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 で検索するとこの記事が出てきました。

arch linux - pacman "exists on filesystem" error - Unix & Linux Stack Exchange

ということで、最終的に解決したコマンドは:

$ 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って絵文字使えないんですね)

終わりに

一応修復作業を行ってからはまだフリーズ現象が起きていないので、これで治ったらいいんですけどね。みなさんもアップデート時のフリーズには気をつけましょう。

追記:発生しました もう駄目です

icon

わたすけ

高専生 プログラミングでツールを作ったりLinux触ったりゲームしたりしてる
プロフィール詳細はこちら

タグ
発端その場しのぎの解決パッケージの再インストール(失敗)chrootもpacstrapもうまくいかないそして解決へフリーズ問題について終わりに