removing old kernel
Last updated
Was this helpful?
Last updated
Was this helpful?
When upgrading ubuntu, sometimes it failed because of insufficient disk on boot. This could be caused by too many kernel installed on the machine.
Command to remove old kernel from
dpkg --list | grep linux-image | awk '{ print $2 }' | sort -V | sed -n '/'uname -r
'/q;p' | xargs sudo apt-get -y purgenation (remember, |
uses the output of the previous command as the input to the next)
dpkg --list
lists all installed packages
grep linux-image
looks for the installed linux images
awk '{ print $2 }'
just outputs the 2nd column (which is the package name)
sort -V
puts the items in order by version number
sed -n '/'`uname -r`'/q;p'
prints the lines before the current kernel
xargs sudo apt-get -y purge
purges the found kernels
Unwinding the sed
invocation:
-n
tells sed
to be quiet
`uname -r`
outputs the current installed kernel release - we include it in backticks so that the output is includes as part of the command (you might also see this as $(uname -r)
/something/q
says stop when you match 'something' (in this case, something is output of uname -r
) - the /
surround a regular expression
p
is print
the ;
is the command separtor, so /something/q;p
says quit when you match something, else print
altogether, sed -n '/'`uname -r`'/q;p'
is print the lines until it matches with the current kernel name.