Fedora30(Linux)の起動時間を早くする方法

1. はじめに

 いつも使っているLinuxのfedora30の起動時間が、ある時から遅くなったように感じました。
 以前はスイッチを入れてから20秒くらいでユーザー選択とパスワード入力画面にいっていたのですが、それが3分以上かかるようになったのです。

この記事では、そのあたりを調べてわかったことを忘備録として書いています。


2. 立ち上げ時のメッセージから

 何が原因かはわからないのですが、立ち上げ時のメッセージを見ると、NetworkManagerの部分で時間がかかっているようでした。
 そのメッゼージのコメントに"systemctl status NetworkManager.service"で詳細がわかるとあったので、試してみました。

[user01@localhost ~]$ su
パスワード:
[root@localhost user01]# systemctl status NetworkManager.service
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
└─NetworkManager-ovs.conf
Active: active (running) since Sun 2019-09-29 08:56:23 JST; 3min 1s ago
Docs: man:NetworkManager(8)
Main PID: 805 (NetworkManager)
Tasks: 4 (limit: 4572)
Memory: 13.9M
CGroup: /system.slice/NetworkManager.service
├─ 805 /usr/sbin/NetworkManager --no-daemon
└─1040 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-wlp2s0.pid -lf /var/lib/NetworkManager/dhclient-73052f8e-7c81-4ad>

9月 29 08:56:26 localhost.localdomain NetworkManager[805]: [1569714986.7487] policy: set 'elecom2g-05f98d' (wlp2s0) as default for IPv4 routing and D>
9月 29 08:56:26 localhost.localdomain NetworkManager[805]: [1569714986.7536] device (wlp2s0): Activation: successful, device activated.
9月 29 08:56:26 localhost.localdomain NetworkManager[805]: [1569714986.7565] manager: startup complete
9月 29 08:56:26 localhost.localdomain NetworkManager[805]: [1569714986.7570] dns-sd-resolved[0x55ab5c612d10]: Failed: GDBus.Error:org.freedesktop.DBu>
9月 29 08:56:26 localhost.localdomain NetworkManager[805]: [1569714986.7572] dns-sd-resolved[0x55ab5c612d10]: Failed: GDBus.Error:org.freedesktop.DBu>
9月 29 08:56:26 localhost.localdomain NetworkManager[805]: [1569714986.7574] dns-sd-resolved[0x55ab5c612d10]: Failed: GDBus.Error:org.freedesktop.DBu>
9月 29 08:56:26 localhost.localdomain NetworkManager[805]: [1569714986.7576] dns-sd-resolved[0x55ab5c612d10]: Failed: GDBus.Error:org.freedesktop.DBu>
9月 29 08:56:27 localhost.localdomain NetworkManager[805]: [1569714987.6244] manager: NetworkManager state is now CONNECTED_GLOBAL
9月 29 08:56:32 localhost.localdomain NetworkManager[805]: [1569714992.8253] bluez: use BlueZ version 5
9月 29 08:56:36 localhost.localdomain NetworkManager[805]: [1569714996.6937] agent-manager: req[0x55ab5c6c5d30, :1.329/org.freedesktop.nm-applet/1000>

 なにかが、Failed となっているのですが、しかし、どこで時間がかかるのかは、よくわからずじまいでした。


3. 起動時間を確認する

 そこで、systemd-analyzeというコマンドで起動時間が見られるようなので試してみました。

[root@localhost user01]# systemd-analyze
Startup finished in 1.956s (kernel) + 3.156s (initrd) + 3min 12.507s (userspace) = 3min 17.621s
graphical.target reached after 3min 12.166s in userspace
[root@localhost user01]#

 詳細は blame というオプションをつけることで見られました。

[root@localhost user01]# systemd-analyze blame | head
   3min 3.027s NetworkManager.service
      5.012s plymouth-quit-wait.service
      2.108s dracut-initqueue.service
      1.909s firewalld.service
      1.253s systemd-udev-settle.service
      1.034s lvm2-monitor.service
      971ms ModemManager.service
      962ms initrd-switch-root.service
      867ms rtkit-daemon.service
      839ms avahi-daemon.service

 やはり、NetworkManagerの部分でチェックに時間がかかっていることがわかりました。
 このタイムアウトの時間がデフォルトで1分30秒に設定されているので、これを短縮することにしました。


4. 起動チェックする時間を制限する

 これを行うには、system.conf というファイルを修正する必要があります。

[root@localhost user01]# cat /etc/systemd/system.conf

# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See systemd-system.conf(5) for details.

[Manager]
#LogLevel=info
#LogTarget=journal-or-kmsg
#LogColor=yes
#LogLocation=no
#DumpCore=yes
#ShowStatus=yes
#CrashChangeVT=no
#CrashShell=no
#CrashReboot=no
#CtrlAltDelBurstAction=reboot-force
#CPUAffinity=1 2
#RuntimeWatchdogSec=0
#ShutdownWatchdogSec=10min
#WatchdogDevice=
#CapabilityBoundingSet=
#NoNewPrivileges=no
#SystemCallArchitectures=
#TimerSlackNSec=
#DefaultTimerAccuracySec=1min
#DefaultStandardOutput=journal
#DefaultStandardError=inherit
DefaultTimeoutStartSec=5s  ←ここを変更
DefaultTimeoutStopSec=5s  ←ここを変更
#DefaultRestartSec=100ms
#DefaultStartLimitIntervalSec=10s
#DefaultStartLimitBurst=5
#DefaultEnvironment=
#DefaultCPUAccounting=no
#DefaultIOAccounting=no
#DefaultIPAccounting=no
#DefaultBlockIOAccounting=no
#DefaultMemoryAccounting=yes
#DefaultTasksAccounting=yes
#DefaultTasksMax=15%
#DefaultLimitCPU=
#DefaultLimitFSIZE=
#DefaultLimitDATA=
#DefaultLimitSTACK=
#DefaultLimitCORE=
#DefaultLimitRSS=
#DefaultLimitNOFILE=1024:524288
#DefaultLimitAS=
#DefaultLimitNPROC=
#DefaultLimitMEMLOCK=
#DefaultLimitLOCKS=
#DefaultLimitSIGPENDING=
#DefaultLimitMSGQUEUE=
#DefaultLimitNICE=
#DefaultLimitRTPRIO=
#DefaultLimitRTTIME=
 このファイルの中で、以前は、デフォルト設定で

#DefaultTimeoutStartSec=90s
#DefaultTimeoutStopSec=90s

 と、なっていたものを、viエディタで、

DefaultTimeoutStartSec=5s
DefaultTimeoutStopSec=5s

 と修正し、再起動したところ、以前と同じようにスイッチを入れてから20秒くらいでユーザー選択とパスワード入力画面に行けるようになりました。


5. 終わりに

 これで、以前と同じようにPCの起動時間が短縮でき、待ち時間のストレスから解放されたのでした。

 以上、なんらかのご参考になれば幸いです。

(2019-9-29)