破損したシステムディレクトリ(例:/ lib)の再構築

破損したシステムディレクトリ(例:/ lib)の再構築

ユーザーが削除したDebian、Ubuntu、CentOSなどのLinuxシステムがあるとします/lib。システムが実行されているオペレーティングシステムのlivecdバージョンを使用してシステムを正常に起動したとします。/lib破損したシステムで再構築コマンドを実行できますか?

たとえば、ターゲットシステムが使用しているすべてのパッケージを再インストールすると、このようなことができるようになります。

このような状況に直面した同僚があり、最終結果は完全な再インストールでした。しかし、これは問題を解決できるのか、それとも早く解決できるのかを考えました。

ベストアンサー1

ほとんどの場合、この問題は比較的簡単に解決できます。次のディレクトリを使用して、インストールされているすべてのパッケージのリストを生成できます/lib

dpkg -S /lib | awk -F': ' '{ print $1 }' | tr -d ,

これらのパッケージを再インストールすると問題が解決します。

apt-get --reinstall $(dpkg -S /lib | awk -F': ' '{ print $1 }' | tr -d ,)

もちろん、これは削除したディレクトリによって異なりますapt-get。タスクを実行するために必要なパッケージはapt-get手動でインストールする必要があります。そうしないと、dpkgそのパッケージが別のコンピュータに抽出され、ファイルが所定の場所にコピーされる可能性があります。とにかく、後でそこにいるので、すべて再インストールされるので、apt他の問題は発生しません。

にファイルを入れた私のパッケージのリストを見ると、メイン/libパッケージはカーネル(すべてのモジュールがに移動/lib/modules)とlibc。どちらもシステムを起動するために再インストールが必要であることはほぼ確実です。 1つの方法は、Debianベースのライブシステムからインストールすることです。必要なパッケージをダウンロードしてターゲットシステムのルートディレクトリにインストールした場合は、ここにインストールするオプションを追加できます。例--root:dpkg

dpkg --root=/path/to/target/root -i package1.deb package2.deb ...

必要に応じて、この--rootオプションを最初のコマンドで使用することもできます。dpkgもちろん、十分な忍耐力とスキルが必要なオンライン修理が可能です。そのdpkgコマンドが機能しない場合は、いつでもから直接パッケージの依存関係を探し、ファイルを介してファイルが配置されている/var/lib/dpkg/infoパッケージを検索してみることができます。/lib.list/var/lib/dpkg/info

何が得られるかについてのアイデアを提供するために、実行中のGentooシステムを復元した人のためのブログがあります。みんなパッケージが削除されました。興味深い内容であり、使用された(またはコメントで提案された)いくつかの技術がこの状況に適用されることがあります。http://fakeguido.blogspot.co.uk/2010/08/rescuing-hosed-system-using-only-bash.html

おすすめ記事