Home Linux troubleshootingHow To Fix Slow Linux Boot Issues In Less Than 5 Minutes

How To Fix Slow Linux Boot Issues In Less Than 5 Minutes

Speed Up Linux Boot Process with systemd-analze Command

By sk
4.8K views 5 mins read

Is your Linux system taking too long to boot? A slow startup can waste your time and test your patience. The good news is that Linux includes built-in tools that help you find and fix slow boot issues.

In this simple guide, you'll learn how to use the systemd-analyze command to find which services delay your system. Once you know what's slowing things down, you can safely disable unnecessary services to speed up the Linux boot process.

In the following sections, you will learn:

  • What is systemd-analyze,
  • Check your Linux boot time,
  • Find which services are slowing things down,
  • Safely disable unnecessary services,
  • Make your Linux PC start faster.

No advanced skills needed. Just follow these simple steps to increase your Linux startup time in under 5 minutes!

Why is My Linux Boot So Slow?

In modern Linux systems, systemd (system and services manager) starts everything when your computer boots. It runs many small programs called services. Some finish fast, others take more time.

Some common reasons your Linux system boots slowly:

  • Too many services starting at boot (e.g., Bluetooth, printers, VPNs).
  • Network delays (waiting for internet connection). Some services wait for a network connection before moving on.
  • Slow hardware (old hard drives, low RAM).

These are just a few that comes in my mind. Of course, there are many things (both software and hardware) can cause slow startups.

We’ll focus on fixing software-related slowdowns using systemd-analyze, a tool built into most Linux systems.

What is systemd-analyze?

The systemd-analyze is a command-line tool that helps you understand your system’s boot performance. It works with systemd, the software that manages system startup, services, and shutdown. This tool shows how long different parts of the boot process take and can help you spot delays.

It includes several subcommands. For the purpose of this guide, we are going to learn the usage of the following sub-commands:

  • time: Shows total boot time and time spent in the firmware, bootloader, kernel, and userspace.
  • blame: Lists services in order of how long they took to start.
  • critical-chain: Displays which services delayed others.
  • plot: Generates a visual SVG chart of the boot process (useful for deeper inspection).

Step 1: Check Your Boot Time

Linux boots in three key stages:

  1. Firmware Phase (BIOS/UEFI)
  2. Kernel Initialization
  3. Userspace Startup (where most delays happen)

Run this command to see time spent in each phase:

systemd-analyze time

You’ll see something like this:

Startup finished in 17.855s (firmware) + 7.320s (loader) + 4.004s (kernel) + 12.167s (userspace) = 41.347s 
graphical.target reached after 12.153s in userspace.
  • Kernel time = Time for hardware setup (usually fast)
  • Userspace time = Time for apps and services to load (where slowdowns happen)

If your userspace time is longer than 10 seconds, you can likely speed it up.

Step 2: Find the Slowest Services

The systemd-analyze blame command shows you how long each service takes during startup. This helps you find which ones are slowing things down.

Run this command to see which services take the most time:

systemd-analyze blame

This command will show how long each service took to start.

Example output (slowest services first):

4.316s NetworkManager-wait-online.service
1.629s fwupd.service
1.612s networking.service
1.609s systemd-modules-load.service
1.174s ifupdown2-pre.service
1.164s systemd-udev-settle.service
 669ms postfix@-.service
 661ms dev-nvme0n1p2.device
 613ms vboxdrv.service
 490ms tor@default.service
 430ms systemd-udev-trigger.service
 414ms blueman-mechanism.service
 368ms systemd-journal-flush.service
 269ms udisks2.service
 200ms accounts-daemon.service
 169ms ModemManager.service
 165ms systemd-logind.service
 157ms polkit.service

As you can see in the output, the longer ones are at the top.

Check carefully each service. If you don't know what a specific service does, simply do a quick web search to learn its usage. If you think a certain service is not necessary, you can disable it.

Deep Analysis

You can also use the systemd-analyze critical-chain command to show which services delay others:

systemd-analyze critical-chain

It helps you find services that block others from starting.

If you want to create a visual timeline for your Linux boot process, run:

systemd-analyze plot > boot.svg

For basic analysis, just run blame to spot obvious slowdowns. Use critical-chain or plot for deep analysis.

Display Top Ten Slowest Services

By default, systemd-analyze command will display the result page by page. You can navigate through the result by pressing ENTER key.

If you want to display a specific number of services, you can pipe the result to the head command. For example, to display the top-ten services that slowest services, run:

systemd-analyze blame | head -n 10

Step 3: Disable Unnecessary Services to Fix Slow Linux Boot Issues

You have found the services that causes the slow Linux boot, now what? You can either disable or optimize those problematic services.

Some services (like NetworkManager-wait-online) wait for internet access before boot completes. If you don’t need this, simply disable it using command:

sudo systemctl disable NetworkManager-wait-online.service

If you don’t use Bluetooth, you can disable it too:

sudo systemctl disable bluetooth.service

The other common services you might disable:

  • cups.service (if you don’t use printers)
  • snapd.service (if you don’t use Snap apps)

Only disable services if you know they aren’t needed.

Warning: Don’t disable critical services like dbussystemd-logind, or network-manager.

Step 4: Check Your Improvements

After making changes, reboot and run:

systemd-analyze time
systemd-analyze blame

Compare the new boot time with your old one. You should see a noticeable speedup!

Bonus: More Ways to Speed Up Linux Boot

  1. Use an SSD (if still on a hard drive)
  2. Reduce startup apps (check Startup Applications in your desktop settings)
  3. Try a lighter Linux version (e.g., Lubuntu instead of Ubuntu)

Summary

The systemd-analyze blame command is a simple way to see why your Linux system is slow to boot. Using this command, you can easily find and fix slow boot issues in Linux. For most users, disabling just 1-2 unnecessary services cuts boot time in half.

Related Read:

You May Also Like

2 comments

Lucky Lurchiano June 3, 2025 - 2:56 am

“Is your Linux system taking too long to boot? ”
Who cares!
What is this incessant paranoia about boot times.
1] When you turn on your computer will you be using it for longer than 1 minute.
2] Is the world going to end if you can’t boot in 3.14 seconds.
Let me help – the answer is NO to both of the above.

BUT, just to prove I’m a great guy and not just a troll this article should have started with:
Are you using an HDD or a SSD as your main drive?
An HDD can take twice as long as an SSD to boot.

Reply
sk June 3, 2025 - 12:10 pm

I agree with your points. Some people still care for faster boot time.

Reply

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More