How to get rid of old kernels?

Hi, geekos!

For some unknown reasons I’ve several kernel versions installed and I’d like to get rid of them.

e.g.:
$ rpm -qa | grep kernel
texlive-l3kernel-doc-2013.81.svn_4469svn29409-10.5.3.noarch
kernel-xen-devel-3.7.10-1.28.1.x86_64
kernel-desktop-3.7.10-1.28.1.x86_64
kernel-desktop-devel-3.7.10-1.28.1.x86_64
kernel-firmware-20130714git-2.21.1.noarch
texlive-l3kernel-2013.81.svn_4469svn29409-10.5.3.noarch
kernel-xen-devel-3.11.10-21.1.x86_64
kernel-desktop-3.11.10-21.1.x86_64
kernel-devel-3.7.10-1.28.1.noarch
kernel-desktop-devel-3.11.10-21.1.x86_64
kernel-desktop-3.11.10-7.1.x86_64
kernel-desktop-3.11.6-4.1.x86_64
kernel-default-devel-3.7.10-1.28.1.x86_64
kernel-devel-3.11.10-21.1.noarch
kernel-default-devel-3.11.10-21.1.x86_64
kernel-desktop-3.11.10-11.1.x86_64
kernel-desktop-3.11.10-17.2.x86_64

$ ls -l /lib/modules/
total 224
drwxr-xr-x 2 root root 4096 Jul 29 2013 3.10.1-3.gabd0978-default
drwxr-xr-x 3 root root 4096 Aug 5 2013 3.10.1-3.gabd0978-desktop
drwxr-xr-x 2 root root 4096 Jul 29 2013 3.10.1-3.gabd0978-xen
drwxr-xr-x 2 root root 4096 Jul 29 2013 3.10.1-3.gb92a291-default
drwxr-xr-x 3 root root 4096 Aug 5 2013 3.10.1-3.gb92a291-desktop
drwxr-xr-x 2 root root 4096 Aug 5 2013 3.10.1-3.gb92a291-xen
drwxr-xr-x 2 root root 4096 Aug 5 2013 3.10.3-1.gec6c1d9-default
drwxr-xr-x 3 root root 4096 Aug 5 2013 3.10.3-1.gec6c1d9-desktop
drwxr-xr-x 2 root root 4096 Aug 5 2013 3.10.3-1.gec6c1d9-xen
drwxr-xr-x 2 root root 4096 Aug 14 2013 3.10.4-1.gd58862b-xen
drwxr-xr-x 2 root root 4096 Aug 15 2013 3.10.5-1.g4e0ffc2-xen
drwxr-xr-x 2 root root 4096 Aug 22 2013 3.10.6-1.gbd99dce-xen
drwxr-xr-x 2 root root 4096 Sep 9 2013 3.10.7-1.g771dec3-xen
drwxr-xr-x 2 root root 4096 Nov 18 2013 3.10.9-1.ga0841e3-xen
drwxr-xr-x 2 root root 4096 Sep 9 2013 3.11.0-2.g0a1c41f-xen
drwxr-xr-x 2 root root 4096 Aug 5 2013 3.11.0-rc2-3.g15eacb9-default
drwxr-xr-x 3 root root 4096 Jan 15 2014 3.11.0-rc2-3.g15eacb9-desktop
drwxr-xr-x 2 root root 4096 Aug 6 2013 3.11.0-rc3-1.ge924b54-default
drwxr-xr-x 2 root root 4096 Aug 12 2013 3.11.0-rc4-1.g38e9077-default
drwxr-xr-x 3 root root 4096 Jan 15 2014 3.11.0-rc4-1.g38e9077-desktop
drwxr-xr-x 2 root root 4096 Aug 14 2013 3.11.0-rc4-2.g01695c8-default
drwxr-xr-x 2 root root 4096 Aug 15 2013 3.11.0-rc4-4.g448a93c-default
drwxr-xr-x 3 root root 4096 Jan 15 2014 3.11.0-rc4-4.g448a93c-desktop
drwxr-xr-x 2 root root 4096 Aug 17 2013 3.11.0-rc5-1.g25b5917-default
drwxr-xr-x 2 root root 4096 Aug 17 2013 3.11.0-rc5-1.g25b5917-desktop
drwxr-xr-x 2 root root 4096 Aug 24 2013 3.11.0-rc5-2.gadcd98b-default
drwxr-xr-x 2 root root 4096 Aug 24 2013 3.11.0-rc5-2.gadcd98b-xen
drwxr-xr-x 2 root root 4096 Oct 1 14:46 3.11.10-11-default
drwxr-xr-x 6 root root 4096 Oct 1 15:00 3.11.10-11-desktop
drwxr-xr-x 2 root root 4096 Oct 1 14:47 3.11.10-11-xen
drwxr-xr-x 2 root root 4096 Oct 1 14:46 3.11.10-17-default
drwxr-xr-x 6 root root 4096 Oct 1 15:00 3.11.10-17-desktop
drwxr-xr-x 2 root root 4096 Oct 1 14:47 3.11.10-17-xen
drwxr-xr-x 2 root root 4096 Sep 4 16:42 3.11.10-21-default
drwxr-xr-x 6 root root 4096 Sep 4 16:53 3.11.10-21-desktop
drwxr-xr-x 2 root root 4096 Sep 4 16:42 3.11.10-21-xen
drwxr-xr-x 2 root root 4096 Oct 1 14:46 3.11.10-7-default
drwxr-xr-x 6 root root 4096 Oct 1 14:59 3.11.10-7-desktop
drwxr-xr-x 2 root root 4096 Oct 1 14:47 3.11.10-7-xen
drwxr-xr-x 6 root root 4096 Oct 1 15:00 3.11.6-4-desktop
drwxr-xr-x 2 root root 4096 Nov 18 2013 3.12.0-1.ge8fa6b4-default
drwxr-xr-x 4 root root 4096 Jan 15 2014 3.12.0-1.ge8fa6b4-desktop
drwxr-xr-x 2 root root 4096 Nov 18 2013 3.12.0-1.ge8fa6b4-xen
drwxr-xr-x 3 root root 4096 Aug 24 2013 3.7.10-1.11-desktop
drwxr-xr-x 2 root root 4096 Feb 17 2014 3.7.10-1.16-default
drwxr-xr-x 4 root root 4096 Feb 25 2014 3.7.10-1.16-desktop
drwxr-xr-x 2 root root 4096 Feb 17 2014 3.7.10-1.16-xen
drwxr-xr-x 2 root root 4096 Feb 24 2014 3.7.10-1.24-default
drwxr-xr-x 4 root root 4096 Feb 25 2014 3.7.10-1.24-desktop
drwxr-xr-x 2 root root 4096 Feb 24 2014 3.7.10-1.24-xen
drwxr-xr-x 2 root root 4096 Feb 17 2014 3.7.10-1.28-default
drwxr-xr-x 5 root root 4096 Sep 4 16:41 3.7.10-1.28-desktop
drwxr-xr-x 2 root root 4096 Feb 17 2014 3.7.10-1.28-xen
drwxr-xr-x 2 root root 4096 Jul 22 2013 3.9.4-1.g51bf0ff-default
drwxr-xr-x 3 root root 4096 Aug 5 2013 3.9.4-1.g51bf0ff-desktop
drwxr-xr-x 2 root root 4096 Jul 22 2013 3.9.4-1.g51bf0ff-xen

