How do I upgrade kernel to 4.4.0-xx ?

May 1, 2016 1.4k views
Linux Basics Networking

I have built a droplet with Ubuntu-14.04 and immediately upgrade it to a pre-release version of Ubuntu-16.04. Everything seemed working fine, and I installed and set up several servers (apache2, postfix, dovecot, ....) but the kernel remained at 3.17.0-71.

Since the official 16.04 was released, I did "apt-get dist-upgrade," which has installed the kept-back kernels along with many other packages. However, it has made no changes in terms of the kernel version to be booted.

Shortly, I found that on a digitalocean droplet, the kernel should be selected in the control panel. I did select Ubuntu-16.04 kernel-4.4.0-21 in the menu and started the droplet but it wouldn't respond. "Console Access" revealed that the droplet started up but had no ethN I/F.

With putting back the kernel to Ubuntu-14.04 kernel-3.17.0-71, everything has started working properly.

Are there any ways to work around this problem around the missing ethN I/F? Or must I port everything to a newly created droplet?

1 comment
  • I should have added this comment much earlier....

    I didn't have the guts to manipulate the Ethernet I/F after upgrading my kernel to 4.4.0, or to re-install Postfix/Dovecot/Mailman to a newly installed 16.04, and did nothing until recently. One day, just after a routine backing up, I ventured to try "DigitalOcean GrubLoader v0.2 (20160714) Ubuntu" at the control panel. It worked fine! Although it's not exactly the same with the brand-new installation (that is, it's not "internally managed"), it uses the latest kernel which is installed with "apt upgrade."

    I did this one month ago, and the new drop let has experienced kernel updates twice without any troubles. I am very pleased with the mechanism, and my only complaint is that it's well hidden :-)

4 Answers

Hi, after you changed the kernel to 4.4, you need to change your network interface name in /etc/network/interface as the kernel change eth0 to something like ens3 (like my case - confirm it with ip addr show)
Then restart networking service you should be fine :)

  • That worked! As I use an international keyboard and the web console doesn't allow almost anything, I had to switch back to kernel 3.3, connect though SSH and edit /etc/network/interfaces adding the same lines as eth0 for ens3. Switch to 4.4 again and voila! Everything worked. Thank you very much!

Your best option at this point would be to port your applications to a new server running Ubuntu 16.04. This will ultimately save you time, and be the most surefire way to get up and running on the latest kernel.

  • Thank you for the reply. I have been weighing the difficulties in porting all the servers and in fixing the network issue of control-panel controlled 16.04 kernel, and now I have come to think that the latter would be much more difficult.

Droplets originally based on 14.04 still use our older kernel model where the kernel is managed outside of the Droplets themselves. This article explains how this works and shows how to update your kernel:

The key is to make sure the version in the panel and the Droplet match. You can check the kernels available to your Droplet by running:

  • ls /boot/vmlinuz*

So if you selected "Ubuntu-16.04 kernel-4.4.0-21" in the control panel, you'll need to have this in the output:


If you're still running into issues, please go ahead and open a support ticket so the team can take a closer look.

Note: For Droplets based on 16.04, the kernels no longer need to be managed through the control panel. So depending on your use case, it might just be better to move to a new Droplet rather than update in place.

by Adam LaGreca
Updating the kernel on your DigitalOcean Droplet is a straight forward process that differs slightly based on the Droplet's operating system. In this guide, we'll walk you through the process of updating your kernels for DigitalOcean Droplets.
  • Thank you for the comprehensive answer. I believe that following your suggestion I had upgraded the kernel without knowing the digitalocean specific mechanism, and my problem was that the network I/F (eth0) had not been created. Thanks to your explanation, I now know that the issue has been caused by the control-panel function, and there will be no easy way to work around it. Thanks, again.

Have another answer? Share your knowledge.