Skip to contentSkip to conversation

kernel/initrd and rootfs over LVM

DISCUSSION Flavio Bruno Leitner 2 participants 3 messages Oct 23, 2003

lore
Share & tools
lore
#0 lore raw

I'm using kernel 2.6.0-test7 and as far I understand prepare_namespace() checks if saved_root_name[0] is not null (I'm passing root=/dev/vg0/lvroot), then name_to_dev_t() try to guess what MINOR and MAJOR are used by the root device.

Well, I can be missing something but name_to_dev_t() does not handle lvm devices, right?

Regards,

Signature · 2 lines
Flávio Bruno Leitner <[email protected]>
[ E74B 0BD0 5E05 C385 239E  531C BC17 D670 7FF0 A9E0 ]
#1 lore raw
Quoted 6 lines · Flavio Bruno Leitner

I'm using kernel 2.6.0-test7 and as far I understand prepare_namespace() checks if saved_root_name[0] is not null (I'm passing root=/dev/vg0/lvroot), then name_to_dev_t() try to guess what MINOR and MAJOR are used by the root device.

What I ended up doing to get that working back in the 2.5.4x days was to have my initrd's linuxrc do a 'lvm vgscan' to get the volume group online, and then an 'lvdisplay' - this of course wedged up after it since there wasn't a proper root=, but it revealed the numbers I needed.

As far as I can tell, if you're using the device-mapper in 2.6, you'll want MAJOR=, and then the MINOR= seems to be stable across 2.4/2.6/lvm1/lvm2 (So if you're building the system under 2.4 and have LVM running there, you can get the minor number from lvdisplay there, and use it with major=254 to get your 2.6 up and running. For lilo, I ended up using this:

        root=65029
# magic number is major=254 * 256 + minor=5

Grub you're on your own. Yes, I should upgrade, but lilo *does* work for this machine, sooo.

#2 lore raw
Quoted 4 lines · On Thu, Oct 23, 2003 at 11:56:16AM -0400, [email protected] wrote:

What I ended up doing to get that working back in the 2.5.4x days was to have my initrd's linuxrc do a 'lvm vgscan' to get the volume group online, and then an 'lvdisplay' - this of course wedged up after it since there wasn't a proper root=, but it revealed the numbers I needed.

It's an option, but I was thinking if there is no way to name_to_dev_t() handle this case, so all rootfs devices will uses the same syntax.

Quoted 8 lines

As far as I can tell, if you're using the device-mapper in 2.6, you'll want MAJOR=, and then the MINOR= seems to be stable across 2.4/2.6/lvm1/lvm2 (So if you're building the system under 2.4 and have LVM running there, you can get the minor number from lvdisplay there, and use it with major=254 to get your 2.6 up and running. For lilo, I ended up using this:

        root=65029
# magic number is major=254 * 256 + minor=5

It works too. It's just hard to upgrade many machines when you already have root=/dev/vg../lv.. at grub config.

Signature · 2 lines
Flávio Bruno Leitner <[email protected]>
[ E74B 0BD0 5E05 C385 239E  531C BC17 D670 7FF0 A9E0 ]