How to clean up /boot?

Ralf Mardorf silver.bullet at
Wed Jan 11 09:54:01 UTC 2017

On Wed, 11 Jan 2017 10:45:43 +0100, Ralf Mardorf wrote:
>On Wed, 11 Jan 2017 09:05:54 +0100, Sascha Manns wrote:
>>On 08.01.2017 17:18, Peng Yu wrote:  
>>> It doesn't work.    
>>Maybe this one works for you.
>>1.) create a new textfile in a editor and place it in ~/home (eg vim
>>2.) Fill it with that:
>>dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed
>>"s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^
>>]*\).*/\1/;/[0-9]/!d' | tee to_removed
>>cat to_be_removed | xargs sudo apt-get -y purge
>>rm to_be_removed
>>It deletes all kernels in /boot and holds the last one.  
>_warning_ this script is dangerous!
>Firs of all, regarding to the typo and the fact that a novice unlikely
>will be able to fix the line wrapping issues, the script does nothing
>at all. However, if you fix the script, get rid of the wrapped lines
>and edit "tee to_removed" to "tee to_be_removed" the script could
>automatically purge all kernels and render the install unbootable.
>For demonstration I replaced "-y" by "--dry-run", then I didn't boot
>Ubuntu, but run it in a container, so when "uname -r" does show the
>running kernel, it's a kernel that is not a kernel installed by Ubuntu,
>ergo what ever sed should do (I didn't check if it's correct, but
>assuming it should be), "uname -r" not necessarily does keeps the
>latest kernel. If it should keep a kernel, than the kernel that is
>running. Even if you don't run Ubuntu in a container, it might not keep
>the latest kernel. Such a script at least should first show what it
>will do and than require interaction, so at least the "-y" option
>should be removed.
>[root at archlinux rocketmouse]# systemd-nspawn -qD /mnt/moonstudio 
>[root at moonstudio ~]# lsb_release -d
>Description:	Ubuntu 16.04.1 LTS
>[root at moonstudio ~]# ls -hl /boot/vmlinuz-*
>-rw------- 1 root root 6.8M Jan  7
>03:36 /boot/vmlinuz-4.4.0-59-lowlatency lrwxrwxrwx 1 root root   27
>Jan 10 17:44 /boot/vmlinuz-lowlatency -> vmlinuz-4.4.0-59-lowlatency
>[root at moonstudio ~]# uname -r 4.8.13-1-ARCH
>[root at moonstudio ~]# cd /home/weremouse/Desktop/
>[root at moonstudio Desktop]# cat 
>dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed
>"s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^
>]*\).*/\1/;/[0-9]/!d' | tee to_be_removed
>cat to_be_removed | xargs sudo apt-get --dry-run purge
>[root at moonstudio Desktop]# ./ 
>Reading package lists... Done
>Building dependency tree       
>Reading state information... Done
>The following packages will be REMOVED:
>  linux-headers-4.4.0-59* linux-headers-4.4.0-59-lowlatency*
> linux-headers-lowlatency* linux-image-4.4.0-59-lowlatency*
> linux-image-lowlatency* linux-lowlatency*
>0 upgraded, 0 newly installed, 6 to remove and 0 not upgraded.
>Purg linux-lowlatency []
>Purg linux-headers-lowlatency []
>Purg linux-headers-4.4.0-59-lowlatency [4.4.0-59.80]
>Purg linux-headers-4.4.0-59 [4.4.0-59.80]
>Purg linux-image-lowlatency []
>Purg linux-image-4.4.0-59-lowlatency [4.4.0-59.80]
>[root at moonstudio Desktop]#
>Btw. does the script remove modules build manually with dkms, too?

PS: Sascha also forgot to mention to make the script executable and
another user recommended to rm the kernels. Don't! However, follow Nils'
advice .

More information about the ubuntu-users mailing list