![启动时无法加载模块:无法找到名为“off”的模块](https://linux22.com/image/877101/%E5%90%AF%E5%8A%A8%E6%97%B6%E6%97%A0%E6%B3%95%E5%8A%A0%E8%BD%BD%E6%A8%A1%E5%9D%97%EF%BC%9A%E6%97%A0%E6%B3%95%E6%89%BE%E5%88%B0%E5%90%8D%E4%B8%BA%E2%80%9Coff%E2%80%9D%E7%9A%84%E6%A8%A1%E5%9D%97.png)
我刚刚从 15.04 升级到 15.10,在启动过程中,我收到一条错误消息,提示某些模块加载失败。因此我运行了该程序,systemctl status -l systemd-modules-load.service
结果得到了以下信息:
Oct 24 12:22:23 ubuntu systemd-modules-load[292]: Inserted module 'option'
Oct 24 12:22:23 ubuntu systemd-modules-load[292]: could not find module by name='off'
Oct 24 12:22:23 ubuntu systemd-modules-load[292]: Failed to insert 'off': Function not implemented
Oct 24 12:22:23 ubuntu systemd-modules-load[292]: could not find module by name='off'
Oct 24 12:22:23 ubuntu systemd-modules-load[292]: Failed to insert 'off': Function not implemented
Oct 24 12:22:23 ubuntu systemd-modules-load[292]: Inserted module 'cuse'
Oct 24 12:22:23 ubuntu systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
Oct 24 12:22:23 ubuntu systemd[1]: Failed to start Load Kernel Modules.
Oct 24 12:22:23 ubuntu systemd[1]: systemd-modules-load.service: Unit entered failed state.
Oct 24 12:22:23 ubuntu systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
当我跑步时cat /etc/modules
我得到
loop
lp
usbserial
option
nouveau
nouveau
我试图注释掉其中一个新模块,但没有帮助。
我发现了一个漏洞在 Launchpad 上出现了类似的消息,但我的问题似乎不是由模块引起的rtc
(模块是链接错误的罪魁祸首)。
有人知道我应该尝试什么吗?
编辑:添加更多信息:
cat /lib/systemd/system/systemd-modules-load.service
给出
[Unit]
Description=Load Kernel Modules
Documentation=man:systemd-modules-load.service(8) man:modules-load.d(5)
DefaultDependencies=no
Conflicts=shutdown.target
Before=sysinit.target shutdown.target
ConditionCapability=CAP_SYS_MODULE
ConditionDirectoryNotEmpty=|/lib/modules-load.d
ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d
ConditionDirectoryNotEmpty=|/usr/local/lib/modules-load.d
ConditionDirectoryNotEmpty=|/etc/modules-load.d
ConditionDirectoryNotEmpty=|/run/modules-load.d
ConditionKernelCommandLine=|modules-load
ConditionKernelCommandLine=|rd.modules-load
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/systemd/systemd-modules-load
TimeoutSec=90s
cat /etc/modules-load.d/modules.conf
cat /etc/modules/
给出与上面列出的相同的输出。
答案1
通过注释掉(使用“#”字符)这两行来解决新在/etc/modules
文件中。
答案2
进行更新然后升级可以解决我加载模块失败的问题尽管我得到了
Sub-process /usr/bin/dpkg returned an error code (1)" error [duplicate]
sudo apt-get update
sudo apt-get upgrade
祝你好运
答案3
问题似乎是由于在 16.04 amd64 中/etc/alternatives/x86_64-linux-gnu_nvidia_modconf
安装后将nouveau 列入黑名单并将其别名为 off 所致。nvidia-304-updates
该配置通过使用以下命令来禁止切换到 nouveau 驱动程序的序列:
rmmod nvidia
modprobe nouveau
取消注释罪魁祸首可以更改 nvidia 显卡的驱动程序而无需重新启动。然后 nouveau 驱动程序可以正确加载(但仍然没有显示 unity 启动器或 dash)。
答案4
我必须这样做:
sudo apt-get purge $(dpkg -l | grep nvidia | cut -f3 -d' ' | tr '\n' ' ')