最近誤ってファイルを削除しました/lib/x86_64-linux-gnu/libc.so.6.
このファイルはほとんどのプログラムで必要なので、私のコンピューターは基本的に壊れており、ライブUSB経由でのみハードドライブにアクセスできます。
Debianベースの64ビットのCrunchbang Waldorfを実行しています。
libc.so.6
を置き換えるにはどうすればよいですか? (/lib64/
にはコピーが含まれていません。)
locate libc.so
の出力(ライブUSBで、壊れたハードドライブがマウントされている)
/lib/x86_64-linux-gnu/libc.so.6
/rofs/lib/x86_64-linux-gnu/libc.so.6
/rofs/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc.so.6
/ etc/apt/sources.listの内容
deb http://mozilla.debian.net/ wheezy-backports iceweasel-release
## CRUNCHBANG
## Compatible with Debian Wheezy, but use at your own risk.
deb http://packages.crunchbang.org/waldorf waldorf main contrib
# deb-src http://packages.crunchbang.org/waldorf waldorf main
## DEBIAN
deb http://http.debian.net/debian wheezy main contrib non-free
# deb-src http://http.debian.org/debian wheezy main contrib non-free
## DEBIAN SECURITY
deb http://security.debian.org/ wheezy/updates main contrib
# deb-src http://security.debian.org/ wheezy/updates main
私はあなたのライブUSBスティックが他の方法で実行しているものと同じディストリビューションであるか、少なくともDebianベースのディストリビューションであると想定します。
これらの仮定の下で、最初にライブUSBスティックを使用してシステムを起動します。次に、コマンド/lib/x86_64-linux-gnu/libc.so.6
を使用してファイルdpkg -S /lib/x86_64-linux-gnu/libc.so.6
を所有しているパッケージを照会します(ファイルは「libc6」というパッケージによって所有されていることがわかりますが、とにかく良い演習です)。
USBスティックライブディストリビューションからシステムを実行している場合は、必要な1つまたは複数のパッケージを Crunchbang Waldorfサイト からダウンロードします。
次に、ハードディスクドライブをディレクトリにマウントします。例として、ここでも、/mnt
の下のハードディスクドライブからルートパーティションをマウントすると仮定します。
あとは、dpkg
の--root /mnt
ディレクティブを使用して、必要なパッケージを再インストールするだけです。そうすることで、パッケージはライブUSBスティックファイルシステムに到達するのではなく、ハードディスクに既にあるシステムに到達します。
libc.so.6
ファイルはlibc6
パッケージに含まれています。
マシンにlibc6
パッケージがインストールされているリポジトリを確認する必要があります。 (/etc/apt/sources.list
などを確認してください)。
次に、手動でダウンロードし(たとえば、デフォルトのリポジトリを使用するDebianマシンの場合は here からダウンロードできます)、@ SamiLaineの指示に従ってインストールします。
端末を開き(Ctrl + Alt + T)、次のコマンドを実行します。
64ビットUbuntuの場合:
Sudo ln -s /lib64/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6
32ビットUbuntuの場合:
Sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6
ルートシェルでこれを試してください:
ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6
libc-2.13.so
がシステムに適切なバージョンでない場合は、bashでタブ補完を使用して適切なバージョンを見つけてください。
これが機能しない場合は、ルートシェルで静的にリンクされたバージョンの ldconfig を使用できます。
/sbin/ldconfig
Libcリンクのターゲットライブラリが削除された場合は、 パッケージ:libc6 ページからdebianパッケージをダウンロードし、dpkg-deb -X
( manページ )を使用して解凍し、コピーします。 libc-2.13.so
から/lib/x86_64-linux-gnu
へ。次に、ldconfigを実行して、すべてのリンクが正しいことを確認します。