我想加快启动时间,我遵循了提示到:
- 编辑“/etc/default/grub”并将行更改
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
为GRUB_CMDLINE_LINUX_DEFAULT="quiet splash profile"
; - 运行
sudo update-grub2
并启动机器; - 再次编辑 grub 配置文件并
profile
从中删除GRUB_CMDLINE_LINUX_DEFAULT
; - 再次更新 grub 并重新启动。
但结果根据dmesg
输出是启动时间增加了10秒!
哪里出错了?为什么这个提示对我不起作用?如何恢复此设置?这个配置文件在 Xubuntu 中保存在哪里?我可以毫无问题地删除这个新配置文件吗?
答案1
开头有一句话:尽管您对 Ubuntu 13.10 感到满意,但我仍强烈建议您升级到 14.04 LTS。Saucy 的生命周期已经结束一年多了,这意味着您从那时起就没有收到任何更新 - 安全方面不太好。此外,从技术上讲,EOL 版本与此无关。
内核启动参数profile
是启动时预读分析的触发器。如果设置了该参数,readahead
守护进程将监视启动过程,查找启动期间加载的文件并写入适当的列表文件。该文件将在下次启动时使用,并通过减少硬盘寻道来缩短启动时间。
多年来,出现了一些这样的预读机制。以下是我对这些机制的看法,希望这些看法大致准确。
原始版本readahead
(已弃用)
在 Ubuntu 档案库中找到的最后一个版本可以追溯到 2005 年。您无法再通过存储库安装它。我不知道它什么时候被取代,但一定是在 10.04 之前的某个时间。
- 配置文件存储在
/etc/readahead/boot
。 boot
通过移动和使用内核参数启动来触发分析profile
,尽管此错误报告表明它是一个未记录的和仅限开发人员的选项。
readahead
来自 Fedora
最初来自 Fedora 并且仍然用于无法启动的系统systemd
。
- Ubuntu 软件包是
readahead-fedora
。可通过存储库获取。 - 取代原来的
readahead
- 配置文件存储在
/etc/readahead.d/custom.{early,later}
- 由以下任一方式触发的分析
touch /readahead_collect
或者- 在启动时设置内核参数
profile
。
- 每月至少自动配置一次
- 在 Ubuntu 上被取代
ureadahead
原始文件readahead
并readahead-fedora
创建了启动时所需的文件列表。启动时将按照最小化硬盘寻道的顺序读取此列表。
ureadahead
我认为从 Ubuntu 10.04 开始这是默认设置。
- 预装
- 真正创建一个在启动时加载到内存中的页面文件。
- 存储在 中
/var/lib/ureadahead/pack
。要强制在下次启动时进行分析,请删除此文件。 - 安装
dpkg
触发器,每当安装与之相关的内容时,就会触发并更新页面文件init
。
Ubuntu >= 15.04
systemd
自 Vivid 以来一直是默认的初始化系统。它自带预读机制。ureadahead
不适用于systemd
。但systemd-readahead
现在 even 已经无人维护,并且已弃用,因为现在显然每个人都拥有 SSD……ureadahead
在 Vivid 上,使用 启动时会使用它upstart
。
正如预期的那样,您的系统已
ureadahead
安装,但不接受该profile
参数。设置配置文件后,为什么会经历启动时间延长,这令人难以理解。如果您还应用了所遵循的操作指南中的第二个技巧(CONCURRENCY=...
),这可能是罪魁祸首。upstart
应该自行处理。
如前所述,要强制ureadahead
重新配置,请删除pack
文件
sudo rm /var/lib/ureadahead/pack
以及该目录中可能存在的任何其他文件.pack
。请确保在启动后快速登录,因为ureadahead
即使启动完成后也会记录一些内容。这样,它有望还包括 Unity shell 或您正在使用的任何内容。
如果你想真正了解启动需要多长时间,请查看启动图. 它生成启动过程的图形表示。