Answers:
通常,启动时加载的程序越少,系统速度就应该越快。尝试使用BUM(来自软件中心)禁用一些不需要的服务,并确保您没有安装任何不必要的程序,这些程序在启动时会被加载。最后,将固态驱动器(SSD)用作引导设备应该可以大大改善引导状态。
另一件事,您的文件系统类型也有所不同。EXT4遭受了一些性能下降(根据phoronix),但是我仍然发现EXT4非常适合快速启动。
前几天我刚碰到这个。其“ e4rat” 说明在这里
这个小应用程序很棒。
我选择了运行于2800+的过时的单处理器AMD sempron,通常在1.45分钟至27.885秒的时间内启动Natty。
我有引导图来证明这一点。这很疯狂!
缩短启动时间与禁用/管理服务高度相关,但是当前的答案缺少禁用使用的服务的详细信息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使服务完全禁用,您无法启动它。您必须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工具是systemd-manager
,它仍处于开发阶段,还没有成为通往Ubuntu官方存储库的途径。但是,您可以从Systemd-Manager的github页面上非常容易地安装它。这些发行版包含一个.deb软件包,该软件包非常易于安装。不过,您需要GTK-3.16或更高版本。
下载并安装后,可以使用systemd-manager
命令启动它。启动它。
该应用程序有两个主要视图。一种是系统单位,另一种是系统分析。您可以使用左上角的标签进行切换。查看屏幕截图。
您可以管理三种类型的单位。服务,套接字和计时器。您可以在它们之间切换。查看屏幕截图。
显示信息
三个主要选项卡是“ 文件”,“ 日志”和“ 依赖项”。
状态指示灯
单位名称旁边有两列指示状态。左一个指示是否已启用该设备在引导时启动,右一个指示该设备当前是否正在运行。在图片中看到它们。
控制开关
要切换启动时启用或运行状态,请在右上角有两个切换按钮。 启用表示设备将启动和引导。在图片中看到它们。
该应用程序的完整视图如下所示
希望这会有所帮助。我从有关systemd的其他答案中受益匪浅,但确实需要将信息收集到一个地方。
更多信息:
要了解更多信息systemd
,请访问以下链接:
其他答案有不同的建议。包括购买SSD,增加RAM等。如果可以的话,这些绝对会有所帮助,尤其是SSD建议。
从磁性驱动器切换到固态驱动器,或从磁性和固态混合驱动器切换。这将使任何操作系统的启动速度大大加快。混合驱动器并不贵。如果您不想走那么远,那么只需购买7200或10K RPM硬盘。
fastboot
2.)这些磁盘对于启动过程并不重要,但磁盘和共享的安装是以同步方式完成的。
我假设您是在谈论Ubuntu 11.04?
我已经尝试了很长时间了,但没有成功。无论如何,这些步骤使几秒钟有所不同:
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 /核心时才这样做!
打开/etc/init.d/rc
(您需要root特权)并替换CONCURRENCY=none
为CONCURRENCY=shell
。然后保存文件。
“ CONCURRENCY = shell现在已过时,并且别名为'makefile'。自2010-05-14起,默认值为'makefile'。” 〜乔纳森
这有点高级,所以如果您不知道这意味着什么,最好不要这样做。
安装bum
,然后以root特权启动它。然后,只需取消选中您确定不需要的守护程序前面的框即可。例如,当您没有扫描仪时,可以禁用saned
。如果您从不使用蓝牙,也可以禁用bluetooth
它。
完成后,点击“ 应用”按钮,然后单击“ 是”或“ 否”(无关紧要)。
完成这些步骤后,重新启动两次。出于某种原因,更改所有这些选项后的第一次重新启动会比其他选项花费更长的时间,但是您应该在第二次重新启动期间注意到一些差异。
使用bootchart可以生成启动过程所需时间的详细图表。这可能有助于确定要调整或删除的内容。从https://wiki.ubuntu.com/BootCharting:
用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,virtual box等),就是这样!如果您不想要该服务,则可以将其完全删除,但是禁用它已绰绰有余。
sudo apt-get install bum
像大多数博客所指向的一样,尝试编辑“ / etc / default / grub”文件。您可能知道一个。首先添加单词“配置文件”,然后重新启动,然后删除“配置文件”,然后再次重新启动...它确实确实提高了启动速度。这是一个示例:http : //lgjsheron.wordpress.com/2010/07/06/how-to-speed-up-boot-of-ubuntu-10-04-lucid-lynx/
编辑2016年10月25日:如果您因为无法进行休眠而不希望使用休眠,或者您更喜欢使用suspend / S3,则可以通过添加noresume
到GRUB_CMDLINE_LINUX_DEFAULT
in /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发行版的最新版本。
配料:
我不得不说32秒实际上已经足够了。使用传统硬件将不会更快。我的新Lenovo T530在传统模式下花费的时间相同。我最近安装了新的微型固态硬盘,并在UEFI模式下安装了Ubuntu,从按下电源按钮登录可以节省15秒。仍然感觉在发布过程中浪费了5秒,但绝对没有浪费时间启动实际的操作系统。微型SSD的传输速度为280 MB / s,可能是500 MB / s的SSD可能需要7秒。但是,真正由制造商决定的是减少预操作系统的启动时间(POST等)。
关于启动性能分析和Shell并发。这些信息可以看作是过时的或最终是神话。我记得几年前在Linux或核心系统中添加了自动引导配置文件或使引导配置文件绝对多余的东西,从那时起,在安装了新的内核软件包之后,我不再使用引导配置文件。据说shell并发设置会破坏事情,但是对于Systemd和Upstart来说,它应该也是多余的,并且不会产生积极的影响。
systemd
该工具的系统(自IIRC 15.04起)附带该工具systemd-analyze
,可以帮助您分析哪个进程需要启动多长时间。请参阅man systemd-analyze
以了解其所有选项,systemd-analyze blame
尽管您可能会使用最多。