Ubuntu Kernel Upgrade
This addendum to the Paragon Insights (formerly HealthBot) Installation Guide is for those who need to upgrade the kernel version of their Ubuntu 16.04 server to 4.4.19 or later to meet the requirements for Paragon Insights installation. Kernel upgrade is required for both single and multinode installation. This document assumes that you are familiar with apt, the software packaging system on Ubuntu.
For those of you who would prefer to watch the commands get executed:
The kernel upgrade process involves the following steps:
Confirm current kernel version
Update the apt repositories on the server.
Upgrade existing software packages to the latest versions.
Find and install latest kernel
Reboot to load new kernel
Verify that the system is running on the new kernel
To perform a kernel upgrade, you must be logged in to your server
as the root user or be able to obtain root privileges using the sudo -s
command. The commands in the rest of the procedure
assume that you are logged in as root or have issued the sudo
-s
command.
To confirm the existing kernel versionapt repositories:
root@server# uname -msr Linux 4.4.0-178-generic x86_64
Since the existing kernel is below the required version, we must upgrade the kernel on this server.
Begin the kernel upgrade procedure by updating the apt repositories.
To update apt repositories:
root@server# apt update root@pete:/home/probbins# apt update Get:1 http://repo.juniper.net/Ubuntu/stable/JNPR/xenial jnpr InRelease [3,166 B] Hit:2 http://us.archive.ubuntu.com/ubuntu xenial InRelease Get:3 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB] Get:5 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB] Hit:4 https://packages.cloud.google.com/apt kubernetes-xenial InRelease Get:6 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [863 kB] Get:7 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB] Hit:8 https://download.docker.com/linux/ubuntu xenial InRelease Get:9 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [1,140 kB] Get:10 http://security.ubuntu.com/ubuntu xenial-security/main i386 Packages [659 kB] Get:11 http://us.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [918 kB] Get:12 http://security.ubuntu.com/ubuntu xenial-security/main Translation-en [324 kB] Get:13 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [797 kB] Get:14 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [491 kB] Get:15 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe i386 Packages [721 kB] Get:16 http://security.ubuntu.com/ubuntu xenial-security/universe i386 Packages [422 kB] Get:17 http://security.ubuntu.com/ubuntu xenial-security/universe Translation-en [201 kB] Get:18 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [6,092 B] Get:19 http://security.ubuntu.com/ubuntu xenial-security/multiverse i386 Packages [6,248 B] Fetched 6,878 kB in 15s (437 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 48 packages can be upgraded. Run 'apt list --upgradable' to see them. W: Target Packages (stable/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:55 and /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list:1 W: Target Packages (stable/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:55 and /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list:1 W: Target Translations (stable/i18n/Translation-en_US) is configured multiple times in /etc/apt/sources.list:55 and /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list:1 W: Target Translations (stable/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:55 and /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list:1 N: Skipping acquire of configured file 'stable/binary-i386/Packages' as repository 'https://download.docker.com/linux/ubuntu xenial InRelease' doesn't support architecture 'i386' W: Target Packages (stable/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:55 and /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list:1 W: Target Packages (stable/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:55 and /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list:1 W: Target Translations (stable/i18n/Translation-en_US) is configured multiple times in /etc/apt/sources.list:55 and /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list:1 W: Target Translations (stable/i18n/Translation-en) is configured multiple times in /etc/apt/sources.list:55 and /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list:1
If you examine the output above, you’ll see that 48 packages are eligible for upgrade.
To upgrade existing software packages, including kernel upgrades:
root@server# apt upgrade -y Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: linux-headers-4.4.0-174 linux-headers-4.4.0-174-generic linux-image-4.4.0-174-generic linux-modules-4.4.0-174-generic linux-modules-extra-4.4.0-174-generic Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: linux-headers-4.4.0-178 linux-headers-4.4.0-178-generic linux-image-4.4.0-178-generic linux-modules-4.4.0-178-generic linux-modules-extra-4.4.0-178-generic The following packages will be upgraded: apport distro-info-data git git-man kubeadm kubectl kubelet libcups2 libgd3 libglib2.0-0 libglib2.0-data libicu55 libldap-2.4-2 libpam-systemd libprocps4 libpulse0 libpython2.7-minimal libpython2.7-stdlib libpython3.5 libpython3.5-dev libpython3.5-minimal libpython3.5-stdlib libsystemd0 libudev1 linux-base linux-firmware linux-generic linux-headers-generic linux-image-generic linux-libc-dev procps python2.7 python2.7-minimal python3-apport python3-distupgrade python3-problem-report python3.5 python3.5-dev python3.5-minimal sosreport systemd systemd-sysv ubuntu-release-upgrader-core udev vim vim-common vim-runtime vim-tiny 48 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 228 MB of archives. After this operation, 311 MB of additional disk space will be used. Get:1 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 systemd-sysv amd64 229-4ubuntu21.28 [12.3 kB] Get:2 http://security.ubuntu.com/ubuntu xenial-security/main amd64 libpulse0 amd64 1:8.0-0ubuntu3.12 [253 kB] Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpam-systemd amd64 229-4ubuntu21.28 [115 kB] Get:7 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libsystemd0 amd64 229-4ubuntu21.28 [206 kB] Get:4 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubelet amd64 1.18.2-00 [19.5 MB] Get:8 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 systemd amd64 229-4ubuntu21.28 [3,639 kB] Get:5 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubectl amd64 1.18.2-00 [8,825 kB] Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.18.2-00 [8,162 kB] Get:9 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 udev amd64 229-4ubuntu21.28 [993 kB] Get:10 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libudev1 amd64 229-4ubuntu21.28 [54.8 kB] Get:11 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libprocps4 amd64 2:3.3.10-4ubuntu2.5 [32.9 kB] Get:12 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 procps amd64 2:3.3.10-4ubuntu2.5 [222 kB] Get:13 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3.5-dev amd64 3.5.2-2ubuntu0~16.04.10 [413 kB] Get:14 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-dev amd64 3.5.2-2ubuntu0~16.04.10 [37.3 MB] Get:15 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5 amd64 3.5.2-2ubuntu0~16.04.10 [1,360 kB] Get:16 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3.5 amd64 3.5.2-2ubuntu0~16.04.10 [165 kB] Get:17 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-stdlib amd64 3.5.2-2ubuntu0~16.04.10 [2,135 kB] Get:18 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3.5-minimal amd64 3.5.2-2ubuntu0~16.04.10 [1,597 kB] Get:19 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython3.5-minimal amd64 3.5.2-2ubuntu0~16.04.10 [525 kB] Get:20 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libglib2.0-0 amd64 2.48.2-0ubuntu4.6 [1,120 kB] Get:21 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python2.7 amd64 2.7.12-1ubuntu0~16.04.11 [224 kB] Get:22 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-stdlib amd64 2.7.12-1ubuntu0~16.04.11 [1,884 kB] Get:23 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python2.7-minimal amd64 2.7.12-1ubuntu0~16.04.11 [1,261 kB] Get:24 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libpython2.7-minimal amd64 2.7.12-1ubuntu0~16.04.11 [338 kB] Get:25 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 distro-info-data all 0.28ubuntu0.14 [4,674 B] Get:26 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-base all 4.5ubuntu1.1~16.04.1 [18.1 kB] Get:27 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim amd64 2:7.4.1689-3ubuntu1.4 [1,036 kB] Get:28 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim-tiny amd64 2:7.4.1689-3ubuntu1.4 [446 kB] Get:29 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim-runtime all 2:7.4.1689-3ubuntu1.4 [5,169 kB] Get:30 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 vim-common amd64 2:7.4.1689-3ubuntu1.4 [103 kB] Get:31 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libglib2.0-data all 2.48.2-0ubuntu4.6 [131 kB] Get:32 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libicu55 amd64 55.1-7ubuntu0.5 [7,650 kB] Get:33 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libldap-2.4-2 amd64 2.4.42+dfsg-2ubuntu3.8 [159 kB] Get:34 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 ubuntu-release-upgrader-core all 1:16.04.30 [30.5 kB] Get:35 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-distupgrade all 1:16.04.30 [104 kB] Get:36 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-problem-report all 2.20.1-0ubuntu2.23 [10.5 kB] Get:37 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python3-apport all 2.20.1-0ubuntu2.23 [80.1 kB] Get:38 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 apport all 2.20.1-0ubuntu2.23 [121 kB] Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst Searching for splash image ... none found, skipping ... done
user@server# apt install --install-recommends linux-generic-hwe-16.04 Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: linux-headers-4.4.0-174 linux-headers-4.4.0-174-generic linux-image-4.4.0-174-generic linux-modules-4.4.0-174-generic linux-modules-extra-4.4.0-174-generic Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: linux-headers-4.15.0-99 linux-headers-4.15.0-99-generic linux-headers-generic-hwe-16.04 linux-image-4.15.0-99-generic linux-image-generic-hwe-16.04 linux-modules-4.15.0-99-generic linux-modules-extra-4.15.0-99-generic thermald Suggested packages: fdutils linux-hwe-tools The following NEW packages will be installed: linux-generic-hwe-16.04 linux-headers-4.15.0-99 linux-headers-4.15.0-99-generic linux-headers-generic-hwe-16.04 Found kernel: /vmlinuz-4.13.0-26-generic Found kernel: /vmlinuz-4.4.19-040419-generic Found kernel: /vmlinuz-4.4.0-178-generic Found kernel: /vmlinuz-4.4.0-174-generic Replacing config file /run/grub/menu.lst with new version Updating /boot/grub/menu.lst ... done /etc/kernel/postinst.d/zz-update-grub: Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.15.0-99-generic Found initrd image: /boot/initrd.img-4.15.0-99-generic Found initrd image: /boot/initrd.img-4.4.19-040419-generic Found linux image: /boot/vmlinuz-4.4.0-178-generic Found initrd image: /boot/initrd.img-4.4.0-178-generic Found linux image: /boot/vmlinuz-4.4.0-174-generic Found initrd image: /boot/initrd.img-4.4.0-174-generic done Processing triggers for dbus (1.10.6-1ubuntu3.5) ... Processing triggers for systemd (229-4ubuntu21.28) ... Processing triggers for ureadahead (0.100.0-19.1) ...
As you can see from the output above, multiple kernels were available on this server. The
apt install
command with the–install-recommends
flag found the available kernels and prepared the grub menu so that you can choose which kernel to boot from at boot time.
The new kernel is now available but not running. To load the new kernel, you must reboot the server.
user@server# reboot
After reboot, confirm the running kernel.
user@server# uname -msr Linux 4.15.0-99-generic x86_64