之前用的windows,开机时间大概就是半分钟,这次安装了fedora 29,本以为开机速度会快一些,毕竟没有开多少自启动服务,但是查看了一下开机耗费的时间,还是发现了问题。
查看开机启动情况可以用systemd-analyze
:
1systemd-analyze
输出如下:
1Startup finished in 3.964s (firmware) + 15.316s (loader) + 2.471s (kernel) + 3.157s (initrd) + 9.623s (userspace) = 34.534s
2graphical.target reached after 9.382s in userspace
看一下各阶段所花费的时间,可以看到loader
完完全全拖了后腿,这里主要讲一下loader
项的优化,而userspace
的优化可以参考这篇文章进行配置:linux加快开机启动,禁用不需要的服务
这个问题遇到的人似乎不多,因为国内、国外论坛都看过,没有答案,就只能自己寻思了。
分析一下systemd-analyze
的输出结果,发现loader
的启动是在fireware(固件)
和kernel(内核)
之间,所以实际上loader
就是那个系统选择界面,因为电脑上安装了fedora和windows双系统,而除了加载这个界面需要花费时间之外,还有5秒的等待选择时间,所以开机时间可能花在这上面,那么解决办法就呼之欲出了:
直接将grub系统选择界面关掉。
要隐藏系统选择界面,可以修改这个文件:
1vim /etc/default/grub
将GRUB_TIMEOUT=5
后面的数字改为0,即:
1GRUB_TIMEOUT=0
保存退出。此时需要更新grub:
- 如果是bios,执行
1grub2-mkconfig -o /boot/grub2/grub.cfg
- 如果是efi,执行:
1grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
此时重启生效,开机时间立马缩短了10s:
1Startup finished in 3.931s (firmware) + 5.583s (loader) + 2.088s (kernel) + 3.141s (initrd) + 9.638s (userspace) = 24.383s
2graphical.target reached after 9.405s in userspace
还有人说需要同时修改 /etc/grub.d/30_os-prober 文件,也有说只需要修改 /etc/grub.d/00_head 文件不过我没更改该文件也成功了,如果你按照我的方法没成功的,可以试试这些方法。
而取消了系统选择界面之后,如果想要切换成windows系统,那么只要在开机的时候按下F7
即可出现BIOS的系统选择界面,其他人的电脑可能和我这个笔记本不一样,就需要自行去找进入系统选择界面的按键了。