Q: Is there a way I can check to see a Linux system has a newer kernel installed? For example, if a system has installed a new kernel, but has not yet rebooted to load it?
A: Yes, you can check the currently running kernel as well as which kernels are installed. This will give you version numbers and you can see if there is an installed version higher than the running version.
Check of Current Kernel Version
To check which kernel is currently running on your system, use the uname command with the “release” or -r switch. This will output the kernel version (release) number.
uname -r
Sample output:
$ uname -r 4.15.0-50-generic
List All Installed Kernel Versions
Now that you know which kernel version you are currently running, you can check the installed versions and see if there are any later releases.
For Debian based systems (Ubuntu, Mint, etc..) you can use dpkg, then use grep to filter the results and only show the kernel (linux-image).
$ dpkg --list | grep linux-image ii linux-image-4.15.0-29-generic 4.15.0-29.31 ii linux-image-4.15.0-50-generic 4.15.0-50.54 ii linux-image-generic 4.15.0.50.52 ... OUTPUT TRUNCATED ...
For RedHat or RPM based systems (CentOS, Fedora, etc..) you can query the rpm database using the rpm command.
$ rpm -q kernel kernel-5.0.10-300.fc30.x86_64 kernel-5.0.13-300.fc30.x86_64 kernel-5.0.16-300.fc30.x86_64
You can also use YUM and DNF to check installed kernels.
$ yum list kernel Installed Packages kernel.x86_64 5.0.10-300.fc30 @updates kernel.x86_64 5.0.13-300.fc30 @updates kernel.x86_64 5.0.16-300.fc30 @updates