I use LVM2 as a root filesystem and boot using an initrd file (see http://forums.gentoo.org/viewtopic.php?t=169020&highlight=lvm2createinitrd) for my lvm2create_initrd script. However, with kernels gentoo-dev-sources-2.6.8-r6 and beyond, dm-mod fails to load before the lvm2 partitions are activated. This results in a kernel panic. I've noticed that the device-mapper.h header in linux26-headers-2.6.8.1-r1 does not match the kernel starting with 2.6.8-r6. I'm not certain this is the problem, but it's probably a good place to start looking. Also, the latest LVM2 ebuild is lvm2-2.00.15-r1 and the latest stable version is LVM2.2.00.25.tgz. Perhaps the newer kernels were produced using the latest LVM2 version? Reproducible: Always Steps to Reproduce: 1. emerge gentoo-dev-sources-2.6.8-r6 or greater. 2. create an initrd file using lvm2create_initrd. 3. boot the new kernel. Actual Results: kernel panic. Expected Results: not panic. Portage 2.0.51-r3 (default-linux/x86/2004.0, gcc-3.4.2, glibc-2.3.4.20041102-r0, 2.6.8-gentoo-r4 i686) ================================================================= System uname: 2.6.8-gentoo-r4 i686 Pentium III (Coppermine) Gentoo Base System version 1.6.6 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.92.0.2-r1 Headers: sys-kernel/linux26-headers-2.6.8.1-r1 Libtools: sys-devel/libtool-1.5.2-r7 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/share/config:/usr/kde/3.3/env:/usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distlocks sandbox sfperms" GENTOO_MIRRORS="ftp://gentoo.chem.wisc.edu/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage" USE="S3TC X aac aalib accessibility acl adns aim alsa antlr apm arts async audiofile avi bcel berkdb bitmap-fonts blender-game bonobo bsh bzlib cddb cdf cdparanoia cdr clanJavaScript clanVoice cmucl codecs crypt cscope cups curl dga dillo directfb divx4linux djbfft doc dts dv dvd dvdr editor edl encode escreen esd evo exif expat f77 faac faad fam fbcon fbdev fdftk ffmpeg fftw flac fluidsynth fmod foomaticdb fortran freetts freetype fs gb gcj gd gdbm gif gimp gimpprint gkrellm glade glgd glut gmp gnome gnomedb gphoto2 gpm graphviz gs gstreamer gtk gtk2 gtkhtml guile hbci icq icu idea ieee1394 image imagemagick imlib imlib2 ipcs jabber jack java javadoc javamail javascript jbig jce jdepend joystick jp2 jpeg jsch junit jython kde kerberos krb4 ladcca lcms ldap libcaca libdsk libg++ libgda libsamplerate libwww live lm_sensors log4j lufsusermount lynxkeymap lzo lzw lzw-tiff mad makecheck matroska mbrola md5sum mdb mikmod mixer mmap mmx mng mono motif mozaccess mozcalendar mozdevelop mozilla mozp3p mozplaintext mozsvg mozxmlterm mp3 mpeg mpeg4 mpi mplayer msdav msn music nas native ncurses net netcdf network nls nntp no-opts nocd nptl ntlm nvidia objc ocaml offensive ofx oggvorbis openal opengl opie optional-tasks oscar oss pam pcap pda pdflib perl physfs plotutils png pnp portaudio ppds pthreads python qt quicktime quotes readline regexp rhino rogue rtc ruby samba sasl scanner sdk sdl silc slang slp smime soundtouch sox speedo speex spell sqlite src sse ssl svg svga szip t1lib tcltk tcpd tetex tga theora threads tidy tiff timidity tlen tools transcode truetype type1 unicode usb uudeview v4l v4l2 vim-with-x wifi wmf wsconvert wxwin wxwindows x86 xalan xatrix xerces xine xml xml2 xmms xosd xpm xrandr xsl xv xvid xvmc yahoo yv12 zlib video_cards_nvidia"
Created attachment 43747 [details] Difference between /usr/include/linux/device-mapper.h and kernel version
Blarg! File this one under DFU (Dumb F***ing User). The problem arose with changes in glibc-2.3.4 that broke my 'lvm2create_initrd' script. I posted a patch to the forum link above (for those who may be interested) that fixes the problem with files being moved about. The script works now and my gentoo system also boots properly. Case closed. My apologies for the wasted bandwidth. However, I'm still concerned about the difference in device-mapper.h in the kernel and userland. Does anyone think that it may lead to problems? Comments? Suggestions? Flames?
One last thing to mention. I'm sticking with 2.6.8-r5, which is the last kernel with identical device-mapper.h between kernel and userland. I haven't tested newer kernels because I want to be sure my data will be safe. I'll leave this discrepency for the bug wranglers to ponder. Sorry again for the wasted bandwidth.
The reason that the headers differ is because gentoo-dev-sources has some devicemapper fixes applied. The very small difference in header files won't make any difference at all, but if you like, you can just copy the one from /usr/src/linux into /usr/include/linux - once the dm-fixes get merged upstream, the linux26-headers includes will obviously also be updated