如何提高启动速度?


67

我看过许多使Ubuntu更快的视频,但是这些方法只能使桌面性能更快。

我希望使我的计算机启动更快。我能做些什么来使Ubuntu引导速度更快吗?


5
使用systemd该工具的系统(自IIRC 15.04起)附带该工具systemd-analyze,可以帮助您分析哪个进程需要启动多长时间。请参阅man systemd-analyze以了解其所有选项,systemd-analyze blame尽管您可能会使用最多。
字节指挥官

@ByteCommander一个逐步的答案将完成这项工作。
安华

Answers:


28

通常,启动时加载的程序越少,系统速度就应该越快。尝试使用BUM(来自软件中心)禁用一些不需要的服务,并确保您没有安装任何不必要的程序,这些程序在启动时会被加载。最后,将固态驱动器(SSD)用作引导设备应该可以大大改善引导状态。

另一件事,您的文件系统类型也有所不同。EXT4遭受了一些性能下降(根据phoronix),但是我仍然发现EXT4非常适合快速启动。


您可以添加哪些服务可能被禁用,而这通常是没有用的?
Philippe Gachoud 2015年

@PhilippeGachoud我现在真的不记得了。这是从2010年开始!
罗兰迪克(RolandiXor)

我正在使用向后兼容的SSD,而我的主板是SATA。它快速启动疯狂。
userDepth

17

前几天我刚碰到这个。其“ e4rat” 说明在这里

这个小应用程序很棒。

我选择了运行于2800+的过时的单处理器AMD sempron,通常在1.45分钟至27.885秒的时间内启动Natty。

我有引导图来证明这一点。这很疯狂! 在此处输入图片说明


1
这真的有帮助!!!
user12164 2012年

更多的人需要了解e4rat,这是一个很棒的工具,它在许多不同的技巧和窍门中做出了最大的改进。
Victor Bjelkholm

3
12.04仍然合法吗?我听说这会引起尿素黑头的问题。这是真的?
user138784 2013年

据我所知,@ user138784是因为Uradadahead的作用与e4rat相似,所以它们显然是冲突的。但是由于某种原因,e4rat似乎比尿素黑头更好。另外,也许会很有用-e4rat出于某种原因默认情况下不起作用,需要进行一些调整,否则不会创建日志文件。
Hi-Angel

e4rat在16.04中不起作用
Anwar

17

缩短启动时间与禁用/管理服务高度相关,但是当前的答案缺少禁用使用的服务的详细信息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为实际的服务名称,例如postgresql@9.5-main.service

请注意,禁用自动启动不会使服务无法启动。如果需要,可以在引导后启动该服务。如果要完全禁用它,请阅读下一节

完全禁用服务。

如果要完全禁用服务以使其无法启动,则应使用mask而不是禁用。像这样

sudo systemctl mask <SERVICE-NAME>

<SERVICE-NAME>服务的实际名称替换

mask和之间的区别disable是mask使服务完全禁用,您无法启动它。您必须unmasksystemd开头(仍然可以以开头service)。但是disable只需禁用服务的自动启动,您就可以稍后启动它。

例如,在屏蔽我的postgresql@9.5-main.service服务之后,当我想用systemctl以下消息启动它时

Failed to start postgresql@9.5-main.service: Unit postgresql@9.5-main.service is masked.

GUI工具

我特别感兴趣的一个GUI工具是systemd-manager,它仍处于开发阶段,还没有成为通往Ubuntu官方存储库的途径。但是,您可以从Systemd-Manager的github页面上非常容易地安装它。这些发行版包含一个.deb软件包,该软件包非常易于安装。不过,您需要GTK-3.16或更高版本。

下载并安装后,可以使用systemd-manager命令启动它。启动它。

该应用程序有两个主要视图。一种是系统单位,另一种是系统分析。您可以使用左上角的标签进行切换。查看屏幕截图。

视图间切换

您可以管理三种类型的单位。服务套接字计时器。您可以在它们之间切换。查看屏幕截图。

在单位类型之间切换

显示信息

三个主要选项卡是“ 文件”,“ 日志”和“ 依赖项”

  • 文件是所选单元的配置文件。
  • 日志是实时系统的输出,同时启用/禁用/启动/停止单位
  • 依赖关系显示必须启用哪些其他服务或单元才能启动选定的服务。

状态指示灯

单位名称旁边有两列指示状态。左一个指示是否已启用该设备在引导时启动,右一个指示该设备当前是否正在运行。在图片中看到它们。

在启动状态下启用

当前运行状态

控制开关

要切换启动时启用或运行状态,请在右上角有两个切换按钮。 启用表示设备将启动和引导。在图片中看到它们。

拨动开关以启用/启动

该应用程序的完整视图如下所示

完整视图

希望这会有所帮助。我从有关systemd的其他答案中受益匪浅,但确实需要将信息收集到一个地方。

更多信息

要了解更多信息systemd,请访问以下链接:

其他答案有不同的建议。包括购买SSD,增加RAM等。如果可以的话,这些绝对会有所帮助,尤其是SSD建议。


15

从磁性驱动器切换到固态驱动器,或从磁性和固态混合驱动器切换。这将使任何操作系统的启动速度大大加快。混合驱动器并不贵。如果您不想走那么远,那么只需购买7200或10K RPM硬盘。


6
磁盘速度是当前的引导瓶颈。
斯科特,2010年

