K.I.S.S. – 简单哲学 Linux, Freedom, Arch, Python, Gtk+, C … Keep It Simple, Stupid!

29六/099

新一代的快速启动脚本——quick-init

好吧,这又是一篇 Linux 专用的文章,使用其他发行版的 TX 们请瞪眼看着吧……

还记得上次说的 么? 系列脚本就是 的延续,其实这不是什么新的东西,自从我发了那两篇文章, 就停止了,据说是出于安全性考虑,不再开发使用 C 语言的 ,而是使用像 Linux 原生的 init-scripts 一样的 Shell 脚本。

那么 的原理是什么呢?

The reimplementation of init-scripts consists in the modification of the inittab runlevels and the start of system and Xorg without udev.
The first system level contains the creation of static devices necessary to system until fscheck. Then Xorg is started and in runlevel 3 it starts udev, swapon, all services etc...

大意说就是加载必要的设备和配置,然后在 udev 没有启动的情况下马上启动 Xorg,然后再启动 udev,swapon 和其他服务等等。

我们通常所说的启动时间都是进入 Xorg 的时间,这样启动速度就快了很多了~

的安装很简单,直接 yaourt -S 即可,重启就可以看到效果,如果你对 init-scripts 比较熟悉,还可以自行修改,去掉一些用不到的设置,比如 lvm、raid、其他显卡的配置,你还可以通过参考《启动后自动进入X》这篇文章来绕过 GDM、KDM 等显示管理器,更加快速的启动电脑。

来看看我优化的效果吧~(这是启用了自动加载模块的效果,如果手动加载的话,可能会更快)

bootchart.png

相关链接:AUR 上的 quick-init 包论坛上的官方讨论帖

12五/091

Finit-ARC 多项更新:我的快速启动终于完美了~

上次说的 Finit-ARC 快速启动方案,就像文中所说,其实在我这里根本用不了。
这是当时论坛上已经确认的 的 BUG,好在作者 adriano 更新很是勤奋,一天内在 github 上提交了十多次更新,不但解决了 hald 段错误的问题,还有很多的改进。

主要的改进有:
- 增加新的静态设备
- 支持 LVM
- 启动顺序调整(udev 和 hal 可以用了)
- 修复时钟 BUG
- 增加 swap 挂载功能
- 为 Xorg 热插拔支持自动开启 HAL 和 DBUS
现在作者似乎想放弃 ,开始一个新的、与 Linux 完美兼容的 init 项目,拭目以待吧。
另外,如果你关注 ,或者想要帮忙,可以去这里看看。
下面是我现在的启动图,虽然比不好使的时候长了一秒钟。

bootchart_1.png

9五/0910

Finit-ARC: 让你的 Arch Linux 4 秒启动!

感谢 YCF 兄在 twitter 上的推荐。


是什么呢?这是一个加快 Linux 系统启动的程序,它的前身是大名鼎鼎的 fast-init。
我们知道,通常 Linux 启动是靠脚本来控制的,这可能是 /etc/rc.sysinit,大家知道,Shell 脚本是解释性的,速度很慢(相对编译性的语言来说),那么,何不用一种编译性的语言来操纵系统的启动呢?
Finit_ARC 就是基于这一原理,它采用纯 C 语言写成,设置环境变量等等操作所调用的都是系统的 API,还有一些使用 system() 函数执行的程序,并且处理的时候还用了多进程,这样效率岂不是有很大的提高?
是的,经过实验,使用 Finit_ARC 启动的电脑,从 GRUB 到 Shell 登录,可能达到只需要 3-5 秒!
请注意: 目前还是 Beta 版本,并且只能用于 Linux!
那么,怎样安装 呢?
1.从这里安装相对稳定版:
http://aur.archlinux.org/packages.php?ID=25159
或者从这里安装 git 版(仅用于测试目的!
http://aur.archlinux.org/packages.php?ID=26314
2.安装完成后务必正常启动(或重启)系统一次。
3.编辑 //grub/menu.lst,把 init=/sbin/ 作为内核参数加入进去。
重要! 不支持 UUID,所以在 //grub/menu.lst 和 /etc/fstab 中,应该把所有 UUID 形式改成 /dev/sd** 的格式!
更详细的介绍和一些注意事项,可以参考 Arch Linux 官方论坛


下面说说我的情况:
我的电脑启动速度没有经过任何优化,有的话也仅仅是开机不让 NTFS 分区挂载,模块用的是 AUTOLOAD,所以比较费时间。
使用 之前,我的启动时间是 21 秒。

bootchart_old.png

使用 之后,启动时间是 13 秒。

bootchart.png

不过,很悲惨的,遇到了 hald 段错误的问题,开机后键盘鼠标都不能用……论坛上其他人也出现了此问题,所以,优化要谨慎啊……
不过其实也没啥风险,只要 fallback 那个条目的内核参数没被你改了,出了问题从 fallback 进系统改回来就行了。
有没有想要试一下的呢?召唤小白!