Ubuntu – How to roll-back or downgrade kernel on 14.04 (re: Wine stopped working)

14.04downgradekernelwine

With a recent update (I'm on 14.04 LTS), Wine suddenly stopped working. It turns out this has already been reported at WineHQ where the related bug reports are linked.

The advice there is to downgrade the kernel while awaiting the fix, referring users back to their distros on advice for doing the "downgrade". There are quite a few Q&As about this, but the 14.04 specific ones don't appear to meet this need. (And the "similar questions" in the sidebar are often quite old.)

How should the kernel be safely downgraded while not prohibiting automatic updates (to catch the fix which is surely coming soon!)?

The problematic update in my case appears to be this one:

2015-07-28 14:08:18 upgrade linux-libc-dev:amd64 3.13.0-58.97 3.13.0-59.98

Best Answer

When you first boot up your machine you should see the grub boot menu. At the grub boot menu choose the older Kernel you want to boot to - Once you have chosen the Kernel you want to keep and you have booted into it

uname -r

will tell you what kernel you are currently running on (measure twice cut once)

dpkg -l | grep linux-image
dpkg -l | grep linux-headers

will tell you what kernels/headers are saved on your system - I will also delete the headers - though they dont take up too much space i still purge them, why have them if I am deleting the kernel?

Be advised that it is important to NOT delete the Kernel you are running i.e uname -r Deleting these kernel and header entries will make your system unusable

then just delete the ones you dont want:

sudo apt-get purge 

I will copy the output of dpkg -l | grep linux-image to a text document so that it is an un-messy process and i can clearly choose what i want to delete vs save

an example of what the full command will look like:

sudo apt-get purge linux-image-3.16.0-41-generic linux-image-3.16.0-41-lowlatency linux-image-extra-3.16.0-41-generic 

sudo apt-get purge linux-headers-3.16.0-41 linux-headers-3.16.0-41-generic linux-headers-3.16.0-41-lowlatency 

an example of what the output of dpkg -l | grep linux-headers will look like:

jason@casa-wesella:~$ dpkg -l | grep linux-headers
ii  linux-headers-3.16.0-41                     3.16.0-41.57~14.04.1                    all          Header files related to Linux kernel version 3.16.0
ii  linux-headers-3.16.0-41-generic             3.16.0-41.57~14.04.1                    i386         Linux kernel headers for version 3.16.0 on 32 bit x86 SMP
ii  linux-headers-3.16.0-41-lowlatency          3.16.0-41.57~14.04.1                    i386         Linux kernel headers for version 3.16.0 on 32 bit x86 SMP
ii  linux-headers-3.16.0-43                     3.16.0-43.58~14.04.1                    all          Header files related to Linux kernel version 3.16.0
ii  linux-headers-3.16.0-43-generic             3.16.0-43.58~14.04.1                    i386         Linux kernel headers for version 3.16.0 on 32 bit x86 SMP
ii  linux-headers-3.16.0-43-lowlatency          3.16.0-43.58~14.04.1                    i386         Linux kernel headers for version 3.16.0 on 32 bit x86 SMP
ii  linux-headers-generic-lts-utopic            3.16.0.43.34                            i386         Generic Linux kernel headers
ii  linux-headers-lowlatency-lts-utopic         3.16.0.43.34                            i386         lowlatency Linux kernel headers
Related Question