我的根图系统与OpenRC 初始化启动时间较长,约24秒(从GRUB到GDM)。我想知道这次是否有任何改进的建议方法。但我发现,互联网上关于这个话题的信息并不多。
我有一个 Intel Core i5-6400 和一个 Samsung SSD 970 EVO Plus 500GB。
答案1
每个人都喜欢快速的系统启动,尤其是在日常使用的台式计算机上。 24 秒是一个相当慢的启动时间,我能够将其减少到9秒。
我将向您展示一些技巧,无需触及您的内核。
/etc/rc.conf
让我们从 OpenRC 配置文件开始。有一个选项称为rc_parallel
.默认情况下,服务是一项一项启动的,当某些服务花费更多时间时,就会延迟其他服务。设置rc_parallel="YES"
允许 RC 系统尝试并行启动服务,以稍微提高速度。就我而言,它是 -5 秒。
A也得设置,,,,rc_send_sighup="YES"
因为xdm服务rc_timeout_stopsec="10"
rc_send_sigkill="YES"
不想停下来关闭系统时。
rc 服务、rc 更新
另一件重要的事情是了解哪些服务正在实际启动。这就是您在启动过程中看到的输出。如果你想记录此输出,在文件rc_logger="YES"
中设置。/etc/rc.conf
您可以在这里找到确切的时间、警告消息或错误。
服务分为所谓的运行级别,表示这些服务开始的时间段。系统启动涉及两个运行级别。boot
和default
。
您可以使用以下命令列出所有服务及其运行级别:rc-update show
。
或者您可以使用以下命令列出所有正在运行和已停止的服务:rc-status --servicelist
就我而言,我发现了一些不必要的服务,我可以安全地禁用它们。例如bluetooth
,netmount
或net.enp0s31f6
设置我的网络接口的服务。即使我使用NetworkManager
服务它也已启用。我不需要这些服务,但禁用它们又导致了 10 秒的延迟。
您可以使用以下命令禁用特定运行级别的服务:rc-update del <service> <runlevel>
。
总是检查特定服务的作用,在禁用它之前。您最终可能会得到一个损坏的系统。
我希望这可以帮助别人并节省我必须花费的时间。
答案2
尝试安装app-shells/dash
包,然后使/bin/sh
符号链接指向dash
.后者可以手动或使用eselect sh
子命令完成。
第一个默认执行此操作的发行版是十多年前的 Ubuntu (IIRC),它比尝试并行运行 initscript 产生了更大的差异,正如另一个答案所建议的那样。