为什么使用 grub 中的“profile”来优化启动时间对我不起作用?我该如何恢复效果?

为什么使用 grub 中的“profile”来优化启动时间对我不起作用?我该如何恢复效果?

在此处输入图片描述我想加快启动时间,我遵循了提示到:

  1. 编辑“/etc/default/grub”并将行更改GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash profile"
  2. 运行sudo update-grub2并启动机器;
  3. 再次编辑 grub 配置文件并profile从中删除GRUB_CMDLINE_LINUX_DEFAULT
  4. 再次更新 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

原始文件readaheadreadahead-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 或您正在使用的任何内容。

如果你想真正了解启动需要多长时间,请查看启动图. 它生成启动过程的图形表示。

相关内容