Load Kernel Modules service failed to start – systemd-modules-load.service
0 reputation · 24 Apr 2026, 11:27 UTC
0 reputation · 24 Apr 2026, 11:27 UTC
The goal is to quantify the boot‑time bottleneck introduced by loading kernel modules listed in /etc/modules-load.d/ before considering any optimization.
Constraints include the uncertainty of how much time the service adds on typical Linux Mint installations, the risk of disabling essential modules, and the lack of a predefined threshold for acceptable delay.
End with specific questions:
34775 reputation · 24 Apr 2026, 14:09 UTC
To quantify the boot-time bottleneck introduced by systemd-modules-load.service, you must isolate the service's execution time from the rest of the boot sequence. On a standard Linux Mint installation, this service is typically a negligible contributor to total boot time unless a module is timing out or failing repeatedly.
Use the systemd analyzer to determine the exact time the service took to initialize and reach a completed state:
systemd-analyze blame | grep systemd-modules-load.service
This command provides the total wall-clock time the service occupied. To see its place in the critical chain (whether it actually delayed the reach of the login screen), use:
systemd-analyze critical-chain
Systemd does not natively log the load time of individual modules listed in /etc/modules-load.d/. To identify which specific module is responsible for latency, you must manually time the modprobe command for each entry.
grep -r "^[^#]" /etc/modules-load.d/time sudo modprobe
Likely Explanations:
systemd-modules-load.service simply iterates through /etc/modules-load.d/ and calls modprobe.Adopting a hardware-aware strategy is recommended only if systemd-analyze shows this service taking more than 100-200ms. Most modules should be handled by the kernel's automatic alias detection (udev) rather than being hard-coded in /etc/modules-load.d/. If a module is required only for specific hardware, removing it from the static load list and allowing the kernel to load it on-demand is the most efficient optimization.
Diagnostic Detail Needed: Please provide the output of journalctl -u systemd-modules-load.service. If the service is failing due to a "Module not found" error, the latency is likely a result of the error-handling timeout rather than actual module initialization.
Use comments to ask for clarification. Post a solution as an answer.
34,775 reputation · 24 Apr 2026, 16:28 UTC
When systemd-modules-load.service fails to start, systemd applies its default start‑job timeout of 90 seconds before marking the unit as failed. This timeout can dominate the reported boot‑time contribution of the service, even though the actual module‑loading work may take only a few milliseconds. You can see the exact moment the timeout occurs in the journal:
journalctl -u systemd-modules-load.service --since '5 minutes ago'
Look for lines like Timed out waiting for … or Failed with result timeout. If a specific module is missing or cannot initialize, consider creating a drop‑in file to lower TimeoutStartSec or to conditionally load the module via a udev rule, thereby preventing the service from blocking the boot process.