「linux-image-...しかしインストールされていません」/「書き込めません(デバイスに残りのスペースはありません)」問題を解決するために、ディスクスペースを解放するために古いカーネルイメージを削除することはできません。

「linux-image-...しかしインストールされていません」/「書き込めません(デバイスに残りのスペースはありません)」問題を解決するために、ディスクスペースを解放するために古いカーネルイメージを削除することはできません。

私が実行またはsudo apt-get upgrade返すsudo apt-get autoremove場合:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 linux-image-amd64 : Depends: linux-image-5.10.0-16-amd64 (= 5.10.127-2) but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

次に実行すると、sudo apt --fix-broken install次のものが返されます。

[...]
Preparing to unpack .../linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb ...
Unpacking linux-image-5.10.0-16-amd64 (5.10.127-2) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-5.10.0-16-amd64' to '/boot/vmlinuz-5.10.0-16-amd64.dpkg-new': failed to write (No space left on device)
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-5.10.0-16-amd64_5.10.127-2_amd64.deb

2番目のDebian11 / KDEコンピュータでも、同じエラーメッセージでほぼ同じエラーが発生しました。

そこから私はそれを使って解決できますこれら2つのコマンドはここから来ます。ブートパーティションのディスク容量を解放します。ただし、不要なカーネルイメージを削除するコマンドはこのコンピュータでは機能しません。

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

多くのカーネルイメージファイル名が表示されますが、フルコマンドを実行すると

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs sudo apt -y purge

削除されません。前のコマンドを実行しても同じファイル名が表示され続け、ディスク領域が解放されないため、問題はまだ存在します。上記の出力は次のとおりです。

The following packages have unmet dependencies:
linux-headers-amd64 : Depends: linux-headers-5.10.0-14-amd64 (= 5.10.113-1) but it is not going to be installed
linux-image-amd64 : Depends: linux-image-5.10.0-16-amd64 (= 5.10.127-2) but it is not going to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

  • まず、アップグレードがスムーズに実行されやすくなるため、どちらも必要ありません。デフォルトでは、ほとんどの祖母はこれを行うことができます。使用可能なディスク容量に問題がある場合ユーザーにメッセージを表示する必要があります。(アップグレードする場合は、コンソールやアプリなどのGUIで)必要なディスク容量と場所に応じて、以前のカーネルイメージを消去する(上記のコマンドを使用することもできます)、実行、消去、またはsudo rm -rf /var/cache/apt/archives/*実行/tmpするなどの操作を実行します。sudo apt-get autoremove/autoclean必要なディスク容量を計算し、空き容量が十分であることを確認する必要があります。または、空き容量が不足している場合は、一度に1つのアップグレードを実行し、各アップグレード後にクリーンアップするか、ユーザーに通知してディスク容量が十分になるまでアップグレードを中止することで問題を回避できます。これは別の問題/問題かもしれません。非常に不快、古い、安全ではなく、ユーザーフレンドリーではありません。
  • 古いカーネルイメージを削除する方法必要なディスク容量を確保しますか?これがこの問題を解決するための推奨される方法ではない場合(別のコンピュータでも動作しましたが、この問題が発生しました)、回避策を追加してください。

ベストアンサー1

最初のポイントについてはお手伝いできません。 2番目の問題を解決するには、一時的にlinux-headers-amd64次を削除する必要がありますlinux-image-amd64

sudo apt remove linux-{headers,image}-amd64

次に、実行中のカーネルに対応するパッケージを除き、インストールされているすべてのカーネルパッケージを明示的に削除します。

dpkg -l linux-{image,headers}-"[0-9]*" | awk "NR>5 && \!/^un/ && \!/$(uname -r | cut -d- -f-2)/ { print \$2 }" | xargs sudo apt -y purge

最後に、最新のカーネルをインストールします。

sudo apt install linux-{headers,image}-amd64

これをインストールすると、unattended-upgrades不要になったときに自動的にインストールされたカーネルが削除されます。

おすすめ記事