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]:
9月 29 08:56:26 localhost.localdomain NetworkManager[805]:
9月 29 08:56:26 localhost.localdomain NetworkManager[805]:
9月 29 08:56:26 localhost.localdomain NetworkManager[805]:
9月 29 08:56:26 localhost.localdomain NetworkManager[805]:
9月 29 08:56:26 localhost.localdomain NetworkManager[805]:
9月 29 08:56:26 localhost.localdomain NetworkManager[805]:
9月 29 08:56:27 localhost.localdomain NetworkManager[805]:
9月 29 08:56:32 localhost.localdomain NetworkManager[805]:
9月 29 08:56:36 localhost.localdomain NetworkManager[805]:
なにかが、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
#
# 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)
■ 以前の記事
→ 「Linux豆知識(Linux Tips)」に関する以前の記事は、こちらをごらん下さい。
・Fedora32(Linux)でDVDを再生する方法
・Fedora 34 を 35 にバージョンアップしたら音がでなくなったときの対処法
・PDFファイルにパスワードを設定する方法
・USBメモリをLinuxのコマンドラインからフォーマット(初期化)する方法
・flvファイルをmp4ファイルに変換する/サイズの大きな動画を縮小する(ffmpeg)