この簡単なチュートリアルでは、壊れたArch Linuxと、EndeavourOS、ManjaroLinuxなどのその亜種を以前の動作状態に復元する方法について説明します。
先日、コマンド "sudo pacman -Syu"を使用してシステム全体をアップグレードしました 、そして壊れたArchLinuxシステムになってしまいました。
私のArchLinuxはグラフィカルモードでの起動を拒否し、次のエラーメッセージを表示し続けました: "dependency failed multi-user system" および"dependency failed for graphical interface" 。
私が持っていた唯一のオプションは、シングルユーザーモードにログインして、更新されたパッケージを以前のバージョンにロールバックすることです。
シングルユーザーモードから、次のことを試しました。
- 公式リポジトリからパッケージをインストールしようとしましたが、できませんでした。ネットワークカードがシングルユーザーモードで認識されないため、インターネットが機能しませんでした。
- 「ダウングレード」 コマンドが機能しません。理由はわかりません。そのため、パッケージを以前のバージョンにダウングレードできませんでした。エラーメッセージ
"sudo pacman command is not found"が表示されただけです。 。 - そこで、すべてのパッケージを特定の日付にダウングレードすることを再試行しました 。それも役に立たなかった。上記と同じエラーが発生しました。つまり、
"sudo pacman command is not found"。
私は無力でした。私が持っているのは、インターネットに接続されたタブレットPCだけです。 Arch Linux wikiとフォーラムを徹底的に検索した後、最後にもう一度試してみようと思いました。
以前に更新されたすべてのパッケージを1つずつダウングレードすることにしました。なぜなら、"pacman -Syu" コマンドが多くのパッケージを更新したため、問題の原因となっているパッケージを正確に確認できませんでした。
このような状況にある場合は、このガイドが壊れたArchLinuxを以前の動作状態に復元するのに役立つ可能性があります。
1。 まず、シングルユーザーモードでログインします。これを行うには、 "e"と入力します グラブメニューが表示されたら。
2。 次に、単語 linuxで始まる行を見つけます :
linux /boot/vmlinuz-linux root-UUID=d474f2-e6a2-4cc3-9899-aa98af13 rw quiet
上記の行の最後に、次の行を入力します。
init=/bin/bash
参考までに、次のスクリーンショットを参照してください。
3。 次に、 F10を押します またはCTRL+X 続ける。数秒後、シングルユーザーモードになります。
4。 次のコマンドを入力して、root (/)をマウントします 読み取り/書き込みモードのファイルシステム。
mount -n -o remount,rw /
5。 ここで、システム全体のアップグレードをいつ行ったかを確認する必要があります。 pacman.logを見ると、これを簡単に見つけることができます。 ファイル。このファイルには、過去に行ったすべてのpacmanエントリが保存されます。
tail -n 200 /var/log/pacman.log | less
ここでは、 -n 200 最後の200が表示されます pacman.logの行 ファイル。なぜなら、私のpacman.log ファイルには非常に多くのエントリがあります。
ご存知かもしれませんが、tailコマンドは最後の10エントリのみを表示します。したがって、200を置き換えます pacman.logを通過するためにあなた自身の番号で ファイル。そして、"tail"の出力をパイプしました "less"へのコマンド 結果をページごとに表示するコマンド。
6。 pacman.logファイルを調べた後、完全なシステムアップグレードの正確な時刻を見つけました。下のスクリーンショットのタイムスタンプを確認してください(低品質の画像でごめんなさい)。
"sudo pacman -Syu"を実行しました 12:06 pmのコマンド 。
ご覧のとおり、"pacman -Syu" コマンドが40+を更新しました パッケージ。
7。 なので、"downgrade"は使えません コマンドを実行し、すべてのパッケージを特定の日付にダウングレードします。"pacman -U"を使用して、更新されたすべてのパッケージを1つずつダウングレードするしかありませんでした。 キャッシュからのコマンド。ご存知のとおり、 pacman ダウンロードしたすべてのパッケージを/var/cache/pacman/pkgs/に保存します フォルダ。
8。 スクリーンショットから更新されたすべてのパッケージを書き留め、以下のようにキャッシュから以前のバージョンに1つずつダウングレードしました。
pacman -U /var/cache/pacman/pkg/qt5-base-5.9.1-3-x86_64.pkg.tar.xz
上記のコマンドはqt5-baseをインストールします キャッシュフォルダからのパッケージ。すべてのパッケージをダウングレードするのに30分近くかかりました。
9。 すでにキャッシュフォルダをクリアしている場合は、選択の余地はありません。再インストールが唯一のオプションである可能性があります。したがって、新しいパッケージに問題が発生した場合に復元できるように、少なくとも2つの古いバージョンをキャッシュに保持することをお勧めします。
10。 すべてのパッケージをダウングレードした後、次のコマンドを入力して変更を適用し、ArchLinuxを通常モードで起動します。
exec /sbin/init
11。 これで、ArchLinuxデスクトップに問題なくログインできるようになりました。数日待ってから、修正されたらもう一度更新してみるべきだと思います。
時間と忍耐力がある場合は、1つのパッケージをダウングレードして、"exec /sbin/init"を実行します。 システムを通常モードで起動し、問題が解決するかどうかを確認します。
そうでない場合は、別のパッケージを試してください。問題のあるパッケージが見つかるまでこれを繰り返します。次に、問題のあるパッケージをそのままにして、他のすべてのパッケージを更新します。
この方法はそれほど効率的で複雑ではないことに気付く人もいるかもしれません。しかし、これが私の壊れたArchLinuxシステムを回復する方法です。
この方法以外の簡単な方法を知っているかもしれません。そのような簡単な方法を知っているなら、下のコメントセクションで私に知らせてください。それに応じてガイドを確認して更新します。
このブログの他の便利なArchLinuxチュートリアル:
- ArchLinuxのPacmanで並列ダウンロードを有効にする
- ArchLinuxでReflectorを使用して最新のミラーリストを取得する
- ArchLinuxでパッケージキャッシュをクリーンアップするための推奨される方法
- ArchLinuxでのアップグレードからパッケージを無視する方法
- Arch Linuxでの「pacman:共有ライブラリのロード中のエラー」エラーを修正する方法
関連記事:
- 壊れたUbuntuOSを再インストールせずに修正する方法