由于我的磁盘是SATA,因此@scottl且我的启动时间与@RobinJ报告的1:45分钟类似,我怀疑是否有任何理由需要特别注意磁盘性能。然而,我确实看到的是,尽管1.)使用了fastboot2.)这些磁盘对于启动过程并不重要,但磁盘和共享的安装是以同步方式完成的。
0xC0000022L

13

我假设您是在谈论Ubuntu 11.04?
我已经尝试了很长时间了,但没有成功。无论如何,这些步骤使几秒钟有所不同:

1.删​​除不需要的软件包

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

2.在引导过程中同时使用两个内核/ CPU

仅当您确定计算机具有多个CPU /核心时才这样做!
打开/etc/init.d/rc(您需要root特权)并替换CONCURRENCY=noneCONCURRENCY=shell。然后保存文件。

更新资料

“ CONCURRENCY = shell现在已过时,并且别名为'makefile'。自2010-05-14起,默认值为'makefile'。”    〜乔纳森

3.禁用不需要的守护程序

这有点高级,所以如果您不知道这意味着什么,最好不要这样做。 安装bum,然后以root特权启动它。然后,只需取消选中您确定不需要的守护程序前面的框即可。例如,当您没有扫描仪时,可以禁用saned。如果您从不使用蓝牙,也可以禁用bluetooth它。
完成后,点击“ 应用”按钮,然后单击“ 是”或“ 否”(无关紧要)。

完成这些步骤后,重新启动两次。出于某种原因,更改所有这些选项后的第一次重新启动会比其他选项花费更长的时间,但是您应该在第二次重新启动期间注意到一些差异。


3
CONCURRENCY = shell现在已过时,并且别名为“ makefile”。自2010年5月14日起,默认设置为“ makefile”。
乔纳森(Jonathon)2013年

是否可以列出(或给出简短说明)您建议删除的软件包?(您的解释的第一点)。永远记住,有市民表示,根本就复制粘贴一下子都无法从终端等读取
威廉·Onsem

1
@CommuSoft因为无论如何,此答案都是关于Ubuntu 11.04的,因此无论如何都不要将相同的答案应用于最新版本。其中的某些东西将不再起作用,而其他的东西可能会破坏系统。
RobinJ



3

如果我进行其他安装并手动添加GUI软件包,则我的机器启动WAY的速度会更快。当然,它只是去除了我不需要添加的东西。如果您要返回“如何编译/安装X,Y和Z应用程序”,这可能不是一个好主意。


3

对于其他为此苦苦挣扎的人,只需安装BUM并以root用户身份启动它(请小心使用gksudo而不是普通的sudo)。然后取消选中要禁用的服务(我禁用了Apache2,PostGreSQL守护程序,MySQL,virtual box等),就是这样!如果您不想要该服务,则可以将其完全删除,但是禁用它已绰绰有余。

sudo apt-get install bum

在此处输入图片说明



2

编辑2016年10月25日:如果您因为无法进行休眠而不希望使用休眠,或者您更喜欢使用suspend / S3,则可以通过添加noresumeGRUB_CMDLINE_LINUX_DEFAULTin /etc/default/grub和run 在Grub中禁用它update-grub。以下是运行GalliumOS的Chromebook N22的示例:

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

我找到这个是因为我对引导过程中的“本地预运行脚本”部分感到好奇,并调查了initramfs中的一些内容,使我选择了以前仅在无法从休眠状态唤醒时才使用的此选项。


编辑06.08.2016:您应该更新到systemd附带的Linux发行版的最新版本。


配料:

  • 获得具有无膨胀UEFI代码或Coreboot的UEFI系统
  • 取得SSD
  • 在UEFI模式下安装Ubuntu
  • 奖励:压缩的initramfs与XZ LZOP,只包括所需要的模块。(尝试之前,您应该真的知道自己在做什么。)
  • 奖励:删除不必要的守护程序或将其配置为更快启动。尽管默认安装已经足够好了。
    • 示例:btrfs的init作业正在寻找要挂载的池,而此设备上没有btrfs卷。这使我从某些安装中删除了btrfs-tools。

我不得不说32秒实际上已经足够了。使用传统硬件将不会更快。我的新Lenovo T530在传统模式下花费的时间相同。我最近安装了新的微型固态硬盘,并在UEFI模式下安装了Ubuntu,从按下电源按钮登录可以节省15秒。仍然感觉在发布过程中浪费了5秒,但绝对没有浪费时间启动实际的操作系统。微型SSD的传输速度为280 MB / s,可能是500 MB / s的SSD可能需要7秒。但是,真正由制造商决定的是减少预操作系统的启动时间(POST等)。

关于启动性能分析和Shell并发。这些信息可以看作是过时的或最终是神话。我记得几年前在Linux或核心系统中添加了自动引导配置文件或使引导配置文件绝对多余的东西,从那时起,在安装了新的内核软件包之后,我不再使用引导配置文件。据说shell并发设置会破坏事情,但是对于Systemd和Upstart来说,它应该也是多余的,并且不会产生积极的影响。


1

垃圾收集器是正确的。请谨慎操作。但是,您可以安全地禁用的某些程序是电子邮件弹出实用程序,例如Evolution,尤其是如果您最初不使用Evolution时。另外,如果您根本不打印,则可以禁用与打印相关的任何功能。如果已连接,则与“无线”相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.