jnut Asked: 2010-10-30 09:56:39 +0800 CST2010-10-30 09:56:39 +0800 CST 2010-10-30 09:56:39 +0800 CST 如何提高启动速度? 772 我看过很多让 Ubuntu 更快的视频,但这些方法只会让桌面性能更快。 我希望让我的电脑启动更快。我能做些什么来让 Ubuntu 启动得更快吗? boot performance startup 11 个回答 Voted Best Answer RolandiXor 2010-10-30T12:09:23+08:002010-10-30T12:09:23+08:00 通常,您在启动时加载的程序越少,您的系统应该越快。尝试 BUM(来自软件中心)禁用一些不需要的服务,并确保您没有安装任何将在启动时加载的不必要的程序。最后,使用固态硬盘 (SSD) 作为启动设备应该会显着改善启动时间。 哦,还有一件事,您的文件系统类型也会有所不同。EXT4 遭受了一些性能衰退(根据 phoronix),但我仍然发现 EXT4 非常适合快速启动。 Anwar 2016-08-07T07:14:50+08:002016-08-07T07:14:50+08:00 改善启动时间与禁用/管理服务高度相关,但目前的答案缺乏有关禁用使用systemd. 什么是系统化? 简而言之,systemd 是 Linux 的系统和服务管理器,兼容 SysV 和 LSB 初始化脚本。更多相关信息可以从官方项目页面阅读。 检查哪些服务花费的时间最多 使用以下命令检查哪个服务花费的时间最多 systemd-analyze blame 在引导期间禁用服务的自动启动 如果要在引导期间禁用服务的自动启动,可以使用以下命令 sudo systemctl disable some-time-eater-service.service --now 但是,您可能希望查看哪些其他服务需要相关服务。要检查使用以下命令 systemctl list-dependencies some-time-eater-service.service --reverse 注意:替换some-time-eater-service.service为实际的服务名称,例如[email protected]. 请注意,禁用自动启动不会使服务无法启动。当需要时,可以在启动后启动该服务。如果您想完全禁用它,请阅读下一节 完全禁用服务。 如果您想完全禁用某个服务以使其无法启动,则应使用mask而不是禁用。像这样 sudo systemctl mask <SERVICE-NAME> <SERVICE-NAME>用服务的实际名称替换 mask和之间的区别disable是掩码使服务完全禁用,您无法启动它。你必须unmask用systemd启动它(你仍然可以用 启动service)。但disable只需禁用服务的自动启动,您可以稍后再启动它。 例如,屏蔽我的[email protected]服务后,当我想启动它时,systemctl会显示以下消息 Failed to start [email protected]: Unit [email protected] is masked. 图形用户界面工具 我特别感兴趣的一个 GUI 工具是systemd-manager,它仍处于开发阶段,尚未成为官方 Ubuntu 存储库的路径。但是,您可以从Systemd-Manager 的 github 页面轻松安装它。这些版本包含一个非常容易安装的 .deb 包。不过,您需要 GTK-3.16 或更高版本。 下载并安装后,您可以使用systemd-manager命令启动它。启动它。 该应用程序有两个主要视图。一种是Systemd Units,另一种是Systemd Analyze。您可以使用左上角的标签进行切换。请参阅屏幕截图。 您可以管理三种类型的单位。服务、套接字和计时器。您可以在它们之间切换。请参阅屏幕截图。 显示信息 三个主要选项卡是Files、Journal、Dependencies。 Files 是所选单元的配置文件。 日志是启用/禁用/启动/停止单元时实时 systemd 的输出 依赖关系显示必须启用哪些其他服务或单元才能启动选定的服务。 状态指示灯 单位名称旁边有两列表示状态。左侧表示该单元是否可以在启动时启动,右侧表示该单元当前是否正在运行。在图片中看到它们。 控制开关 要在启动时启用或运行状态进行切换,右上角有两个切换按钮。 启用意味着设备将启动并启动。在图片中看到它们。 应用程序的完整视图如下所示 希望这会有所帮助。我从有关 systemd 的其他答案中受益,但确实需要在一个地方收集信息。 更多信息: 要了解有关systemd您的更多信息,请访问以下链接: 我发现 ArchLinux 的 Wiki 特别丰富。你可以在这里查看https://wiki.archlinux.org/index.php/systemd 以及官网:https ://www.freedesktop.org/wiki/Software/systemd/ 其他建议 其他答案有不同的建议。包括购买SSD,增加RAM等。如果您负担得起,这些肯定会有所帮助,尤其是SSD建议。 Ringtail 2012-03-27T21:54:32+08:002012-03-27T21:54:32+08:00 我前几天刚碰到这个。它的“e4rat”说明在这里 这个小应用程序很棒。 我使用了一个运行在 2800+ 的过度疲劳的单处理器 AMD sempron,它通常在 1.45 分钟到 27.885 秒时启动 Natty。 我有启动图表来证明这一点。这很疯狂! Jim McKeeth 2010-10-30T20:41:32+08:002010-10-30T20:41:32+08:00 从磁性驱动器切换到固态驱动器或磁性和固态混合驱动器。这将使任何操作系统启动速度更快。混合驱动器并没有那么贵。如果你不想走那么远,那就买一个 7200 或 10K RPM 的硬盘。 RobinJ 2011-08-29T00:25:27+08:002011-08-29T00:25:27+08:00 我假设您在谈论 Ubuntu 11.04?我已经尝试了很长时间,但没有取得太大的成功。这些步骤产生了几秒钟的差异: 删除不需要的包 sudo apt-get purge brltty brltty-x11 foo2zjs min12xxw ttf-indic-fonts-core ttf-kacst-one ttf-khmeros-core ttf-lao ttf-punjabi-fonts ttf-unfonts-core 在引导过程中使用两个内核/CPU 仅当您确定您的计算机具有多个 CPU/内核时才这样做! 打开/etc/init.d/rc(您需要 root 权限)并替换CONCURRENCY=none为CONCURRENCY=shell. 然后保存文件。 更新:“CONCURRENCY=shell 现在已过时并别名为 'makefile'。自 2010-05-14 以来,默认值为 'makefile'。”* ~ Jonathon 禁用不需要的守护进程 这有点高级,所以如果你不知道这意味着什么,最好不要这样做。 安装bum,并以 root 权限启动它。然后只需取消选中您确定不需要的守护程序前面的框即可。例如,当您没有扫描仪时,您可以禁用saned. 如果你从不使用蓝牙,你也可以禁用bluetooth。 完成后,单击“应用”按钮,然后单击“是”或“否”(没关系)。 完成这些步骤后,重新启动两次。出于某种原因,更改所有这些选项后的第一次重新启动比其他选项花费的时间要长得多,但您应该注意到在第二次重新启动期间存在一些差异。 David Andersson 2011-08-29T07:11:24+08:002011-08-29T07:11:24+08:00 使用bootchart生成引导期间所需时间的详细图表。它可能有助于决定调整或删除什么。来自https://wiki.ubuntu.com/BootCharting: 通过 apt-get 或 Synaptic安装bootchart和pybootchartgui包 重启你的机器 引导图位于 /var/log/bootchart 中,为 .png 文件 RobotHumans 2011-02-05T17:06:22+08:002011-02-05T17:06:22+08:00 如果我进行备用安装并手动添加 GUI 包,我的机器启动速度会更快。当然,它只是去掉了我不需要的东西,我可以自己添加。如果您要返回“我如何编译/安装 X、Y 和 Z 应用程序”,这可能不是一个好主意。 Stefano Mtangoo 2011-10-17T04:46:03+08:002011-10-17T04:46:03+08:00 对于其他为此苦苦挣扎的人,只需安装 BUM 并以 root 用户身份启动它(小心使用 gksudo 而不是普通的 sudo)。然后取消选中您要禁用的服务(我禁用了 Apache2、PostGreSQL 守护进程、MySQL、虚拟框等),就是这样!如果您不希望它在那里,您可以完全删除该服务,但禁用它就足够了。 sudo apt-get install bum Xamidovic 2012-04-07T05:16:31+08:002012-04-07T05:16:31+08:00 尝试编辑“/etc/default/grub”文件,就像大多数博客所指向的那样。你可能知道那个。首先添加单词“profile”,然后重新启动,然后删除“profile”,然后再次重新启动......它确实提高了启动速度。这是一个例子: http: //lgjsheron.wordpress.com/2010/07/06/how-to-speed-up-boot-of-ubuntu-10-04-lucid-lynx/ LiveWireBT 2012-07-17T01:17:43+08:002012-07-17T01:17:43+08:00 编辑 25.10.2016:如果您不打算使用休眠,因为您不能或者您更喜欢挂起/S3,那么您可以在 Grub 中通过添加in和运行noresume来禁用它。以下是运行 GalliumOS 的 Chromebook N22 的示例:GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grubupdate-grub livewire@zc01:~$ systemd-analyze Startup finished in 8.580s (kernel) + 4.160s (userspace) = 12.740s livewire@zc01:~$ systemd-analyze Startup finished in 3.595s (kernel) + 4.254s (userspace) = 7.850s 我发现这个是因为我对启动期间的“运行脚本 local-premount”部分感到好奇,并在 initramfs 中进行了一些调查,这导致我选择了这个选项,我以前只在系统无法从休眠状态唤醒时使用。 编辑 06.08.2016:您应该更新到 systemd 附带的最新版本的 Linux 发行版。 原料: 获取带有无膨胀 UEFI 代码或 Coreboot 的 UEFI 系统 获取固态硬盘 在 UEFI 模式下安装 Ubuntu 奖励:使用xz lzop压缩 initramfs并仅包含所需的模块。(在尝试这样做之前,您应该真正知道自己在做什么。) 奖励:删除不必要的守护程序或配置它们以更快地启动。虽然默认安装已经足够好了。 示例:btrfs 的 init 作业正在寻找要挂载的池,而此设备上没有 btrfs 卷。这让我从我的一些安装中删除了 btrfs-tools。 我不得不说 32 秒其实已经足够好了。使用传统硬件不会变得更快。我的新联想 T530 在传统模式下启动所需的时间相同。使用我最近安装的新微型 SSD 和处于 UEFI 模式的 Ubuntu,从按下电源按钮到登录只需 15 秒。仍然感觉它在发布过程中浪费了 5 秒,但绝对不是在浪费时间启动实际操作系统。微型 SSD 的传输速度为 280 MB/s,可能是 500 MB/s 的 SSD 可能会达到 7 秒。但是减少预操作系统启动时间(POST 等等)确实取决于制造商。 关于引导分析和 shell 并发。这些信息可以被视为过时的或最终的神话。我记得几年前在 Linux 或核心系统中添加了自动引导分析或使引导分析绝对多余的东西,从那时起,在安装新的内核包后我不再使用引导分析。据说 shell 并发设置会破坏事情,但对于 Systemd 和 Upstart,它也应该是多余的,并且应该没有积极的影响。
通常,您在启动时加载的程序越少,您的系统应该越快。尝试 BUM(来自软件中心)禁用一些不需要的服务,并确保您没有安装任何将在启动时加载的不必要的程序。最后,使用固态硬盘 (SSD) 作为启动设备应该会显着改善启动时间。
哦,还有一件事,您的文件系统类型也会有所不同。EXT4 遭受了一些性能衰退(根据 phoronix),但我仍然发现 EXT4 非常适合快速启动。
改善启动时间与禁用/管理服务高度相关,但目前的答案缺乏有关禁用使用
systemd
.什么是系统化?
简而言之,systemd 是 Linux 的系统和服务管理器,兼容 SysV 和 LSB 初始化脚本。更多相关信息可以从官方项目页面阅读。
检查哪些服务花费的时间最多
使用以下命令检查哪个服务花费的时间最多
在引导期间禁用服务的自动启动
如果要在引导期间禁用服务的自动启动,可以使用以下命令
但是,您可能希望查看哪些其他服务需要相关服务。要检查使用以下命令
注意:替换
some-time-eater-service.service
为实际的服务名称,例如[email protected]
.请注意,禁用自动启动不会使服务无法启动。当需要时,可以在启动后启动该服务。如果您想完全禁用它,请阅读下一节
完全禁用服务。
如果您想完全禁用某个服务以使其无法启动,则应使用
mask
而不是禁用。像这样<SERVICE-NAME>
用服务的实际名称替换mask
和之间的区别disable
是掩码使服务完全禁用,您无法启动它。你必须unmask
用systemd启动它(你仍然可以用 启动service
)。但disable
只需禁用服务的自动启动,您可以稍后再启动它。例如,屏蔽我的
[email protected]
服务后,当我想启动它时,systemctl
会显示以下消息图形用户界面工具
我特别感兴趣的一个 GUI 工具是
systemd-manager
,它仍处于开发阶段,尚未成为官方 Ubuntu 存储库的路径。但是,您可以从Systemd-Manager 的 github 页面轻松安装它。这些版本包含一个非常容易安装的 .deb 包。不过,您需要 GTK-3.16 或更高版本。下载并安装后,您可以使用
systemd-manager
命令启动它。启动它。该应用程序有两个主要视图。一种是Systemd Units,另一种是Systemd Analyze。您可以使用左上角的标签进行切换。请参阅屏幕截图。
您可以管理三种类型的单位。服务、套接字和计时器。您可以在它们之间切换。请参阅屏幕截图。
显示信息
三个主要选项卡是Files、Journal、Dependencies。
状态指示灯
单位名称旁边有两列表示状态。左侧表示该单元是否可以在启动时启动,右侧表示该单元当前是否正在运行。在图片中看到它们。
控制开关
要在启动时启用或运行状态进行切换,右上角有两个切换按钮。 启用意味着设备将启动并启动。在图片中看到它们。
应用程序的完整视图如下所示
希望这会有所帮助。我从有关 systemd 的其他答案中受益,但确实需要在一个地方收集信息。
更多信息:
要了解有关
systemd
您的更多信息,请访问以下链接:其他建议
其他答案有不同的建议。包括购买SSD,增加RAM等。如果您负担得起,这些肯定会有所帮助,尤其是SSD建议。
我前几天刚碰到这个。它的“e4rat”说明在这里
这个小应用程序很棒。
我使用了一个运行在 2800+ 的过度疲劳的单处理器 AMD sempron,它通常在 1.45 分钟到 27.885 秒时启动 Natty。
我有启动图表来证明这一点。这很疯狂!
从磁性驱动器切换到固态驱动器或磁性和固态混合驱动器。这将使任何操作系统启动速度更快。混合驱动器并没有那么贵。如果你不想走那么远,那就买一个 7200 或 10K RPM 的硬盘。
我假设您在谈论 Ubuntu 11.04?我已经尝试了很长时间,但没有取得太大的成功。这些步骤产生了几秒钟的差异:
删除不需要的包
在引导过程中使用两个内核/CPU
仅当您确定您的计算机具有多个 CPU/内核时才这样做!
打开
/etc/init.d/rc
(您需要 root 权限)并替换CONCURRENCY=none
为CONCURRENCY=shell
. 然后保存文件。更新:“CONCURRENCY=shell 现在已过时并别名为 'makefile'。自 2010-05-14 以来,默认值为 'makefile'。”* ~ Jonathon
禁用不需要的守护进程
这有点高级,所以如果你不知道这意味着什么,最好不要这样做。
安装
bum
,并以 root 权限启动它。然后只需取消选中您确定不需要的守护程序前面的框即可。例如,当您没有扫描仪时,您可以禁用saned
. 如果你从不使用蓝牙,你也可以禁用bluetooth
。完成后,单击“应用”按钮,然后单击“是”或“否”(没关系)。
完成这些步骤后,重新启动两次。出于某种原因,更改所有这些选项后的第一次重新启动比其他选项花费的时间要长得多,但您应该注意到在第二次重新启动期间存在一些差异。
使用bootchart生成引导期间所需时间的详细图表。它可能有助于决定调整或删除什么。来自https://wiki.ubuntu.com/BootCharting:
如果我进行备用安装并手动添加 GUI 包,我的机器启动速度会更快。当然,它只是去掉了我不需要的东西,我可以自己添加。如果您要返回“我如何编译/安装 X、Y 和 Z 应用程序”,这可能不是一个好主意。
对于其他为此苦苦挣扎的人,只需安装 BUM 并以 root 用户身份启动它(小心使用 gksudo 而不是普通的 sudo)。然后取消选中您要禁用的服务(我禁用了 Apache2、PostGreSQL 守护进程、MySQL、虚拟框等),就是这样!如果您不希望它在那里,您可以完全删除该服务,但禁用它就足够了。
尝试编辑“/etc/default/grub”文件,就像大多数博客所指向的那样。你可能知道那个。首先添加单词“profile”,然后重新启动,然后删除“profile”,然后再次重新启动......它确实提高了启动速度。这是一个例子: http: //lgjsheron.wordpress.com/2010/07/06/how-to-speed-up-boot-of-ubuntu-10-04-lucid-lynx/
编辑 25.10.2016:如果您不打算使用休眠,因为您不能或者您更喜欢挂起/S3,那么您可以在 Grub 中通过添加in和运行
noresume
来禁用它。以下是运行 GalliumOS 的 Chromebook N22 的示例:GRUB_CMDLINE_LINUX_DEFAULT
/etc/default/grub
update-grub
我发现这个是因为我对启动期间的“运行脚本 local-premount”部分感到好奇,并在 initramfs 中进行了一些调查,这导致我选择了这个选项,我以前只在系统无法从休眠状态唤醒时使用。
编辑 06.08.2016:您应该更新到 systemd 附带的最新版本的 Linux 发行版。
原料:
奖励:使用xzlzop压缩 initramfs并仅包含所需的模块。(在尝试这样做之前,您应该真正知道自己在做什么。)我不得不说 32 秒其实已经足够好了。使用传统硬件不会变得更快。我的新联想 T530 在传统模式下启动所需的时间相同。使用我最近安装的新微型 SSD 和处于 UEFI 模式的 Ubuntu,从按下电源按钮到登录只需 15 秒。仍然感觉它在发布过程中浪费了 5 秒,但绝对不是在浪费时间启动实际操作系统。微型 SSD 的传输速度为 280 MB/s,可能是 500 MB/s 的 SSD 可能会达到 7 秒。但是减少预操作系统启动时间(POST 等等)确实取决于制造商。
关于引导分析和 shell 并发。这些信息可以被视为过时的或最终的神话。我记得几年前在 Linux 或核心系统中添加了自动引导分析或使引导分析绝对多余的东西,从那时起,在安装新的内核包后我不再使用引导分析。据说 shell 并发设置会破坏事情,但对于 Systemd 和 Upstart,它也应该是多余的,并且应该没有积极的影响。