As you may see on my about page, I’m using axioo notebook NL model with 1.8Ghz core duo and 3Gb RAM for everyday use. Pretty an old spec and as time goes by, software are getting more resource hungry and bloated. Using KDE4 as my main os, the boot time process is really pain in the ass, especially since my battery are no longer in a good shape and force me to use the charger every time. Very annoying and time consuming waiting a long boot progress just to move from my desk to meeting room since the battery cannot holds the suspended system for more than 3 minutes. Hibernate is also sucks and randomly kill my iwl5100AGN connection and cannot woke up 🙂 Several days ago, during browsing the net, I found this e4rat utility, try it and seriously cut down my boot time from 1 minute 32 seconds into 58 seconds … very impressive!
e4rat (“Ext4 – Reducing Access Times”) is a toolset to accelerate the boot process as well as application startups. Through physical file realloction e4rat eliminates both seek times and rotational delays. This leads to a high disk transfer rate.
You may find the background story from their sourceforge page or the wiki. Very comprehensive tuts and how to, so I won’t re-invent the wheel.
With this graphs you may find very easy to understand what this e4rat utility can do :
And here is how I do it :
Mainly there are 3 steps to achieve :
1. Collect
Collecting the file list during boot progress.
I reboot my notebook, pressing F3 at grub screen so I can enter my kernel option, and then I added this command at the end of option list :
init=/sbin/e4rat-collect
I press Enter and I start my stopwatch on my nexus so I can hardly know how much time my boot time progress before using e4rat. After reaching the desktop and the net_applet monitor is pop up at the taskbar, I stop my stopwatch, it shows 1.32 seconds. 🙂 no laughing please 🙂
2. Reallocate
Physically reallocate block of file on the disk to eliminate both seek times and rotational delays.
Right after I stop my stopwatch, I open konsole, su to root and stop the e4rat-collect utility by killing it
# killall e4rat-collect
I found the file list of my boot progress at /var/lib/e4rat/startup.log and to physically reallocate the file, I type at the same konsole :
# init 1
the desktop manager were kill and I transport to konsole prompt at runlevel 1. Then I type :
sh4.1# e4rat-realloc /var/lib/e4rat/startup.log
I wait for several seconds till e4rat-realloc finish doing the job, and then I type reboot.
3. Preload
After rebooting, at the grub screen, I pressed F3 again to open kernel list options and type this at the end of line :
init=/sbin/e4rat-preload
I press Enter and start my stopwatch once again on my nexus so I can hardly know how much time my boot time progress after using e4rat. After reaching the desktop and the net_applet monitor is pop up at the taskbar, I stop my stopwatch, it shows 58 seconds. 🙂 For permanent use, I edit /boot/grub/menu.lst and add the above command for sure.
Notes :
- The default collecting progress time by e4rat-collect utility is 120 seconds, and you can easily change it to whatever you like so you don’t have to kill it manually like me or if you need a longer time to also capture your favorite programs that you run right on after your desktop starts. It makes a lot of performance increase for my firefox and thunderbird to start.
- Tried on HNM model with core i3, 2Gb Ram and x84_64 LXDE desktop also give enormous result, 42 secs down to 31 secs.
- Not very much useful on a server that boot into CLI, the differences only a fraction of seconds.
Waiting is sucks … heh ? 😀