私はUbuntu 14.04を使用していますが、削除したい古いカーネルがたくさんあります。
この質問 はそれらを見つけて削除するのに役立ちますが、問題があります:
dpkg
は、単一のカーネルを削除するたびに、/etc/kernel/postinst.d/zz-update-grub
およびupdate-initramfs
を実行します現在残っているすべてのカーネル。
その結果、アンインストールには永遠に時間がかかります!
すべてのパッケージを一度に削除し、最後にupdate-grub
を1回実行したい。不要な手順を無効にするにはどうすればよいですか?
(unattended-upgrades
を使用します。おそらく、それがこの状況に陥った理由です。)
ここに私がやったことがあります:
ファイル/usr/sbin/grub-mkconfig
を(ルートとして)編集し、次の行を上部に追加します:(*)
exit 0
次に、リンクされた質問で提案されているように、apt-get purge
またはdpkg -P
を実行して、不要なパッケージを削除します。たとえば、私は走った:
Sudo apt-get purge $(dpkg --list | grep -E 'linux-(image|signed-image|headers)' | awk '{ print $2 }' | sort -V | grep -vF "$(uname -r | grep -o '[0-9.-]*' | sed 's/-$//')")
(緊張を感じますか?echo
を先頭に置いて、実際に実行する前に、パージする内容を確認します。)
その後、忘れないでくださいgrub-mkconfig
を再度編集して行を削除します:
exit 0
そして最後に実行します:
Sudo update-grub
ブートローダーを最新の状態にします。
このプロセスは、30分以内に11GBのスペースを回復しました。
また、今後--unattended-upgrades
がカーネルパッケージを再構築するのを防ぐために この優れた提案 に従いました。
(*)
/usr/sbin/dkms
と/usr/sbin/extlinux-update
と/usr/sbin/update-initramfs
をexit 0
トリックを使用して無効化することも検討しましたが、これらはそれほど時間を節約できず、/lib/modules/[kernel_version]/
と/boot/initrd.img-[kernel_version]
にファイルが残っていたので、本当に良いオプションではありませんでした。