I am in the process of installing Gentoo on an x86 from the 2006.0 installer CD using the 2.4 kernel profile. I created an LVM2 volume group with logical volumes / filesystems for '/', '/usr', '/var', '/opt', and '/home'. I had no problems mounting those filesystems and then chrooting into that environment and performing the base install. I compiled the 2.4.32-r4 kernel from gentoo-sources with no problems, and created the initial ram disk by hand so that I could bring up the LVM2 volumes.

The problem I am having is when I boot into the initrd. I run vgscan with no apparent problems, and it finds the volume group. When I run 'vgchange -ay <vgname>, I notice three problems:

1. There are entries in /dev/mapper/<vgname>-<lvname>, but no symlinks in the form /dev/<vgname>/<lvname> --> /dev/mapper/<vgname>/<lvname>. I run 'lvm vgmknodes' and it remedies this.

2. I see five complaints from 'vgchange -ay <vgname>' (one for each LV) as follows:

on stderr:   device-mapper: table ioctl failed: Invalid argument
on console (from dm-mod driver): device-mapper: one of name or uuid must be supplied, cmd (12)

I ran vgchange under strace and here is the following snippet:

open("/dev/mapper/control", O_RDWR|O_LARGEFILE) = 9
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address)
mlockall(MCL_CURRENT|MCL_FUTURE)        = 0
brk(0x8936000)                          = 0x8936000
brk(0x8b1e000)                          = 0x8b1e000
getpriority(PRIO_PROCESS, 0)            = 20
setpriority(PRIO_PROCESS, 0, -18)       = 0
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or address) stat64("/dev/ide/host0/bus0/target0/lun0/part10", {st_mode=S_IFBLK|0600, st_rdev=makedev(3, 10), ...}) = 0 stat64("/dev/ide/host0/bus0/target0/lun0/part11", {st_mode=S_IFBLK|0600, st_rdev=makedev(3, 11), ...}) = 0 stat64("/dev/ide/host0/bus0/target0/lun0/part12", {st_mode=S_IFBLK|0600, st_rdev=makedev(3, 12), ...}) = 0
ioctl(9, DM_DEV_CREATE, 0x8109958)      = 0
ioctl(9, DM_TABLE_STATUS, 0x8109958)    = -1 EINVAL (Invalid argument)
write(2, "  ", 2)                       = 2
write(2, "device-mapper: table ioctl faile"..., 51) = 51
write(2, "\n", 1)                       = 1

3. When I try to mount the filesystem in that LV, it fails. I tried with different filesystem types and it's the same result. From within the 2.4 kernel based initrd, it fails. If I reboot into the 2.6 kernel based installer environment, no problem.

This looks like an incompatibility between the lvm2 and/or device-mapper library code and the kernel device-mapper code. Here are the versions installed in the new installation and its initrd:

lvm2-2.02.05
device-mapper-1.02.03
gentoo-sources-2.4.32-r4

livecd 2.4 # ls -l /etc/make.profile
lrwxrwxrwx 1 root root 51 May 11 18:09 /etc/make.profile -> /usr/portage/profiles/default-linux/x86/no-nptl/2.4

--
gentoo-user@gentoo.org mailing list

Reply via email to