Please add generic support for root=UUID= at kernel parameter commandline (LABEL, BYID maybe also)

From: Eric Valette
Date: Mon Aug 23 2010 - 10:43:31 EST


Hi,

I just bought an new external disk enclosure with e-sata/USB2 connector to replace an old USB2 only external disk enclosure.

My internal drive is a small SSD because I use the small factor PC as a home theater and do want silence and fast boot. I build my own kernel to put only what I need in and also boot somehow faster.

I use grub2 (up to date) as a loader. As soon as I power on the external sata disk, the system does not boot because hardware designer add the great idea to put the internal sata connector on ata3 whereas the external e-sata is wired on ata2.

consequence is that root file system is on sda1 when no external drive is connected and sdb1 when the external drive is connected.

As my grub setup was having a root=/dev/sda1 command line parameter and it was advertised everywhere that root=UUID=xxxxx was now supported, I changed the line to discover that this only work if an initramfs was loaded because support is done entirely in used space! Reading init/do_mounts.c made it very clear.

I find it extremely curious to have to add an initramfs to support dynamic drive identification, especially when the BYID value is displayed during boot message.

The boot loader cannot do a better job than the kernel and its life may be even worse as bios value for the same disk may change according to boot disk priorities.

Any hint comment? Any other way to avoid using a ramdisk? Please CC me as I'm not subscribed.

-- eric



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/