Make the use of initrds optional

Registered by Oliver Grawert

currently every ubuntu install requires an initrd, this is caused by the fact that we:
a) use UUID for finding the rootfs
b) some packages have a requirement to process bits before the rootfs is mounted

this spec is supposed to span across multiple releases, we first need make the kernel recognize UUIDs for partitions and second there needs to be something like a database that knows when a package is installed that needs an initrd.

This spec is considered implemented if initrds are only generated once a package is installed that require them or the user explicitly choose to use an initrd.

Blueprint information

Status:
Not started
Approver:
Steve Langasek
Priority:
High
Drafter:
Oliver Grawert
Direction:
Approved
Assignee:
Oliver Grawert
Definition:
Approved
Series goal:
Accepted for precise
Implementation:
Deferred
Milestone target:
None

Related branches

Sprints

Whiteboard

Wiki URL: http://wiki.ubuntu.com/Specs/PerciseMakeInitrdOptional (please remove when properly set in the spec)

Work Items:
[canonical-kernel-team] provide a kernel with uuid support in the internal initrd for measuring
[ogra] stopwatch the improvement in bootspeed of using the in-kernel minimal initrd vs. a minimal initrd from disk vs. a full initrd being loaded
[canonical-foundations] review if all initramfs scripts are in the right place before we start to do any work (check if top scripts are actually in top etc): BLOCKED
[canonical-foundations] check crypt-setup and dm-raid initramfs-tools integration to comply with the new setup: BLOCKED
[canonical-foundations] develop logic for grub to not use an initrd by default, but in case of single-user mode or when packages needing an initrd are used.: BLOCKED
[ubuntu-arm] patch flash-kernel to set the right cmdline options (use or dont use initrd) depending on the same logic as grub: POSTPONED

[vorlon] All userspace work on this is blocked on having a kernel that can do root device resolution of UUIDs without an initramfs.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.