I’ve already tried to run:

touch /boot/do_purge_kernels && systemctl start purge-kernels

But I got:

Job for purge-kernels.service failed. See ‘systemctl status purge-kernels.service’ and ‘journalctl -xn’ for details.

journalctl -xn

– Logs begin at Fri 2014-09-05 18:39:25 BRT, end at Fri 2014-10-03 18:01:55 BRT. –
Oct 03 18:01:43 AL.mattos.eng.br su[8926]: pam_unix(su-l:session): session opened for user root by leonardo(uid=0)
Oct 03 18:01:43 AL.mattos.eng.br su[8926]: pam_systemd(su-l:session): pam_putenv: delete non-existent entry; XDG_RUNTIME_DIR
Oct 03 18:01:47 AL.mattos.eng.br systemd[1]: Starting Purge old kernels…
– Subject: Unit purge-kernels.service has begun with start-up
– Defined-By: systemd
– Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

– Unit purge-kernels.service has begun starting up.
Oct 03 18:01:55 AL.mattos.eng.br purge-kernels[8979]: error: Failed dependencies:
Oct 03 18:01:55 AL.mattos.eng.br purge-kernels[8979]: bbswitch-kmp is needed by (installed) bbswitch-0.8-17.1.x86_64
Oct 03 18:01:55 AL.mattos.eng.br purge-kernels[8979]: bbswitch-kmp is needed by (installed) bbswitch-0.8-17.1.x86_64
Oct 03 18:01:55 AL.mattos.eng.br purge-kernels[8979]: /sbin/purge-kernels: giving up.
Oct 03 18:01:55 AL.mattos.eng.br systemd[1]: purge-kernels.service: main process exited, code=exited, status=1/FAILURE
Oct 03 18:01:55 AL.mattos.eng.br systemd[1]: Failed to start Purge old kernels.
– Subject: Unit purge-kernels.service has failed
– Defined-By: systemd
– Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
– Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/be02cf6855d2428ba40df7e9d022f03d

– Unit purge-kernels.service has failed.

– The result is failed.
Oct 03 18:01:55 AL.mattos.eng.br systemd[1]: Unit purge-kernels.service entered failed state.

I’m using openSUSE 13.1.

How should I proceed?

Thanks in advance,
LMNM.

From your list of kernels, just run

zypper rm *kernelname1 kernelname2 kernelname3 *

And so on, itemizing each kernel you want to remove.

That should remove the kernel(s) from your system, package management should do all the housekeeping.

HTH,
TSU

Or click on “Versions” in YaST (below the package list) to see all available and installed versions, and be able to install/uninstall specific ones.

Btw, your purge-kernels problem is caused by this:

Oct 03 18:01:55 AL.mattos.eng.br purge-kernels[8979]: error: Failed dependencies:
Oct 03 18:01:55 AL.mattos.eng.br purge-kernels[8979]: bbswitch-kmp is needed by (installed) bbswitch-0.8-17.1.x86_64
Oct 03 18:01:55 AL.mattos.eng.br purge-kernels[8979]: bbswitch-kmp is needed by (installed) bbswitch-0.8-17.1.x86_64
Oct 03 18:01:55 AL.mattos.eng.br purge-kernels[8979]: /sbin/purge-kernels: giving up.

It apparently cannot uninstall the kernels because the installed package bbswitch requires a bbswitch-kmp which would have to be removed as well. This is only available for kernel 3.11.6 AFAICS, so it requires kernel 3.11.6, you would have to remove bbswitch to “fix” this.
And you should probably file a bug report about this:
http://bugzilla.opensuse.org (same password/username as here)