e4rat:大幅提升Linux开机速度
警告:此软件仅限原生ext4文件系统使用。其他文件系统以及从低版本升级的ext4文件系统用户不要使用,否则将导致灾难性后果。 本着负责的态度,先Warning。
e4rat是个好东西。其原理大致是(我猜的):通过磁盘整理有序化开机要加载的文件,并在系统启动阶段把数据预读到内存,充分使用内存和IO资源。
AUR上大家的溢美之词:
snack 发表于 Mon, 20 Jun 2011 23:03:28 +0000
Just one word: amazing! Can't believe such an improvement can be obtained so simply. Definitely one of the most notable utilities I've ever tried.
bwat47 发表于 Sat, 11 Jun 2011 00:55:03 +0000
Very impressive stuff! I have a laptop with a 5400rpm drive. This made like halved my boot time (gdm starts way faster, login is faster) all my apps like chrome/banshee/empathy start as fast as if they were cached in memory already :)
drexya 发表于 Sat, 04 Jun 2011 02:52:06 +0000
Wow, impressive results Oo.
可以看看官方给的效果图,Amazing诶!
使用前
使用后
本文针对Arch系统,介绍一下使用方法。
1. 系统要求:
根文件系统是原生ext4,即一开始就格式化成ext4了,不是从ext2、ext3升级的。
内核支持audit。repo中的内核都支持,手动编译内核的需要注意一下。
2. 安装:
yaourt -S e4rat
或者自己从AUR下载脚本编译。
3. 收集信息:
grub中Linux启动项最后加上参数:
init=/sbin/e4rat-collect
启动后e4rat会记录120秒内系统打开的文件。可以在 /etc/e4rat.conf 修改等待时间(timeout)。
PS:据我观察,收集信息时系统启动会变得格外的慢,可能要一分钟以上。
4. 整理磁盘:
收集信息后,会生成 /var/lib/e4rat/startup.log 文件,里面记录的就是启动时打开的所有文件。然后要整理磁盘,该操作需要在单用户模式下执行:
sudo init 1
然后:
e4rat-realloc /var/lib/e4rat/startup.log
5. 大功告成:
修改grub菜单文件,Linux启动项参数加入:
init=/sbin/e4rat-preload
重启后e4rat就开始工作了。
6. 其他:
a. 不要让e4rat预读太多东西,启动到桌面就足够了。如果预读太多东西(比如浏览器、文本编辑软件),反而会拖慢开机速度。
b. 以上都是针对Arch默认的init程序。如果你使用其他init机制,比如systemd,需要修改 /etc/e4rat.conf ,设置init参数:
init /bin/systemd
c. 该软件对SSD固态硬盘没什么作用。