What helpers specifically? Can we simplify these to not require lots of additional tools? Or use a scheme that doesn't require lots of different additional tools? We don't necessarily have to support every conceivable naming scheme in the world for within the initrd.
Hmmm, this uglifies mkinitrd a lot. Having two completely separate paths for the initrd is completely unmaintainable for the long-term. I think that I'd rather cut the busybox down to just the minimal set of tools needed and then still use nash as the base shell. And actually, getting it so that we're using the main busybox instead of busybox-initrd would be nice (I need to look at the anaconda specific config differences so that I can try to merge those to not require a weird subpackage). This would be especially as there are a few "features" in nash that aren't going to be in a standard shell (things like handling of quiet mode, the simple mkdmnod present, etc)
udev initrd - using busybox and ramfs ------------------------------------- 1) mount /proc and /sys 2) mount /dev as ramfs 3) create initial devices (eg: console, null, zero, loopX) and links for std files
This looks/feels a little ugly. But there's probably some shell that could make it a little bit cleaner.
4) start udev, use udevsend as hotplug 5) load modules (eg. controller, filesystem) 6) umount /sys 7) locate root device
I don't like this at all. For one thing, doesn't it currently break with root=LABEL=/? Is there a reason not to just use /dev/root here as we currently do?
8) mount system root on /sysroot 9) bind /dev to /sysroot [UDEV_KEEP_DEV="yes"] 10) change root to /sysroot and initrd to /sysroot/initrd 11) umount /initrd/proc 12) umount /initrd/dev [UDEV_KEEP_DEV="yes"]
Having the case of using udev in your initrd but not using it for /dev on your installed system seems like a fairly ridiculous case that just complicates things. Either you're using udev for the system or not. This then lets us drop out the /etc/sysconfig/udev handling from within mkinitrd.
Attachment:
signature.asc
Description: OpenPGP digital signature