Thiemo Seufer wrote:
Looks like some driver went missing from this initrd. This would be
a bug in initrd-tools (http://bugs.debian.org/initrd-tools).
Hi Thiemo
Hmm - having to learn more about Linux bootstrapping than I'd like :-).
I tried adding these lines
ide_generic ide_disk ata_piix sg sd_mod
to /etc/mkinitrd/modules as suggested by someone on the initrd-tools bugs page, and rebuilt my initrd image. Didn't help.
I then added some debug "echos" to the linuxrc and init scripts in /usr/share/initrd-tools and rebuilt again. Interestingly there's no change. It doesn't even seem to get as far as running the linuxrc script in the first place. Comparing my working 2.6.6 and 2.6.8 initrd image, there don't seem to be too many differences, but I'll attach the output below. I'm slightly concerned about the warning about /dev/console, and that modprobe.conf and modprobe.d have moved around.
I also wonder if the fact that my Linux root partition (hda5) is inside an "extended" partition (see my original report) could that be causing a problem for the kernel?
Thanks
Nigel
--------
Only in initrd-2.6.6/bin: awk
Only in initrd-2.6.8/bin: e2initrd_helper
File initrd-2.6.6/dev/console is a character special file while file initrd-2.6.8/dev/console is a character special file
Only in initrd-2.6.8/dev: ida
File initrd-2.6.6/dev/null is a character special file while file initrd-2.6.8/dev/null is a character special file
Only in initrd-2.6.6/etc: modprobe.conf
Only in initrd-2.6.8/etc: modprobe.d
Only in initrd-2.6.8: keyscripts
Only in initrd-2.6.6/lib/modules: 2.6.6-1-686
Only in initrd-2.6.8/lib/modules: 2.6.8-2-686
Only in initrd-2.6.6/lib/modules: modprobe.conf
Only in initrd-2.6.8/lib/tls: i686
Only in initrd-2.6.6/lib/tls: libc.so.6
Only in initrd-2.6.6/lib/tls: libdl.so.2
Only in initrd-2.6.6/lib/tls: libm.so.6
diff -ur initrd-2.6.6/linuxrc initrd-2.6.8/linuxrc
--- initrd-2.6.6/linuxrc 1970-01-01 01:00:00.000000000 +0100
+++ initrd-2.6.8/linuxrc 1970-01-01 01:00:00.000000000 +0100
@@ -6,6 +6,7 @@
mount -nt proc proc proc root=$(cat proc/sys/kernel/real-root-dev) +echo "linuxrc: root=real-root-dev=$root" echo 256 > proc/sys/kernel/real-root-dev mount -nt tmpfs tmpfs bin || mount -nt ramfs ramfs bin diff -ur initrd-2.6.6/linuxrc.conf initrd-2.6.8/linuxrc.conf --- initrd-2.6.6/linuxrc.conf 1970-01-01 01:00:00.000000000 +0100 +++ initrd-2.6.8/linuxrc.conf 1970-01-01 01:00:00.000000000 +0100 @@ -2,4 +2,4 @@ BUSYBOX= FSTYPES=ext3,ext2,vfat,iso9660,reiserfs,ntfs,cramfs IDE_CORE=ide-core -VERSION=0.1.70 +VERSION=0.1.77 diff -ur initrd-2.6.6/loadmodules initrd-2.6.8/loadmodules --- initrd-2.6.6/loadmodules 1970-01-01 01:00:00.000000000 +0100 +++ initrd-2.6.8/loadmodules 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +1,8 @@ +modprobe -k ide_generic +modprobe -k ide_disk +modprobe -k ata_piix +modprobe -k sg +modprobe -k sd_mod modprobe -k vesafb > /dev/null 2>&1 modprobe -k fbcon 2> /dev/null modprobe -k unix 2> /dev/null diff -ur initrd-2.6.6/sbin/init initrd-2.6.8/sbin/init --- initrd-2.6.6/sbin/init 1970-01-01 01:00:00.000000000 +0100 +++ initrd-2.6.8/sbin/init 1970-01-01 01:00:00.000000000 +0100 @@ -84,29 +84,34 @@ ;; esac
- IFS=/ - set -f - set +f ${root#/dev/} - IFS=. - root=$* - unset IFS - try_name "$root" && return - - part=${root##*[!0-9]} - root=${root%$part} - if [ -z "$root" ]; then - return - fi - try_name "$root" $part && return + origroot="$root" + + for separator in ! .; do + IFS=/ + set -f + set +f ${origroot#/dev/} + IFS="$separator" + root=$* + unset IFS + try_name "$root" && return + + part=${root##*[!0-9]} + root=${root%$part} + if [ -z "$root" ]; then + return + fi + try_name "$root" $part && return + + case $root in + *[0-9]p) + ;; + *) + return 0 + ;; + esac + try_name "${root%p}" $part && return + done
- case $root in - *[0-9]p) - ;; - *) - return 0 - ;; - esac - try_name "${root%p}" $part return 0 }
@@ -189,37 +194,37 @@ ret=$1 case $ret in aec62xx) - ret='AEC62xx IDE' + ret='AEC62xx[ _]IDE' ;; alim15x3) - ret='ALI15x3 IDE' + ret='ALI15x3[ _]IDE' ;; amd74xx) - ret='AMD IDE' + ret='AMD[ _]IDE' ;; atiixp) - ret='ATIIXP IDE' + ret='ATIIXP[ _]IDE' ;; cmd64x) - ret='CMD64x IDE' + ret='CMD64x[ _]IDE' ;; cs5520) ret='CyrixIDE' ;; cs5530) - ret='CS5530 IDE' + ret='CS5530[ _]IDE' ;; cy82c693) - ret='Cypress IDE' + ret='Cypress[ _]IDE' ;; generic) - ret='PCI IDE' + ret='PCI[ _]IDE' ;; hpt34x) - ret='HPT34x IDE' + ret='HPT34x[ _]IDE' ;; hpt366) - ret='HPT366 IDE' + ret='HPT366[ _]IDE' ;; it8172) ret='IT8172IDE' @@ -228,46 +233,46 @@ ret='NS87415IDE' ;; opti621) - ret='Opti621 IDE' + ret='Opti621[ _]IDE' ;; pdc202xx_new) - ret='Promise IDE' + ret='Promise[ _]IDE' ;; pdc202xx_old) - ret='Promise Old IDE' + ret='Promise[ _]Old[ _]IDE' ;; piix) - ret='PIIX IDE' + ret='PIIX[ _]IDE' ;; rz1000) - ret='RZ1000 IDE' + ret='RZ1000[ _]IDE' ;; sc1200) - ret='SC1200 IDE' + ret='SC1200[ _]IDE' ;; serverworks) - ret='Serverworks IDE' + ret='Serverworks[ _]IDE' ;; siimage) - ret='SiI IDE' + ret='SiI[ _]IDE' ;; sis5513) - ret='SIS IDE' + ret='SIS[ _]IDE' ;; sl82c105) - ret='W82C105 IDE' + ret='W82C105[ _]IDE' ;; slc90e66) - ret='SLC90e66 IDE' + ret='SLC90e66[ _]IDE' ;; triflex) - ret='TRIFLEX IDE' + ret='TRIFLEX[ _]IDE' ;; trm290) - ret='TRM290 IDE' + ret='TRM290[ _]IDE' ;; via82cxxx) - ret='VIA IDE' + ret='VIA[ _]IDE' ;; esac } @@ -291,7 +296,9 @@ continue fi
- set -- /sys/bus/pci/drivers/"$ret"/*:* + IFS='' + set -- /sys/bus/pci/drivers/$ret/*:* + unset IFS if [ ! -h "$1" ]; then rmmod $i fi @@ -354,6 +361,7 @@ fi
read root < bin/root +echo "initrd-tools: root=$root" umount -n bin echo $root > proc/sys/kernel/real-root-dev
diff -ur initrd-2.6.6/scripts/ext3-add-journal.sh initrd-2.6.8/scripts/ext3-add-journal.sh
--- initrd-2.6.6/scripts/ext3-add-journal.sh 1970-01-01 01:00:00.000000000 +0100
+++ initrd-2.6.8/scripts/ext3-add-journal.sh 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +1,7 @@
#!/bin/sh
+#
+# /usr/share/e2fsprogs/initrd.ext3-add-journal
+#
cd /
mount -nt proc proc proc
rootdev=$(cat proc/sys/kernel/real-root-dev)
@@ -6,21 +9,13 @@
umount -n proc
if [ $rootdev != 256 ]; then
mount -nt tmpfs tmpfs /dev2
- mount -nt proc proc /proc
- mount -nt devfs devfs /devfs > /dev/null 2>&1
get_device
- mount_device
- if test -f /mnt/etc/fstab ; then
- ext3root=`awk '!/^ *#/ { if (($2 == "/") && ($3 == "ext3")) {print $1;}}' < /mnt/etc/fstab`
- ext2root=`awk '!/^ *#/ { if (($2 == "/") && ($3 == "ext2")) {print $1;}}' < /mnt/etc/fstab`
- fi
- umount -n /devfs > /dev/null 2>&1
- umount -n /mnt > /dev/null 2>&1
- if test -n "$ext3root" -o -n "$ext2root" ; then
+ roottype=`/bin/e2initrd_helper -r /dev2/root2`
+ if test -n "$roottype" ; then
mount -nt tmpfs tmpfs /etc
echo >> /etc/fstab
echo >> /etc/mtab
- if test -n "$ext3root" ; then
+ if test "$roottype" = "ext3" ; then
/sbin/tune2fs -O has_journal /dev2/root2 > /dev/null 2>&1
else
/sbin/tune2fs -O ^has_journal /dev2/root2 > /dev/null 2>&1
-- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]