我在戴尔笔记本电脑上使用 ubuntu 15.10。它运行良好,但最近我的启动时间变慢了(约 1 分钟)。所以我四处查看,当我读取文件时/var/log/boot.log
,我看到以下错误:
[FAILED] Failed to start Load Kernel Modules.
See 'systemctl status systemd-modules-load.service' for details.
所有其他服务(tftpd 除外)均运行正常。以下是完整输出:
[ OK ] Started Load/Save Screen Backlight Brightness of backlight:intel_backlight.
[ OK ] Reached target Sound Card.
[ OK ] Created slice system-systemd\x2drfkill.slice.
Starting Load/Save RF Kill Switch Status of rfkill0...
[ OK ] Started Show Plymouth Boot Screen.
[ OK ] Started Forward Password Requests to Plymouth Directory Watch.
[ OK ] Started Load/Save RF Kill Switch Status of rfkill0.
[ OK ] Started Check And Enable File System Quotas.
Starting Load/Save RF Kill Switch Status of rfkill1...
[ OK ] Started Braille Device Support.
Starting Load Kernel Modules...
[FAILED] Failed to start Load Kernel Modules.
See 'systemctl status systemd-modules-load.service' for details.
[ OK ] Started Load/Save RF Kill Switch Status of rfkill1.
[ OK ] Started LSB: QEMU KVM module loading script.
[ OK ] Found device ST500LM012_HN-M500MBB 8.
Starting File System Check on /dev/sda8...
[ OK ] Started File System Check on /dev/sda8.
Mounting /mnt/ubuntuspace...
[ OK ] Found device ST500LM012_HN-M500MBB 7.
Activating swap /dev/disk/by-uuid/431a5631-95f2-4d4f-8f81-42e5801b57aa...
[ OK ] Activated swap /dev/disk/by-uuid/431a5631-95f2-4d4f-8f81-42e5801b57aa.
[ OK ] Reached target Swap.
[ OK ] Mounted /mnt/ubuntuspace.
[ OK ] Reached target Local File Systems.
Starting Create Volatile Files and Directories...
Starting Set console keymap...
[ OK ] Reached target Remote File Systems.
Starting Wait for all "auto" /etc/network/interfaces to be up for network-online.target...
Starting LSB: AppArmor initialization...
Starting Clean up any mess left by 0dns-up...
Starting Tell Plymouth To Write Out Runtime Data...
[ OK ] Started Wait for all "auto" /etc/network/interfaces to be up for network-online.target.
[ OK ] Started Clean up any mess left by 0dns-up.
Starting Nameserver information manager...
[ OK ] Started Nameserver information manager.
[ OK ] Started Set console keymap.
[ OK ] Started Create Volatile Files and Directories.
Starting Update UTMP about System Boot/Shutdown...
Starting Network Time Synchronization...
[ OK ] Started Update UTMP about System Boot/Shutdown.
[ OK ] Started Network Time Synchronization.
[ OK ] Reached target System Time Synchronized.
[ OK ] Started LSB: AppArmor initialization.
Starting LSB: Raise network interfaces....
[ OK ] Started LSB: Raise network interfaces..
[ OK ] Started Tell Plymouth To Write Out Runtime Data.
[ OK ] Reached target System Initialization.
[ OK ] Listening on UUID daemon activation socket.
Starting Restore Sound Card State...
[ OK ] Listening on D-Bus System Message Bus Socket.
[ OK ] Started CUPS Scheduler.
[ OK ] Listening on PC/SC Smart Card Daemon Activation Socket.
[ OK ] Listening on CUPS Scheduler.
[ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[ OK ] Started Trigger resolvconf update for networkd DNS.
[ OK ] Reached target Paths.
[ OK ] Started Daily Cleanup of Temporary Directories.
[ OK ] Reached target Timers.
[ OK ] Listening on ACPID Listen Socket.
[ OK ] Reached target Sockets.
[ OK ] Reached target Basic System.
Starting Restore /etc/resolv.conf if the system crashed before the ppp link was shut down....
Starting System Logging Service...
Starting Permit User Sessions...
[ OK ] Started Self Monitoring and Reporting Technology (SMART) Daemon.
Starting Avahi mDNS/DNS-SD Stack...
Starting LSB: Set the CPU Frequency Scaling governor to "ondemand"...
Starting Detect the available GPUs and deal with any system changes...
Starting LSB: Record successful boot for GRUB...
[ OK ] Started Cgroup management daemon.
[ OK ] Started CUPS Scheduler.
Starting VirtualBox Linux kernel module...
Starting LSB: automatic crash report generation...
Starting Network Manager...
[ OK ] Started Deferred execution scheduler.
[ OK ] Started crash report submission daemon.
Starting Modem Manager...
Starting LSB: Load kernel modules needed to enable cpufreq scaling...
Starting LSB: Start/stop sysstat's sadc...
Starting Enable support for additional executable binary formats...
Starting Accounts Service...
Starting LSB: Speech Dispatcher...
Starting Bluetooth service...
[ OK ] Started Regular background program processing daemon.
Starting Initialize hardware monitoring sensors...
Starting LSB: daemon to balance interrupts for SMP systems...
[ OK ] Started D-Bus System Message Bus.
[ OK ] Started Avahi mDNS/DNS-SD Stack.
[ OK ] Started Bluetooth service.
[ OK ] Started Network Manager.
[ OK ] Reached target Network.
[ OK ] Started OpenBSD Secure Shell server.
Starting MySQL Community Server...
Starting OpenVPN service...
[ OK ] Reached target Bluetooth.
[ OK ] Started Make remote CUPS printers available locally.
Starting LSB: Start daemon at boot time...
Starting Thermal Daemon Service...
Starting dnsmasq - A lightweight DHCP and caching DNS server...
Starting PostgreSQL Cluster 9.4-main...
Starting Login Service...
Starting Network Manager Wait Online...
Starting LSB: Monitor for system resources and process activity...
[ OK ] Started System Logging Service.
[ OK ] Started Restore Sound Card State.
[ OK ] Started Restore /etc/resolv.conf if the system crashed before the ppp link was shut down..
[ OK ] Started Permit User Sessions.
[ OK ] Started LSB: Set the CPU Frequency Scaling governor to "ondemand".
[ OK ] Started LSB: Record successful boot for GRUB.
[ OK ] Started VirtualBox Linux kernel module.
[ OK ] Started LSB: automatic crash report generation.
[ OK ] Started LSB: Load kernel modules needed to enable cpufreq scaling.
[ OK ] Started LSB: Start/stop sysstat's sadc.
[ OK ] Started LSB: Speech Dispatcher.
[ OK ] Started LSB: daemon to balance interrupts for SMP systems.
[ OK ] Started OpenVPN service.
[ OK ] Started Initialize hardware monitoring sensors.
Starting Hostname Service...
Starting Authenticate and Authorize Users to Run Privileged Tasks...
Mounting Arbitrary Executable File Formats File System...
Starting LSB: set CPUFreq kernel parameters...
Starting vboxweb-service.service...
Starting vboxballoonctrl-service.service...
Starting vboxautostart-service.service...
[ OK ] Mounted Arbitrary Executable File Formats File System.
[ OK ] Started LSB: set CPUFreq kernel parameters.
[ OK ] Started vboxweb-service.service.
[ OK ] Started vboxballoonctrl-service.service.
[ OK ] Started vboxautostart-service.service.
[ OK ] Started Enable support for additional executable binary formats.
[ OK ] Started Hostname Service.
[ OK ] Started Login Service.
[ OK ] Started LSB: Monitor for system resources and process activity.
[ OK ] Started Thermal Daemon Service.
[ OK ] Started Authenticate and Authorize Users to Run Privileged Tasks.
[ OK ] Started Accounts Service.
[ OK ] Started Modem Manager.
[ OK ] Started LSB: Start daemon at boot time.
[ OK ] Started ACPI event daemon.
Starting WPA supplicant...
[ OK ] Started dnsmasq - A lightweight DHCP and caching DNS server.
[ OK ] Reached target Host and Network Name Lookups.
[ OK ] Started WPA supplicant.
Starting Network Manager Script Dispatcher Service...
[ OK ] Started Network Manager Script Dispatcher Service.
[ OK ] Started MySQL Community Server.
[ OK ] Started PostgreSQL Cluster 9.4-main.
Starting PostgreSQL RDBMS...
[ OK ] Started PostgreSQL RDBMS.
[ OK ] Started Network Manager Wait Online.
[ OK ] Reached target Network is Online.
Starting LSB: start Samba daemons for the AD DC...
Starting LSB: disk temperature monitoring daemon...
Starting LSB: HPA's tftp server...
Starting /etc/rc.local Compatibility...
Starting LSB: Tool to automatically collect and submit kernel crash signatures...
Starting LSB: Apache2 web server...
Starting ISC DHCP IPv4 server...
Starting LSB: Postfix Mail Transport Agent...
Starting LSB: backup and restore program...
Starting LSB: Starts or stops the xinetd daemon....
Starting LSB: start Samba NetBIOS nameserver (nmbd)...
[ OK ] Started LSB: disk temperature monitoring daemon.
[ OK ] Started /etc/rc.local Compatibility.
[ OK ] Started ISC DHCP IPv4 server.
[ OK ] Started LSB: backup and restore program.
[FAILED] Failed to start LSB: HPA's tftp server.
See 'systemctl status tftpd-hpa.service' for details.
[ OK ] Started LSB: Tool to automatically collect and submit kernel crash signatures.
Starting Wait for Plymouth Boot Screen to Quit...
[ OK ] Started LSB: Starts or stops the xinetd daemon..
[ OK ] Started Detect the available GPUs and deal with any system changes.
Starting Light Display Manager...
以下是 的输出systemctl status systemd-modules-load.service
:
● systemd-modules-load.service - Load Kernel Modules
Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2016-07-06 06:05:56 IST; 1h 13min ago
Docs: man:systemd-modules-load.service(8)
man:modules-load.d(5)
Process: 1019 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
Main PID: 1019 (code=exited, status=1/FAILURE)
Jul 06 06:05:56 hostname systemd[1]: Starting Load Kernel Modules...
Jul 06 06:05:56 hostname systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
Jul 06 06:05:56 hostname systemd[1]: Failed to start Load Kernel Modules.
Jul 06 06:05:56 hostname systemd[1]: systemd-modules-load.service: Unit entered failed state.
Jul 06 06:05:56 hostname systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
这个错误到底是什么?它会影响我的启动时间吗?如何修复?
答案1
什么是“无法启动加载内核模块”?
Systemd 会读取目录中的文件/etc/modules-load.d
,以便使用此服务加载模块。如果这些文件中指定的模块不在/lib/modules
正在启动的内核的目录中,则会出现“无法启动加载内核模块”的错误。以下是/etc/modules-load.d
目录的内容ls -lA
-rw-r--r-- 1 root root 119 Apr 20 17:01 cups-filters.conf
lrwxrwxrwx 1 root root 10 May 12 10:39 modules.conf -> ../modules
获取详细信息journalctl
就我而言,以下是相关部分journalctl
:
May 27 06:36:50 zanna-X205TA systemd-modules-load[176]: Failed to find module 'lp'
May 27 06:36:50 zanna-X205TA systemd-modules-load[176]: Failed to find module 'ppdev'
May 27 06:36:50 zanna-X205TA systemd-modules-load[176]: Failed to find module 'parport_pc'
如果你这样做,journalctl | grep modules
你会看到哪些加载失败
就我而言,/etc/modules
(符号链接指向)是空的,但cups-filters.conf
文件包含对引发错误的模块的引用:
# Parallel printer driver modules loading for cups
# LOAD_LP_MODULE was 'yes' in /etc/default/cups
lp
ppdev
parport_pc
让消息消失
不出所料,我的笔记本电脑甚至没有并行端口,所以我不需要这些模块。无论如何,它们无法加载,因为它们不在/lib/modules/$(uname -r)
我注释掉了这三行(将#
每行放在模块名称前面的行首),错误消息就消失了。
不过我没有注意到启动时间有任何差异。
总结
- 检查
journalctl
哪些模块加载失败 - 读入文件
/etc/modules-load.d
来查找对这些模块的引用 - 注释掉指定这些模块的行以使错误消失(但请在编辑前制作备份)
- 重新启动以查看这是否会对启动时间产生任何影响