Thanks for the great bug report. Your description of the problem made it really simple to track down the misbehavior.
I think we can fix this by changing how parse_numeric deals with numeric root devices. udev creates symlinks in /dev/block/ for every block device it creates. For instance, I have a /dev/block/8:1 that's a symlink to /dev/sda1
So instead of mknod'ing /dev/root with an appropriate major/minor numbers, we can just change ROOT to the appropriate /dev/block/major:minor symlink, and wait-for-root should handle that case gracefully.
I've uploaded versions of initramfs-tools with this patch for lucid, maverick, and natty to my PPA (https://launchpad.net/~broder/+archive/ubuntu-tests). Could you please test whichever version is most convenient and let me know if the patch works?
Thanks for the great bug report. Your description of the problem made it really simple to track down the misbehavior.
I think we can fix this by changing how parse_numeric deals with numeric root devices. udev creates symlinks in /dev/block/ for every block device it creates. For instance, I have a /dev/block/8:1 that's a symlink to /dev/sda1
So instead of mknod'ing /dev/root with an appropriate major/minor numbers, we can just change ROOT to the appropriate /dev/block/ major:minor symlink, and wait-for-root should handle that case gracefully.
I've pushed a patch to lp:~broder/ubuntu/natty/initramfs-tools/fix-576429, but before I ask for sponsorship, I'd like to get some verification that it works as desired.
I've uploaded versions of initramfs-tools with this patch for lucid, maverick, and natty to my PPA (https:/ /launchpad. net/~broder/ +archive/ ubuntu- tests). Could you please test whichever version is most convenient and let me know if the patch works?