Nowadays (18.04+) there are much more kernel flavours, and not all of them are well described. I see those ones:

  • generic, the default one, with possible -hwe branch;
  • virtual — same as generic but excluding modules-extra. Can have -hwe branch too;
  • kvm;
  • azure, aws, gcp, gke — targeting cloud providers;
  • oem — who is that?;
  • oracle — what Oracle systems?

So, how do I choose? For example, VPS probably doesn't need generic kernel, virtual would require way less valuable disk space, but maybe kvm is even better? What is the difference in the first place?

Wiki has a page on the subject (https://wiki.ubuntu.com/Kernel/Dev/Flavours), but it is way outdated.


1 Answer 1


Ubuntu Kernel Team has a dedicated web site that links to various reports on kernel packages and versions on Ubuntu. From there, see package versions to quickly view what kernels are currently maintained on available Ubuntu releases.

List of kernel flavours prepackaged for Ubuntu:

What have been listed here excludes some meta and transitional packages that are not found in the package versions, but otherwise found in the Ubuntu Packages Search. Each description has been adapted from the Ubuntu packages or alternatively description from the apt-cache show <package> command.

So, how do I choose?

Admittedly, there is no definite guide for choosing which kernels to use case by case.

End-users usually do not need to choose a different Linux kernel, for example, when installing Ubuntu Desktop in a virtual machine--it will just work. If the provided download images do not fulfill the needs, and instead user had to decide which kernels to use, then most likely the user needs to ask whomever that provides the service to run Ubuntu. They should have the answer.

What is the difference in the first place?

In one word: Optimization.

End-users usually do not go as far to find out what things are optimized for each and every kernels prepackaged for Ubuntu. There is no easy way to know what is the difference in the first place, unless the documentation was done properly. There is one place to find out: Changelog.

The changelogs are specific to each package and the currently supported releases. For example, the changelog for linux in bionic has noted more changes related to optimization for various platforms in general, whilst the changelog for linux-kvm in bionic has noted more changes related to the containers (OS-level virtualization).

TL;DR End-users do not need to choose and instead use whichever kernels included in the Ubuntu images. Else, look for someone with the knowledge--the service provider or whomever that is.

  • That's a really great answer, thank you! Commented Sep 15, 2019 at 19:56
  • 2
    On the subject of not choosing because vendor has put a thought in it: I have seen a lot of VPS running 300MB -generic kernel just because, I belive, only so much people actually know the difference. So, actually putting guidelines to check kernel to be used could help the community. Commented Sep 15, 2019 at 19:58
  • I guess the most effective way to know the difference is to download source packages and diff between the config files.
    – midenok
    Commented Sep 30, 2022 at 21:00
  • We're in 2023, and there's a weird one in the list: nvidia flavor. What does this mean? Is it for nvidia chipsets, or for anyone that has a nvidia graphics card? Commented Nov 8, 2023 at 21:22
  • The package says: "Linux kernel image for Nvidia systems." - so nvidia flavor is probably as was most likely, the first, chipsets. Commented Nov 8, 2023 at 21:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .