Linux カーネル「半分構成」

Linux カーネル「半分構成」

私は 1 年以上 Debian Wheezy を実行してきましたが、1 週間前までは問題はありませんでした。しかし、明らかな理由もなく、突然、システムは Linux カーネルが半分しか構成されていないと判断し、オンラインで見つけた修正方法はどれも機能しませんでした。その結果、apt更新を実行するたびに修正を試みますが、失敗します。

詳細

症状

更新が実行されるたびに、aptある時点でカーネルの修正が試行され、失敗し、更新プロセスはエラー アドバイスとともに終了し、その後、システムが最新であることを示すメッセージが表示されます。

による更新アクティビティは、apt次の内容で終了します。

Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
E: /usr/sbin/update-initramfs.orig.initramfs-tools - command not found
E: On Debian based systems, update-initramfs from initramfs-tools
E: can be installed with:
E:   apt-get install initramfs-tools
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-4-amd64.postinst line 696.
dpkg: error processing linux-image-3.2.0-4-amd64 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 linux-image-3.2.0-4-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

カーネル

実質的に同じ問題が、Ask Ubuntu の質問受け入れられた回答は、dpkgステータスファイルに問題があることを指摘しました。linux-image-3.2.0-4-amd64半分構成されていると言いました。

最初のステップとして、私はこれを試しました:

administrator@Kwheezy:~$ sudo dpkg-reconfigure linux-image-3.2.0-4-amd64
/usr/sbin/dpkg-reconfigure: linux-image-3.2.0-4-amd64 is broken or not fully installed

再インストールしても効果がなかったので、壊れていると考えられます。

Ask Ubuntu の解決策は、dpkgステータス ファイルからエントリを削除して再インストールすることでした。私の場合、これもうまくいきませんでした。プロセスが完了すると、dpkgステータス ファイルはエントリを、まだ半分構成されていることを示す別のエントリに置き換えており、システムの動作は同じでした。

適切な出力

出力内のエラー メッセージに注目しますapt。エラーは常に次のコードで始まります。

/usr/sbin/update-initramfs.orig.initramfs-tools - command not found

案の定、そのファイルは存在しません。インストールすることでインストールできるという親切なメッセージが表示されています。initramfs-toolsaptすでにインストールされていたのですが、再インストールしました。すでにそれが自動的に行われていたことが判明しました。インストールのガイダンスに従って表示されるすべてのエラーメッセージinitramfs-toolsインストールの試みによって生成され、決して/usr/sbin/update-initramfs.orig.initramfs-toolsインストール中です。

まとめ

  • 私は Wheezy リポジトリから入手可能な最新の Linux カーネルを持っています。これは良好なコピーであり、すべての依存関係が満たされており、他のユーザーから問題が発生したという報告はありません。
  • システムは、完全に構成されていないと報告します。構成を完了する方法や、システムが構成されていないと認識しないようにする方法は見つかりませんでした。

答え1

解決

sudo apt-get remove live-tools
sudo apt-get install --reinstall initramfs-tools
sudo apt-get install -f

説明

fixer1234のシステムをよりよく理解した後チャットで、インストールされたパッケージがlive-toolsと競合していることが判明しましたinitramfs-tools

がインストールされている場合はlive-tools、独自のスクリプトで上書きし/usr/sbin/update-initramfs、オリジナルを に配置します/usr/sbin/update-initramfs.orig.initramfs-tools

live-toolsには、ライブ システム上にあるかどうかを検出する健全性チェックがいくつかあります。ライブ システム上になく、インストール済みシステム上にある場合は、/usr/sbin/update-initramfs.orig.initramfs-toolsinitramfs を更新するための正しいスクリプトである を実行しようとします。

fixer1234 のシステムでは/usr/sbin/update-initramfs.orig.initramfs-tools削除されていました。

このシステムはインストール型システムなので、live-toolsおそらく不要であり、削除することをお勧めします。

上記の「解決策」セクションで提案されている各手順は、次のように機能します。

sudo apt-get remove live-tools

を削除するとへのlive-tools復元が試行されますが、が存在しないため、エラーが発生します。/usr/sbin/update-initramfs.orig.initramfs-tools/usr/sbin/update-initramfs/usr/sbin/update-initramfs.orig.initramfs-tools

live-toolsそれでも削除され、これが重要なのです。

まだ行方不明です/usr/sbin/update-initramfs

sudo apt-get install --reinstall initramfs-tools

を復元するには/usr/sbin/update-initramfs、そのファイルを提供するパッケージを再インストールします。つまり、 ですinitramfs-tools

sudo apt-get install -f

および の不具合によりカーネルのインストールが不完全でしたlive-toolsinitramfs-toolsインストールを完了し、すべてのパッケージの問題を解決するには、この最後の手順が必要です。

これで、完全に機能する Debian システムが完成しました。

(ちなみに、これらの手順は理論的には Debian 8、Ubuntu 12.04、Ubuntu 14.04、Ubuntu 15.10、Ubuntu 16.04、Ubuntu 16.10 で機能します。)

関連情報