I Checked My Linux Kernel So Many Ways. Here’s What Actually Works.

I’m Kayla. I break things on my laptops way more than I should. Wi-Fi acts weird, NVIDIA throws a fit, Docker pouts. When that happens, the first thing I check is my kernel. Sounds nerdy, but it’s simple. And kind of fun, in a geeky way. If you’re brand-new, the straightforward guide on checking your kernel version in Linux walks through the basics.

Below are the ways I use, with real outputs from my own machines. I’ll tell you what I like, what bugs me, and when each one shines.
For a deeper dive into how different kernels behave across popular distributions, check out the practical reviews on Desktop Linux Reviews.
I first published an extended walkthrough titled I checked my Linux kernel so many ways—here’s what actually works over on Desktop Linux Reviews, if you want the original reference.


The quick one I use 10 times a day: uname -r

When I’m in a hurry, I run this. It’s short and sweet.

Examples from my gear:

  • My ThinkPad T14 (Ubuntu 22.04, HWE): 6.5.0-41-generic
  • Home server (Debian 12): 6.1.0-25-amd64
  • Raspberry Pi 4 (Raspberry Pi OS 32-bit): 5.15.84-v7l+

What I like:

  • Fast. Clear. No fluff.

What bugs me:

  • It shows the running kernel only. Not the ones installed.

Tip: If you’re in a container, this shows the host kernel. That can trick you.


The chatty one: uname -a

This one tells more. Sometimes too much. But it helps when support asks for “full details.”

On my Fedora 40 laptop:

  • Linux kayla-fedora 6.8.12-300.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC ... x86_64 GNU/Linux

What I like:

  • Good for copy/paste in bug reports.

What bugs me:

  • It’s noisy. I don’t always need the extra bits.

The friendly status screen: hostnamectl

Nice when I want system info in one go. Feels tidy.

On my WSL2 Ubuntu:

  • Kernel: 5.15.153.1-microsoft-standard-WSL2
  • Hostname: shows my WSL name
  • OS: Ubuntu 22.04.5 LTS

What I like:

  • Easy to read. Good for screenshots.

What bugs me:

  • On tiny servers, it’s overkill.

Need a refresher that also covers confirming your distro’s version? The concise How-To Geek guide to checking the Linux kernel and OS version pairs nicely with hostnamectl.


The file way: /proc reads

Plain files. No mystery. I use these when uname acts odd, which is rare.

  • cat /proc/sys/kernel/osrelease → same as uname -r
  • cat /proc/version → kernel plus build info

On my CentOS 7 droplet:

  • /proc/sys/kernel/osrelease3.10.0-1160.106.1.el7.x86_64

What I like:

  • Works even in weird shells.

What bugs me:

  • Easy to forget the exact path. I still mix it up.

Listing what’s installed (not just running)

Sometimes I update, reboot, and… the old kernel still boots. Grr. So I check what’s installed.

Debian/Ubuntu:

  • dpkg -l | grep linux-image
  • Sample lines on my server:
    • ii linux-image-6.1.0-25-amd64
    • ii linux-image-amd64

Fedora/RHEL/CentOS:

  • rpm -qa kernel
  • My Fedora box shows:
    • kernel-6.8.12-300.fc40.x86_64
    • kernel-6.8.9-300.fc40.x86_64

Arch:

  • pacman -Q | grep ^linux
  • On my Arch test laptop:
    • linux 6.10.7.arch1-1

What I like:

  • I can see old kernels and clean them up.

What bugs me:

  • The package names change a bit per distro.

If you're specifically on Ubuntu and want a quick refresher on checking the OS version alongside the kernel, my concise guide Ubuntu: how I check my version & what I actually use covers that in detail.

Bonus: What’s on disk in /boot

  • ls /boot | grep vmlinuz
  • On Ubuntu I’ve seen: vmlinuz-6.5.0-41-generic and a backup.

A tiny “gotcha” that bit me

Containers lie about the kernel. Well, not on purpose. They just show the host kernel. So on my Docker container running on Ubuntu, uname -r still prints 6.5.0-41-generic, even though the container image is Debian. That’s normal.

Also, WSL2 adds “microsoft” in the string. It looks odd the first time. It’s fine.


When I use each method (real moments)

  • Quick bug check before a meeting: uname -r
  • Support ticket or paste to a friend: uname -a or hostnamectl
  • Headless Pi on the shelf: cat /proc/sys/kernel/osrelease
  • After updates, to see old kernels:
    • Ubuntu/Debian: dpkg -l | grep linux-image
    • Fedora/RHEL/CentOS: rpm -qa kernel
    • Arch: pacman -Q | grep ^linux

You know what? I still mess up and type uname -v when I want -r. Muscle memory is weird. And yes, I once limited myself to just three checks and still managed to break things—see the full story in I checked my Linux kernel three ways and messed up once.


Why I even care (and you might too)

  • Drivers: My ThinkPad touchpad once clicked funny. New kernel fixed it.
  • Wi-Fi: The Pi 4 dropped packets on an older build. Newer kernel, no drama.
  • Features: WireGuard needed a new kernel back when I set up my VPN.
  • Security: If a CVE notes a fixed kernel, I can check fast and plan my update.

I don’t chase the newest kernel on every box. On my server, I like boring and safe. On my laptops, I’m a bit bold.

Off-topic tangent while the package manager churns: I sometimes joke that my constantly-patched laptops are like “sugar babies”—they only behave when I keep showering them with shiny new kernels. If you’re curious about what that term really means, check out this detailed primer on what a sugar baby actually is. It breaks down the concept, expectations, and safety tips around modern sugar dating, giving you a clear, no-judgment overview in just a few minutes of reading.

While we’re stretching our legs away from the terminal, sometimes I also want to get out of the house entirely. Travelers or locals stuck near Seattle-Tacoma airport might appreciate browsing the late-night classifieds on Backpage Seatac for a quick snapshot of who’s offering companionship or entertainment in the area, saving you from endlessly skimming unrelated bulletin boards.


My short cheat sheet

  • See the running kernel: uname -r
  • More detail: uname -a
  • Nice summary: hostnamectl
  • Plain files: cat /proc/sys/kernel/osrelease
  • What’s installed:
    • Ubuntu/Debian: dpkg -l | grep linux-image
    • Fedora/RHEL/CentOS: rpm -qa kernel
    • Arch: pacman -Q | grep ^linux
  • What’s on disk: ls /boot | grep vmlinuz

That’s it. Simple tools. Real errors saved. And fewer “why is Wi-Fi sad?” moments. Honestly, that’s a win.