ユーザーが削除した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