Bug#606806: initramfs-tools: Handling of numeric root= arguments is not udev-friendly
On Sat, 11 Dec 2010 16:34:56 -0500 (EST), Ben Hutchings wrote:
> On Sat, 2010-12-11 at 13:14 -0800, Evan Broder wrote:
>> If you pass a root= argument with a numeric device number
>> (i.e. root=0806), that's currently resolved by running mknod to create
>> a /dev/root device with an appropriate major/minor number and setting
>> ROOT=/dev/root (the parse_numeric function in scripts/functions).
>
> Maybe this feature should simply be deprecated. What do you use it for?
Pardon me for butting in here, gentlemen, but I think I know the answer
to Ben's question. This is done by a number of boot loaders. I know
lilo does it, and I think zipl (part of s390-tools) does it also.
If, for example, in /etc/lilo.conf one identifies the root device as
root=/dev/sda6
then lilo's map installer converts this specification into a four-digit
hexadecimal number, where the first two hex digits are the
major number of the device and the last two hex digits are the minor
number of the device. Thus, /dev/sda6 becomes 0806, meaning the device
with major number 8 and minor number 6. At boot time, lilo passes a
kernel command line to the kernel that says
... root=806 ...
(the leading zero is suppressed). Chances are, the user is not directly
specifying the root device as a hexadecimal number anywhere. The boot
loader makes this substitution. lilo has done this forever, and zipl
was patterned after lilo.
--
.''`. Stephen Powell
: :' :
`. `'`
`-
Reply to: