How to Completely Disable the ‘systemd-udev-settle’ Service in Ubuntu Server

The systemd-udev-settle.service in Ubuntu Server is a legacy initialization script designed to block the boot process until all kernel udev events (hardware device discovery and initialization) have been completely processed. Historically, this was necessary to ensure that complex storage arrays (like LVM or MDRAID) were fully assembled before the system attempted to mount filesystems. However, modern systemd is heavily event-driven; services are designed to wait for specific device units to appear dynamically rather than relying on a global block. Because systemd-udev-settle waits for the entire udev queue to empty, a single slow-responding USB controller or complex multipath SAN connection can unnecessarily delay the entire boot sequence by several minutes.

This guide explains how to completely disable the systemd-udev-settle service in Ubuntu Server to significantly accelerate the boot process on modern, event-driven systems.

Stop and Mask the Udev Settle Service

To ensure systemd no longer blocks on global udev queue completion, we must disable the service and aggressively mask it to prevent other legacy storage services from invoking it as a dependency.

  1. Log into your Ubuntu Server via SSH using an account with sudo privileges.
  2. First, stop the service (though it only runs at boot, this ensures a clean state):
    sudo systemctl stop systemd-udev-settle.service
  3. Next, disable the service to prevent it from loading normally:
    sudo systemctl disable systemd-udev-settle.service
  4. To absolutely guarantee that it cannot be triggered by LVM or legacy scripts, mask it entirely:
    sudo systemctl mask systemd-udev-settle.service

Verify the Boot Optimization

By masking the service, you have effectively symlinked its unit file to /dev/null. During the next boot, systemd will initialize services in parallel based on dynamic device availability rather than waiting for an arbitrary global timeout.

To verify the lockdown is successful, run the following command to check the status of the daemon:

systemctl status systemd-udev-settle.service

The output will clearly state that the service is masked. You have successfully optimized your system initialization sequence, eliminating one of the most common causes of slow boot times in Linux environments.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.