I have Arch Linux (ARM). Will it boot faster on my SD card if I use E4rat to pre-load the boot process? Since it's flash based, will it have any difference in boot time? Is there a port to ARM for Ureadahead?
e4rat eliminates seek times and rotational delays through physical file realloction. It's meant for hard disks with rotating platters and moving heads, no use for solid state devices. SD card is essentially a SSD. From archlinux wiki:
Users of SSD drives do not benefit because there are no moving parts and thus (almost) no disk latency.
Archlinux wiki also mentions Ureadahead, which could be useful for solid state storage devices. I have no experience of it.
The bottleneck in the Pi boot process is the speed at which data is read off the SD card. Using a program to read more data off the card, or to change the order in which the data is read, is unlikely to provide much benefit since the same amount of data still has to be read off the card at the same speed.
The best you could hope for is to have data continue to be read in the background, while some other process is busy and not using the SD card - such as the network looking for an IP address.
You could investigate parallel boot systems like systemd which launch startup programs in parallel to do exactly this. You can also stop services you don't use from loading at boot time, although if you are using the Arch distribution this is pretty cut down already.
Of course the easiest way to get a very noticeable reduction in boot time is to simply buy a faster SD card!
SD-cards are similar to SSD in that both have nearly fixed access time. The documentation for e4rat specifically warns against using e4rat with a SSD, and I'm 100% sure that also applies to SD-cards.
On all-silicon, non-rotating, storage media the readahead software can actually slow things down instead of helping, so make a test with and one without readahead.
Linux setting VM_MAX_READAHEAD (defined in the kernel source as 128 kbytes) is a compromise; for a modern fast rotating hard disk it should be maybe 2 or 4 MB, while for a SD-card (or any other low-throughput flash memory device and most old/cheap SSD:s) it would be best to have just a few kilobytes. I think the setting affects all block devices together, and that it was suggested by the systemd people to increase this value, with good resistance from core kernel devs. Best solution would be to find the best setting automatically; the competition in Redmond does have separate settings for CD/DVD and harddrives since forever.
When measuring boot speed, do several reboots and beware that the first reboot after a configuration change is typically slower if readahead software is installed.
Be careful with ureadahead because of open bugs: * https://bugs.launchpad.net/ubuntu/+source/ureadahead/+bug/577763 * https://bugs.launchpad.net/ubuntu/+source/ureadahead/+bug/644819
For speeding up boot time, see Is there anything I can do to improve boot speed? For other speed improvements, arch-people usually know best so check their list of tweaks: https://wiki.archlinux.org/index.php/Maximizing_Performance