1 |
I am in the process of installing Gentoo on an x86 from the 2006.0 |
2 |
installer CD using the 2.4 kernel profile. I created an LVM2 volume |
3 |
group with logical volumes / filesystems for '/', '/usr', '/var', |
4 |
'/opt', and '/home'. I had no problems mounting those filesystems and |
5 |
then chrooting into that environment and performing the base install. I |
6 |
compiled the 2.4.32-r4 kernel from gentoo-sources with no problems, and |
7 |
created the initial ram disk by hand so that I could bring up the LVM2 |
8 |
volumes. |
9 |
|
10 |
The problem I am having is when I boot into the initrd. I run vgscan |
11 |
with no apparent problems, and it finds the volume group. When I run |
12 |
'vgchange -ay <vgname>, I notice three problems: |
13 |
|
14 |
1. There are entries in /dev/mapper/<vgname>-<lvname>, but no symlinks |
15 |
in the form /dev/<vgname>/<lvname> --> /dev/mapper/<vgname>/<lvname>. I |
16 |
run 'lvm vgmknodes' and it remedies this. |
17 |
|
18 |
2. I see five complaints from 'vgchange -ay <vgname>' (one for each LV) |
19 |
as follows: |
20 |
|
21 |
on stderr: device-mapper: table ioctl failed: Invalid argument |
22 |
on console (from dm-mod driver): device-mapper: one of name or uuid must |
23 |
be supplied, cmd (12) |
24 |
|
25 |
I ran vgchange under strace and here is the following snippet: |
26 |
|
27 |
open("/dev/mapper/control", O_RDWR|O_LARGEFILE) = 9 |
28 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
29 |
address) |
30 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
31 |
address) |
32 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
33 |
address) |
34 |
mlockall(MCL_CURRENT|MCL_FUTURE) = 0 |
35 |
brk(0x8936000) = 0x8936000 |
36 |
brk(0x8b1e000) = 0x8b1e000 |
37 |
getpriority(PRIO_PROCESS, 0) = 20 |
38 |
setpriority(PRIO_PROCESS, 0, -18) = 0 |
39 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
40 |
address) |
41 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
42 |
address) |
43 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
44 |
address) |
45 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
46 |
address) |
47 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
48 |
address) |
49 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
50 |
address) |
51 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
52 |
address) |
53 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
54 |
address) |
55 |
ioctl(9, DM_DEV_STATUS, 0x8109958) = -1 ENXIO (No such device or |
56 |
address) |
57 |
stat64("/dev/ide/host0/bus0/target0/lun0/part10", {st_mode=S_IFBLK|0600, |
58 |
st_rdev=makedev(3, 10), ...}) = 0 |
59 |
stat64("/dev/ide/host0/bus0/target0/lun0/part11", {st_mode=S_IFBLK|0600, |
60 |
st_rdev=makedev(3, 11), ...}) = 0 |
61 |
stat64("/dev/ide/host0/bus0/target0/lun0/part12", {st_mode=S_IFBLK|0600, |
62 |
st_rdev=makedev(3, 12), ...}) = 0 |
63 |
ioctl(9, DM_DEV_CREATE, 0x8109958) = 0 |
64 |
ioctl(9, DM_TABLE_STATUS, 0x8109958) = -1 EINVAL (Invalid argument) |
65 |
write(2, " ", 2) = 2 |
66 |
write(2, "device-mapper: table ioctl faile"..., 51) = 51 |
67 |
write(2, "\n", 1) = 1 |
68 |
|
69 |
3. When I try to mount the filesystem in that LV, it fails. I tried |
70 |
with different filesystem types and it's the same result. From within |
71 |
the 2.4 kernel based initrd, it fails. If I reboot into the 2.6 kernel |
72 |
based installer environment, no problem. |
73 |
|
74 |
This looks like an incompatibility between the lvm2 and/or device-mapper |
75 |
library code and the kernel device-mapper code. Here are the versions |
76 |
installed in the new installation and its initrd: |
77 |
|
78 |
lvm2-2.02.05 |
79 |
device-mapper-1.02.03 |
80 |
gentoo-sources-2.4.32-r4 |
81 |
|
82 |
livecd 2.4 # ls -l /etc/make.profile |
83 |
lrwxrwxrwx 1 root root 51 May 11 18:09 /etc/make.profile -> |
84 |
/usr/portage/profiles/default-linux/x86/no-nptl/2.4 |
85 |
|
86 |
-- |
87 |
gentoo-user@g.o mailing list |