如何提高启动速度?

我见过许多让Ubuntu更快的video,但这些方法只会让桌面性能更快。

我希望让我的电脑启动更快。 他们可以做些什么来让Ubuntu启动速度更快?

通常,启动时加载的程序越少,系统应该越快。 尝试BUM(从软件中心)禁用一些不需要的服务,并确保您没有安装任何不必要的程序,这些程序将在启动时加载。 最后,使用固态驱动器(SSD)作为启动设备应该可以显着提高启动时间。

哦,还有一件事,你的文件系统类型也有所不同。 EXT4遭遇了一些性能回归(根据phoronix),但我仍然发现EXT4非常适合快速启动。

前几天我才碰到这个。 它的“e4rat” 指示在这里

这个小应用程序很棒。

我采用了一台过时的单处理器AMD sempron,运行速度为2800+,正常率为1.45分钟至27.885秒。

我有启动图表来certificate这一点。 这很疯狂! 在此处输入图像描述

从磁力驱动器切换到固态驱动器或磁性和固态混合驱动器。 这将使任何操作系统启动速度更快。 混合动力驱动器并不是那么昂贵。 如果你不想走那么远,那么只需要一个7200或10K RPM的硬盘。

改进启动时间与禁用/管理服务密切相关,但当前的答案缺乏禁用使用systemd服务的细节。

什么是systemd?

简而言之,systemd是Linux的系统和服务管理器,与SysV和LSB init脚本兼容。 有关此内容的更多信息,请参阅官方项目页面 。

检查哪些服务占用大部分时间

使用以下命令检查哪些服务占用大部分时间

 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替换some-time-eater-service.service postgresql@9.5-main.service等实际服务名称。

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

完全禁用服务。

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

 sudo systemctl mask  

替换为实际名称

maskdisable之间的区别是掩码使服务完全禁用,您无法启动它。 您必须unmask以使用systemd启动它(您仍然可以从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 Units ,另一个是Systemd Analyze 。 您可以使用左上角的标签进行切换。 查看截图。

在视图之间切换

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

在单位类型之间切换

显示信息

三个主要选项卡是FilesJournalDependencies

  • 文件是所选单元的配置文件。
  • Journal是启用/禁用/启动/停止单元时的实时systemd输出
  • 依赖关系显示必须启用其他服务或单元才能启动所选服务。

状态指标

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

在启动状态下启用

目前正在运行状态

控制开关

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

Toogle切换启用/启动

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

完整视图

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

更多信息

要了解有关systemd更多信息,您可以访问以下链接:

  • 我发现ArchLinux的Wiki特别丰富。 你可以在这里查看https://wiki.archlinux.org/index.php/systemd
  • 官方网站: https : //www.freedesktop.org/wiki/Software/systemd/

    其他建议

其他答案有不同的建议。 包括购买SSD,增加RAM等。如果你能负担得起,那些肯定会有所帮助,尤其是SSD的建议。

我假设你在谈论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=shell替换CONCURRENCY=none 。 然后保存文件。

更新

“CONCURRENCY = shell现已过时,别名为’makefile’。自2010-05-14以来,默认为’makefile’。” 〜 乔纳森

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

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

完成这些步骤后,重新启动两次 。 由于某些原因,在更改所有这些选项后首次重新启动所需的时间比其他选项要长得多,但在第二次重启期间您应该注意到一些差异。

使用bootchart生成启动过程需要时间的详细图表。 它可能有助于决定调整或删除的内容。 来自https://wiki.ubuntu.com/BootCharting :

  • 通过apt-get或Synaptic安装bootchartpybootchartgui软件包
  • 重新启动计算机
  • 引导图在/ var / log / bootchart中作为.png文件

如果我进行了备用安装并手动添加了GUI软件包,那么我的机器启动速度会更快。 当然,它只是删除我不需要的东西,我能够添加自己。 如果您打算回来“如何编译/安装X,Y和Z应用程序”,这可能不是一个好主意。

用SSD替换你的硬盘可能是唯一实用的方法。 例:

http://www.engadget.com/2011/08/17/samsungs-6gbps-ssd-gets-a-consumer-label-october-ship-date/

时间听起来有点过分,但你还没有发布任何细节。

对于其他正在努力解决此问题的人,只需安装BUM并以root用户身份启动它(小心使用gksudo而不是普通的sudo)。 然后取消检查要禁用的服务(我禁用了Apache2,PostGreSQL守护进程,MySQL,虚拟框等),就是这样! 您可以完全删除该服务,如果您不希望它在那里,但禁用它是绰绰有余的。

 sudo apt-get install bum 

在此处输入图像描述

Garbagecollector是对的。 谨慎行事。 但是你可以安全禁用的一些程序是电子邮件弹出工具,例如Evolution,特别是如果你最初没有使用Evolution。 此外,如果您根本不打印,可以禁用与打印相关的任何内容。 如果你有线,无线相同。

尝试编辑“/ 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:如果您不打算使用hibernate,因为您不能或者您更喜欢暂停/ S3,那么您可以在Grub noresume GRUB_CMDLINE_LINUX_DEFAULT添加到/etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT并运行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 

我发现这是因为我对启动期间的“运行脚本local-premount”部分感到好奇,并在initramfs中进行了一些调查,这使我得到了这个选项,我以前只在我的系统无法从hibernate状态唤醒时使用。


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


配料:

  • 获取具有无膨胀UEFI代码或Coreboot的UEFI系统
  • 获得SSD
  • 在UEFI模式下安装Ubuntu
  • 额外:使用xz lzop压缩initramfs并仅包含所需的模块。 (在尝试这样做之前,你应该真的知道自己在做什么。)
  • 额外奖励:删除不必要的守护进程或将其配置为更快启动。 虽然默认安装已经足够好了。
    • 示例:btrfs的init作业正在寻找要在此设备上没有btrfs卷的情况下安装的池。 这使我从我的一些安装中删除了btrfs-tools。

我不得不说32秒实际上已经足够好了。 传统硬件不会快得多。 我的新联想T530在传统模式下启动所需的时间相同。 使用我最近安装的新型微型SSD和Ubuntu处于UEFI模式,按下电源按钮登录时间缩短至15秒。 它仍然感觉它在发布过程中浪费了5秒钟,但它绝对不会浪费时间来启动实际的操作系统。 微型SSD的传输速度为280 MB / s,可能是500 MB / s SSD,可能会达到7秒。 但是制造商真的要减少操作系统的启动时间(POST和什么不是)。

关于启动分析和shell并发。 这些信息可以被视为过时或最终的神话。 我记得多年前在Linux或核心系统中添加了自动启动分析或使启动分析绝对多余的东西,从那以后我在安装新的内核软件包后不再使用启动分析。 据说shell并发设置会破坏事物,但是对于Systemd和Upstart来说它也应该是多余的,并且应该没有任何积极的影响。