kernel/initrd and rootfs over LVM
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 ]
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), thenname_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.
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 ]