systemd-modules-load.service fails to start because it can't understand module arguments in /etc/modules, which it shouldn't even be reading
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| kmod (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
| Bionic |
Won't Fix
|
Low
|
Unassigned | ||
| systemd (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
| Bionic |
Invalid
|
Undecided
|
Unassigned | ||
Bug Description
[impact]
'man modules' claims that modules options can be provided in the /etc/modules file, but doing so causes systemd-
[test case]
add a module with at least one option to the /etc/modules file and restart systemd-
see original description for more detail and example of service failure
[regression potential]
as this only changes a manpage, any regression would likely be in incorrect information provided to users, or some regression occurring due to replacement of the man file or upgrading of the package
[scope]
This was fixed in Debian by
https:/
This is fixed already in Ubuntu focal and later.
[other info]
as this is a manpage-only correction, if this is sru'ed it should use block-proposed-
[original description]
My systemd-
● systemd-
Loaded: loaded (/lib/systemd/
Active: failed (Result: exit-code) since Tue 2020-10-27 10:24:52 PDT; 4s ago
Docs: man:systemd-
Process: 23683 ExecStart=
Main PID: 23683 (code=exited, status=1/FAILURE)
Oct 27 10:24:52 octagon systemd[1]: Starting Load Kernel Modules...
Oct 27 10:24:52 octagon systemd-
Oct 27 10:24:52 octagon systemd[1]: systemd-
Oct 27 10:24:52 octagon systemd[1]: systemd-
Oct 27 10:24:52 octagon systemd[1]: Failed to start Load Kernel Modules.
It looks like it's trying to interpret a whole module-
By recursive grep of /etc, the only place it can be getting that string is /etc/modules:
$ sudo ag vfio_iommu_type1
[sudo] password for anovak:
modules
5:vfio vfio_iommu_type1 vfio_pci vfio_virqfd
The manpage for /etc/modules clearly says that the file may contain module names *and* arguments:
[anovak@octagon ~]$ man modules | grep Arguments
The /etc/modules file contains the names of kernel modules that are to be loaded at boot time, one per line. Arguments can be given in the same line as the module name. Lines beginning with a
The manpage for systemd-
SYNOPSIS
The manpage is clearly lying, and systemd-
I was induced to create an /etc/modules like this by https:/
[anovak@octagon etc]$ lsmod | grep "^vfio "
vfio 28672 2 vfio_iommu_
Can systemd be made to stop reading /etc/modules so that it doesn't report failure when it doesn't understand lines with options? And is that file being read by something else in the system, or should I just remove it as a workaround to stop upsetting systemd?
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: systemd 237-3ubuntu10.42
ProcVersionSign
Uname: Linux 4.15.0-122-generic x86_64
NonfreeKernelMo
ApportVersion: 2.20.9-0ubuntu7.18
Architecture: amd64
CurrentDesktop: ubuntu:GNOME
Date: Tue Oct 27 10:33:50 2020
InstallationDate: Installed on 2017-08-06 (1177 days ago)
InstallationMedia: Ubuntu 17.04 "Zesty Zapus" - Release amd64 (20170412)
MachineType: System manufacturer System Product Name
ProcEnviron:
TERM=xterm-
PATH=(custom, no user)
XDG_RUNTIME_
LANG=en_US.UTF-8
SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=
SourcePackage: systemd
UpgradeStatus: Upgraded to bionic on 2018-05-29 (882 days ago)
dmi.bios.date: 12/08/2018
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 4207
dmi.board.
dmi.board.name: PRIME X370-PRO
dmi.board.vendor: ASUSTeK COMPUTER INC.
dmi.board.version: Rev X.0x
dmi.chassis.
dmi.chassis.type: 3
dmi.chassis.vendor: Default string
dmi.chassis.
dmi.modalias: dmi:bvnAmerican
dmi.product.family: To be filled by O.E.M.
dmi.product.name: System Product Name
dmi.product.
dmi.sys.vendor: System manufacturer
mtime.conffile.
mtime.conffile.

This is an interaction between a symlink that systemd ships (as mentioned in https:/ /bugs.debian. org/cgi- bin/bugreport. cgi?bug= 627949# 10) and the kmod package (which ships the now-inaccurate /usr/share/ man/man5/ modules. 5.gz).