ストックドッグ

KatoTakahiro。金融系の会社で働くSEが株やPython、その他諸々について書いています。サービスも運営してます→http://fmbrain.work

bootの容量がいっぱいなのに、古いカーネルが消せない問題(ubuntu 16.04)

bootの容量がいっぱいすぎて、新しいカーネルに更新できず、まわりまわって他のソフトウェアもアップデートできないという問題が発生しました。

試しにbootの容量を確認してみると...

df /boot
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/sda7         236876 224404         0 100% /boot

見事に100%!!
100%って何か気持ち良いですね!元気がでました。

だがしかしだけれども、何とかbootの容量を空けないと身動きができないので、古いカーネルを消そうとしました。

とりあえず、現在使用中のカーネルは...

uname -r
4.4.0-63-generic


そして、boot内にあるカーネルは...

dpkg --get-selections | grep linux-
linux-base					install
linux-firmware					install
linux-generic					install
linux-headers-4.4.0-57				install
linux-headers-4.4.0-57-generic			install
linux-headers-4.4.0-59				install
linux-headers-4.4.0-59-generic			install
linux-headers-4.4.0-62				install
linux-headers-4.4.0-62-generic			install
linux-headers-4.4.0-63				install
linux-headers-4.4.0-63-generic			install
linux-headers-4.4.0-64				install
linux-headers-4.4.0-64-generic			install
linux-headers-4.4.0-66				install
linux-headers-4.4.0-66-generic			install
linux-headers-4.4.0-70				install
linux-headers-4.4.0-70-generic			install
linux-headers-generic				install
linux-image-4.4.0-21-generic			deinstall
linux-image-4.4.0-53-generic			deinstall
linux-image-4.4.0-57-generic			install
linux-image-4.4.0-59-generic			install
linux-image-4.4.0-62-generic			install
linux-image-4.4.0-63-generic			install
linux-image-4.4.0-64-generic			install
linux-image-4.4.0-66-generic			install
linux-image-4.4.0-70-generic			install
linux-image-extra-4.4.0-21-generic		deinstall
linux-image-extra-4.4.0-53-generic		deinstall
linux-image-extra-4.4.0-57-generic		install
linux-image-extra-4.4.0-59-generic		install
linux-image-extra-4.4.0-62-generic		install
linux-image-extra-4.4.0-63-generic		install
linux-image-extra-4.4.0-64-generic		install
linux-image-extra-4.4.0-66-generic		install
linux-image-extra-4.4.0-70-generic		install
linux-image-generic				install
linux-libc-dev:amd64				install
linux-sound-base				install
syslinux-common					install
syslinux-legacy					install

放置っぷりが明らかに...
古いカーネルはたくさんあるし、最新のカーネルにアップデートもしてないし...

現在使用しているのが、4.4.0-63なので、それ以前のカーネルは削除しようと思います。

sudo apt-get autoremove --purge linux-image-4.4.0-57-generic

すると未解決の依存関係があるようで、削除できません。

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれません:
以下のパッケージには満たせない依存関係があります:
 linux-image-extra-4.4.0-57-generic : 依存: linux-image-4.4.0-57-generic しかし、インストールされようとしていません
 linux-image-extra-4.4.0-70-generic : 依存: linux-image-4.4.0-70-generic しかし、インストールされようとしていません
 linux-image-generic : 依存: linux-image-4.4.0-70-generic しかし、インストールされようとしていません
E: 未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法を明示してください)

'apt-get -f install'を実行したとしても、bootの容量がいっぱいなのでどのみちインストールはできません。

sudo apt-get -f install linux-image-4.4.0-70-generic


けっこうな詰みです。
古いカーネルを消そうとしても、未解決の依存関係が原因で消せない、にもかかわらず、その未解決の依存関係を修復するために最新のカーネルをインストールしようとしてもbootの容量がいっぱい...


ということで最終手段、依存関係を無視して古いカーネルを消すことにしました。

cd /boot
ls boot

一番古い57系のものを色々と削除。

sudo rm linux-image-4.4.0-57-generic


ここでもう一度容量を確認。

df /boot

Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/sda7         236876 184731     35608  84% /boot

無事にbootを整理できました。

以上終わり!