Reading the latest Upstart version (Upstart 1.6 right now), I saw the following line:

Added initramfs-less boot support

Does this mean that the step for initramfs can be skipped?

Will the booting time be faster or the system perform better?


The initramfs, or, initrd, is responsible for setting up your root filesystem before booting the full system. If you have software RAID, that gets setup in the initrd. If you have whole-disk encryption, thats handled in the initrd. Some storage drivers have to have things run from userland before using them, so those are handled in the initrd. Thre are probably other things I'm missing. You can checkout the whole thing on an Ubuntu system by looking in /usr/share/initramfs-tools. The file, init, is actually the init script that gets run first by the kernel. If you look at the bottom, you see where it sets up the new root FS and runs /sbin/init (which is upstart)

But for a specialized system, like say an embedded system, this is all extra noise and complication. It does eat up a TINY fraction of boot time. We're taking 1 second or less, but thats 1 more second to shave off boot time on devices that need to boot fast.

Upstart's part in this play is creating the required device nodes and other system setup that is not handled by initrd/initramfs. It needs to initialize the system to such state all required pieces are present for system to successfully boot into userland. This all is clearly presented by the associated commit: http://bazaar.launchpad.net/~upstart-devel/upstart/trunk/revision/1375#init/main.c

  • Thanks SpamapS but can you also explain what will Upstart do. You explained initrd very well but Upstart was left out. – Luis Alvarado Nov 27 '12 at 23:08
  • Left an edit for review explaining the Upstart's role. – Tuminoid Nov 28 '12 at 7:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.