不正なシンボリックリンクにより、ほとんどの Linux コンピュータ機能が壊れました

不正なシンボリックリンクにより、ほとんどの Linux コンピュータ機能が壊れました

私は Debian ベースの 64 ビット Crunchbang を使用しています。

私はlibc6の特定の問題を解決しようとしていて、askUbuntuの回答のアドバイスに素朴に従いました(リンク) により、次のコマンドを実行しました。

sudo ln -sf /lib32/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6

現在、ターミナル コマンドや GUI プログラムを 1 つも実行できません。ターミナルでは大量のエラーが発生します。lsたとえば、次のようになります。

ls: 共有ライブラリのロード中にエラーが発生しました: libs.so.6: ELF クラスが間違っています: ELFCLASS32

sed: 共有ライブラリのロード中にエラーが発生しました: libs.so.6: ELF クラスが間違っています: ELFCLASS32

/usr/bin/env: 共有ライブラリのロード中にエラーが発生しました: libs.so.6: 間違った ELF クラス: ELFCLASS32

日付: 共有ライブラリのロード中にエラーが発生しました: libs.so.6: 間違った ELF クラス: ELFCLASS32

sed: 共有ライブラリのロード中にエラーが発生しました: libs.so.6: ELF クラスが間違っています: ELFCLASS32

GUI プログラムが起動しないか、奇妙なエラー メッセージを表示します。

つまり、この大惨事を引き起こしたシンボリックリンクを削除する方法はありません。コンピューターを再び動作させるにはどうすればよいのでしょうか?

答え1

/lib32 フォルダには 32 ビット ライブラリのみを含めることができます。/lib32 に libc.so.6 のリンクを作成しましたが、これは同じファイルの 64 ビット バージョンを指しています。libc.so.6 の 32 ビット バージョンを取得し、/lib32 フォルダに配置します。

答え2

libc を台無しにしてしまったため、一般的にすべての便利なユーティリティはそれに依存しているため、唯一の本当に便利なオプションは、Live CD/USB から起動して修正するか、ハード ドライブを他の誰かのコンピューターに接続して (そこから起動しないでください)、そこから修正することです。

修正するには、行った操作を元に戻します。

-fただし、オプションの選択が不適切でln、元のファイルをバックアップしなかったと推定されるため、/lib/x86_64-linux-gnu/libc.so.6そのコマンドを実行する前に実際に存在していたとしても、上書きされたことになります。その場合、最善策は、できれば互換性のあるバージョンのコピーを他の場所から入手し、マシンが再び動作可能になったら、libc を強制的に再インストールして、適切なファイルの適切なバージョンがすべて適切な場所にあることを確認することです。

最初からそのファイルがなかったとしても、心配する必要はありません。

これをすべてクリーンアップした後、重要なライブラリへのシンボリック リンクをいじるのではなく、プラットフォーム用の正しいパッケージのマスク解除とインストールなど、問題に対するリスクの少ない解決策を試すことを検討してください。

関連情報