Fixing the “Failed to mount /home” error caused by a missing UUID in /etc/fstab

The “Failed to mount /home” error and a missing UUID

If you boot into a black screen and the kernel spits out

Failed to mount /home

you’re almost certainly dealing with a stale or wrong UUID in /etc/fstab.
Systemd uses that UUID to locate the block device, and if it can’t find a match, the mount unit dies and the user session never starts.


1. Identify the missing UUID

# Show all block devices with their UUIDs
sudo blkid

# Or a tree view
sudo lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,UUID

Look for the entry that should be /home. If the UUID printed here differs from the one in fstab, that’s your mismatch.
If the device itself is gone (say you unplugged an SSD), you’ll have to rebuild the partition or point /home elsewhere.

[Read More]

Denying write access on /tmp: a quick fix to stop local privilege escalation

Why /tmp is a problem

/tmp is the classic “dump‑ground” for most Linux programs.
Because it’s world‑writable, a non‑root user can drop a rogue binary, swap out a shared library, or trick a set‑uid helper into loading code from there.
In 2025 a handful of local privilege‑elevation bugs (e.g., CVE‑2025‑1234) took advantage of that writable surface to inject payloads into privileged processes.
The fix? Make /tmp read‑only for everyone but root.

[Read More]

Taming Container Logs with Loki and systemd Journal

Introduction to Container Logging

I’ve seen container logging become a major headache for many of us managing containerized applications. With containers being adopted more widely in production environments, the need for efficient and scalable logging solutions has become increasingly important. Tools like Loki and systemd Journal have significantly changed the landscape in recent years. In this article, I’ll share how to use Loki and systemd Journal to tame those unruly container logs.

[Read More]

Taming the DNS Resolver: Getting resolvectl to Play Nice with Your Home Network

Introduction to resolvectl

I’ve been using resolvectl for a while now, and I’ve found it to be a powerful tool for managing DNS resolution on Linux systems that use systemd. It provides a flexible and efficient way to configure DNS settings, including DNS over TLS (DoT) and DNS over HTTPS (DoH). As of 2026, many Linux distributions, including Arch Linux and Ubuntu, have adopted systemd-resolved as the default DNS resolver. This is a good thing, in my opinion, as it simplifies DNS management and provides better security features out of the box.

[Read More]

Taming Log Noise with systemd's Built-in Journalctl Filters and Priorities

Introduction to Journalctl Filters

I’ve seen log management become a major headache when working with Linux systems - it’s crucial for troubleshooting, security auditing, and system maintenance. That’s where journalctl comes in, a powerful tool provided by systemd for managing and analyzing log data. But let’s be honest, dealing with the sheer volume of log entries can be overwhelming. This article will show you how to tame that “log noise” using journalctl’s built-in filters and priorities.

[Read More]

Using resolvectl to Debug Stubborn DNS Issues on Linux

Introduction to resolvectl

I’ve seen my fair share of DNS issues on Linux, and one of the most powerful tools in my arsenal is resolvectl. Before diving into debugging, you may want to review our guide on DNS configuration and troubleshooting with resolvectl for a broader overview of the tool’s capabilities. This command-line utility is part of the systemd suite and provides a comprehensive way to query and configure DNS settings on your system. In practice, resolvectl can be a lifesaver when dealing with stubborn DNS problems. Here, we’ll dive into how to use resolvectl to debug these issues, exploring its capabilities, and providing practical examples to help you troubleshoot and resolve DNS problems efficiently.

[Read More]

Taming Service Exposure with systemd's socket activation

Introduction to Socket Activation

I’ve seen socket activation become a game-changer for managing network services in Linux. By decoupling service activation from the actual service process, you gain more control over service exposure and can significantly improve security and reliability. In this article, we’ll dive into the world of systemd’s socket activation and explore how to harness its power.

What is Socket Activation?

Socket activation is a mechanism that allows systemd to manage network sockets independently of the service process. When a socket is activated, systemd creates a listening socket and waits for incoming connections. Once a connection is established, systemd starts the corresponding service process, passing the socket as a file descriptor. This approach provides several benefits, including improved security, better resource utilization, and increased flexibility. Don’t bother with trying to implement this manually - systemd makes it relatively straightforward.

[Read More]

Taming systemd Restart Policies to Prevent Service Mayhem

Introduction to systemd Restart Policies

I’ve seen systemd’s restart policies go wrong when they’re not properly configured, leading to more problems than they solve. Systemd is a core component of most modern Linux distributions, responsible for managing system services, including starting, stopping, and restarting them as needed. One of the key features of systemd is its ability to automatically restart services that fail or exit unexpectedly, which can help improve system reliability and uptime.

[Read More]

Taming Systemd Services that Refuse to Die

Managing Unresponsive Services in Linux

I’ve seen this go wrong when a service becomes unresponsive and refuses to die - it’s a real headache. Systemd is the default service manager for most modern Linux distributions, and while it’s robust, sometimes services just won’t quit. This can cause issues with system stability and security.

Identifying and Killing Unresponsive Services

To identify unresponsive services, I usually start with the systemctl command:

systemctl status

This lists all active services on your system. Look for services with a status of “failed” or “error”. The real trick is to also check the system logs for errors related to a specific service using journalctl. Don’t bother with manually scanning through logs, though - journalctl can filter out the noise.

[Read More]

Taming Disk-Hungry Logs: Strategies for Managing Log File Growth on Linux Systems

Introduction to Log Management

I’ve seen many Linux systems brought down by unmanaged log files, so it’s essential to have a solid log management strategy in place. Log files provide valuable insights into system activity, errors, and security incidents, but if left unmanaged, they can grow rapidly, consuming disk space and potentially leading to system instability. In this article, we’ll explore practical tools and techniques for managing log file growth on Linux systems.

[Read More]