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