Comparison of the various replacements for initrd-tools
Architectures |
["initramfs-tools"] |
["Yaird"] |
amd64 |
Buggy (see #337176) |
Works (MarcoAmadori) |
arm |
Needs Test |
Needs Test |
alpha |
linux-2.6/alpha has explicit conflicts for some reason |
Fails to exec /sbin/init (invalid interpreter, iirc) (DannFrazier) |
hppa |
segfault in run_init (?JeffBailey) |
Needs Test |
i386 |
Works (Jeff Bailey) |
Works (JonasSmedegaard) |
ia64 |
inflate code misreads magic number (?JeffBailey) |
Also fails, probably for the same reason (DannFrazier) |
m68k |
no klibc (not yet ported) |
Needs Test |
mips |
no klibc (linux-header missing) |
Needs Test |
mipsel |
no klibc (linux-header missing) |
Needs Test |
powerpc |
Works (DannFrazier?) |
Works (?SvenLuther) |
s390 |
no klibc (untested?) |
Might work with manual editing config (see bug#340344) |
sh |
no klibc (unstested?) |
Needs Test |
sparc |
Works (?JeffBailey) |
Works (JurijSmakov) |
Root Devices |
initramfs-tools |
yaird |
fstab label and UUID |
Needs test |
only ext2 and reiser (see bug #337065 for workaround)?FootNote(Fstab labels and UUID on yaird works but yuckilly: Needs to be rewritten to blkid, there are good ideas in http://bootutils.sourceforge.net/) -- ErikKonijnenburg |
md (fs directly) |
Works (maximilianattems) |
Works (JonasSmedegaard) |
LVM |
Works (maximilianattems) |
Works (MarcoAmadori) |
LVM-over-md |
Needs Test |
Works (MarcoAmadori) |
EVMS (fs directly) |
Works (Sesse) |
In progress see BTS #335230 |
LVM-over-EVMS |
Needs Test. |
|
md-over-EVMS |
Needs Test, probably some modules to add. |
|
LVM-over-md-over-EVMS |
Missing modules, add raid1, raid5,.. to /etc/mkinitramfs/modules. |
|
Crypsetup |
Needs test |
Works (?ManojSrivasta) |
Crypsetup-luks?FootNote(cryptsetup-luks is not packaged officially for Debian) |
Needs test |
Tested round 0.0.8 (ErikKonijnenburg) |
loopaes |
Needs Test |
No |
NFS |
Requires manual editing config file (?JeffBailey) |
Requires manual editing config file (JonasSmedegaard) |
SCSI |
Works (?JeffBailey) |
Needs test |
SATA |
Works (?JeffBailey) |
Works (MarcoAmadori) |
USB-stick |
Needs Test |
Needs Test |
IEEE1394 |
Needs Test |
No |
Compaq Smart Arrays |
Unknown |
added in 0.0.11-11, see BTS #335601 |
dmraid |
Needs test, hooks can be found [https://wiki.ubuntu.com/FakeRaidHowto#head-2316ce782c999621d013c90ad3d4cc61349b46db here] |
In progress, patch see BTS #337724 |
Other features |
initramfs-tools |
yaird |
cramfs initrd |
No. |
Removed in 0.0.12 -- any reason to put it back? (ErikKonijnenburg) |
USB keyboard |
Works (?TommiVainikainen) |
Works (ErikKonijnenburg) |
swsusp |
Needs Test |
No |
swsusp2 ?FootNote(swsusp2 is not in mainline kernel) |
Needs test |
requires manual editing config files, and needs improvements (see bug #329319) |
External hooks |
Yes |
Requires manual editing config file |
Package requirements (risk of delays on some archs) |
initramfs-tools |
yaird |
klibc |
Yes |
No |
busybox |
Yes |
No |
udev |
Yes |
No |
Arch: any |
No |
Yes (includes a few tiny C-based helper tools) |
Runtime requirements |
initramfs-tools |
yaird |
sysfs?FootNote(sysfs required at runtime limits to installing only '''from''' 2.6.8 and newer - specifically making upgrades directly from Linux 2.4.x to Linux 2.6.x impossible) |
Only sometimes?FootNote(sysfs is required for initramfs-tools at runtime in "dep" mode, but not in "most" mode. Images created in "most" mode might be too big for some arches or bootloaders.) |
Yes |
Boot-time requirements |
initramfs-tools |
yaird |
udev?FootNote(udev required at boot-time limits to installing only Linux 2.6.12 and newer) |
Yes |
No |
Legend |
|
|
Great |
|
Not great |
|
Bad |
|
Unknown, needs to be tested |
Recent Linux kernels query the ramdisk tool prior to use if it is expected to succeed. Currently the following simplified queries try to handle all of the above contraints (see ?FlexibleKernelHandling for a future more finegrained approach):
kernel-package query |
initramfs-tools |
yaird |
Supported host version |
any |
>=2.6.8 |
Supported target version |
>=2.6.12 |
>=2.6.8 |
The main goal of all initrd tools is off course to generate an initial ramdisk to help boot a kernel properly. But beyond that, the tools have fundamental differences in their approach:
howto compose images |
Builds generic image with plenty of included modules, and probes at boot time what to load |
Builds specific image probing/resolving with sysfs at build time the modules to include and load at boot time |
Ramdisk size |
Relatively large by default- option of relatively small (with larger risk of failing) |
quite small |
Dealing with devices |
Activates (it seems) all possible md and/or LVM volumes |
Activates only md and/or LVM volume needed for mounting rootfs |
Dealing with errors |
If unsure then creates a larger more safe image |
Fails to build image if uncertain it will work |
libc used |
Both klibc and (externally pulled in) glibc |
glibc (can be compiled against klibc if needed) |
Hilites not directly comparable
initramfs-tools
- Written in shell - has backward compatible initrd-tools invocations and an "update-initramfs" for endusers
- Used by Ubuntu Breezy
Maintained by ?JeffBailey, maximilianattems
- Among the hooks support is "usblash", a funky userspace bootsplash utility
yaird
- Written in perl - introduces a potentially new big dependency onto the system (you might prefer to skip that on a firewall)
Used/Maintained by JonasSmedegaard
Homepage (with details on (un)supported features and limitations): http://www.xs4all.nl/~ekonijn/yaird/yaird.html