/ bootがいっぱいであることを説明するエラーメッセージが表示されました。古いイメージファイルをクリーンアップしようとすると、ディスクのフルエラーまたは依存関係エラーのために常に失敗するようです。誰かが私が間違っているところを説明してもらえますか。
$ Sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run ‘apt-get -f install’ to correct these.
The following packages have unmet dependencies.
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
E: Unmet dependencies. Try using -f.
$ ls /boot
abi-3.13.0-32-generic initrd.img-3.13.0-43-generic
abi-3.13.0-36-generic lost+found
abi-3.13.0-37-generic memtest86+.bin
abi-3.13.0-39-generic memtest86+.elf
abi-3.13.0-40-generic memtest86+_multiboot.bin
abi-3.13.0-43-generic System.map-3.13.0-32-generic
config-3.13.0-32-generic System.map-3.13.0-36-generic
config-3.13.0-36-generic System.map-3.13.0-37-generic
config-3.13.0-37-generic System.map-3.13.0-39-generic
config-3.13.0-39-generic System.map-3.13.0-40-generic
config-3.13.0-40-generic System.map-3.13.0-43-generic
config-3.13.0-43-generic vmlinuz-3.13.0-32-generic
grub vmlinuz-3.13.0-36-generic
initrd.img-3.13.0-32-generic vmlinuz-3.13.0-37-generic
initrd.img-3.13.0-36-generic vmlinuz-3.13.0-39-generic
initrd.img-3.13.0-37-generic vmlinuz-3.13.0-40-generic
initrd.img-3.13.0-39-generic vmlinuz-3.13.0-43-generic
initrd.img-3.13.0-40-generic
私は使った
kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver
取得するため
linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic
linux-headers-3.13.0-36
linux-headers-3.13.0-36-generic
linux-headers-3.13.0-37
linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39
linux-headers-3.13.0-39-generic
linux-headers-3.13.0-40
linux-headers-3.13.0-40-generic
linux-headers-3.13.0-44
linux-headers-3.13.0-44-generic
linux-headers-3.13.0-45
linux-headers-3.13.0-45-generic
linux-image-3.13.0-32-generic
linux-image-3.13.0-36-generic
linux-image-3.13.0-37-generic
linux-image-3.13.0-39-generic
linux-image-3.13.0-40-generic
次に、削除する最初の画像を選択します
$ Sudo apt-get purge linux-image-3.13.0-32-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies.
linux-image-extra-3.13.0-32-generic : Depends: linux-image-3.13.0-32-generic but it is not going to be installed
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not going to be installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
そのような場合、dpkg
ツールを使用して、いくつかのカーネルパッケージを強制的に削除します。 これは一般的な使用には推奨されておらず、少し危険です、しかし、このような場合、依存関係が満たされていない場合に役立ちます。
まず、システムが起動されているカーネルを見つけます。現在ロードされているもの。ターミナルを開き(CTRL + ALT + T)、次のコマンドを発行します
uname -r
ロードされたカーネルが表示されます。これを削除しようとしないでください。
次に、コマンドを発行します
ls /boot
インストールされているすべてのイメージが返されます。 1つまたは2つを選んで、それらを削除してみてください。強制的に削除/パージしてみてください。例えば
Sudo dpkg --force-all -P linux-image-3.13.0-32-generic
空き容量を確保するために、他の画像にも同じことができます。
その後、不足しているパッケージのインストールを試みることができます、または
Sudo apt-get install -f
依存関係の解決を試みます。
最後に、「cleanup old kernels」コマンドを発行します
Sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
上記のコマンドは、現在ロードされているカーネルを除くすべてのカーネルを削除します。
個別の/ bootパーティションがあるため、そのスペースを追跡して頻繁にクリーンアップする必要があることに注意してください(頻度は/ bootのスペースによって異なります)
これがUbuntu 16.04で私のために働いたものです。
Sudo apt autoremove --purge
Sudo apt autoremove
Sudo apt-get -f install
Sudo apt-get upgrade
すべてのカーネルをリストします。
dpkg --list 'linux-image*'
現在のカーネルを表示:
uname -r
すべてのカーネルをリストしますを除く現在のカーネル:
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-get -y purge
他のものをクリアする:
Sudo apt-get autoremove