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 asuname -rcat /proc/version→ kernel plus build info
On my CentOS 7 droplet:
/proc/sys/kernel/osrelease→3.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-amd64ii linux-image-amd64
Fedora/RHEL/CentOS:
rpm -qa kernel- My Fedora box shows:
kernel-6.8.12-300.fc40.x86_64kernel-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-genericand 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 -aorhostnamectl - 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
- Ubuntu/Debian:
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
- Ubuntu/Debian:
- 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.
