Package: initrd-tools Version: 0.1.71 When upgrading from a 2.4 series kernel to a 2.6 series kernel, mkinitrd properly builds the ramdisk image for the Intel ICH5 SATA storage controller.
However, when upgrading from 2.6 to a newer 2.6 version, the boot process fails due to some missing initrd modules (ata_piix and sd_mod) Mounting the initrd image shows that the ata_piix and sd_mod are in fact missing from the image. There are no problems if you generate the initrd image while running a 2.4 kernel. It only occurs when running 2.6 and using mkinitrd to generate an initrd. The following patch seems to fix things. --- mkinitrd 2004-08-08 13:59:04.000000000 -0700 +++ mkinitrd-working 2004-08-08 13:59:58.000000000 -0700 @@ -353,6 +353,10 @@ print_module \ drivers/scsi/ata_piix \ drivers/scsi/sd_mod + elif ! [ $oldkernel ]; then + print_module \ + drivers/scsi/ata_piix \ + drivers/scsi/sd_mod fi IDE_MODULE=none The original logic seems to test for an old kernel AND new module style (i.e. *.ko) which works fine going from 2.4 to 2.6. The problem is that the test fails going from 2.6 to 2.6 and the print_module statement never executes. Seems there also needs to be a check to catch a situation where uname -r returns a new kernel (i.e. 2.6) and hence $oldkernel is unset. Using Debian GNU/Linux, kernel 2.4.25-1-386 (Sarge) and kernel 2.6.7-1-686-smp 0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev c2) 0000:00:1f.0 ISA bridge: Intel Corp. 82801EB/ER (ICH5/ICH5R) LPC Bridge (rev 02) 0000:00:1f.1 IDE interface: Intel Corp. 82801EB/ER (ICH5/ICH5R) Ultra ATA 100 Storage Controller (rev 02) 0000:00:1f.2 IDE interface: Intel Corp. 82801EB (ICH5) Serial ATA 150 Storage Controller (rev 02) 0000:00:1f.3 SMBus: Intel Corp. 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02)
signature.asc
Description: This is a digitally signed message part