[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#256714: Incomplete initrd causes failure of ide device detection on kernel upgrade



Package: initrd-tools
Version: 0.1.70

Description:
apt-get installed kernel-images fail to find IDE devices on boot

What I did:
1. installed debian/testing via net installer, everything works fine,
system boots and reboots normally
2. upgraded to debian/unstable, everything still works find, system
boots and reboots normally
3. apt-get install kernel-image-x.x.x-x-xxx
4. reboot and choose the new kernel image from the grub menu, IDE
devices not found

What happens:
-system A (upgrade from 2.6.6-1-686-smp to 2.6.6-2-686-smp)
 -P4P800 Deluxe MB
 -Pentium 4 2.8Ghz HT, 512k L2 cache
 -2 x SAMSUNG SP1213C 120GB S-ATA hard drives
 -1 SAMSUNG DVD R/W SH-W08A dvd /rw drive

In this case the system boots normally since the root device is on a
S-ATA hard drive which uses libata.  The DVD drive, however, does not
appear, no /dev/hd* nodes are present.  rmmod/modprobe cycling the ide-*
and cd modules doesn't help.

-system B (upgrade from 2.6.5-1-386 2.6.6-1-686)
 -FS51 MB (from ShuttlX system)
 -Pentium 4 2.4 GHz, 512k L2 cache
 -1 SAMSUNG SP0802N 80GB IDE hard drive
 -1 SAMSUNG DVD R/W SH-W08A dvd r/w drive

This system won't even boot since the root device points to an IDE hard
drive.

Workaround:
Mounting and investigating the initrd image from the non-bootable,
recently installed kernel (on system 1) I found that the 'loadmodules'
file contained something like this:

modprobe -k  ata_piix
modprobe -k  sg
modprobe -k  sd_mod

whereas the old, bootable kernel's initrd had a 'loadmodules' file that
looked like so:

modprobe -k  vesafb > /dev/null 2>&1
modprobe -k  fbcon 2> /dev/null
modprobe -k  unix 2> /dev/null
modprobe -k  pdc202xx_new > /dev/null 2>&1
modprobe -k  aec62xx > /dev/null 2>&1
modprobe -k  alim15x3 > /dev/null 2>&1
modprobe -k  amd74xx > /dev/null 2>&1
modprobe -k  atiixp > /dev/null 2>&1
modprobe -k  cmd64x > /dev/null 2>&1
modprobe -k  cs5520 > /dev/null 2>&1
modprobe -k  cs5530 > /dev/null 2>&1
modprobe -k  cy82c693 > /dev/null 2>&1
modprobe -k  generic > /dev/null 2>&1
modprobe -k  hpt34x > /dev/null 2>&1
modprobe -k  hpt366 > /dev/null 2>&1
modprobe -k  ns87415 > /dev/null 2>&1
modprobe -k  opti621 > /dev/null 2>&1
modprobe -k  pdc202xx_old > /dev/null 2>&1
modprobe -k  piix > /dev/null 2>&1
modprobe -k  rz1000 > /dev/null 2>&1
modprobe -k  sc1200 > /dev/null 2>&1
modprobe -k  serverworks > /dev/null 2>&1
modprobe -k  siimage > /dev/null 2>&1
modprobe -k  sis5513 > /dev/null 2>&1
modprobe -k  slc90e66 > /dev/null 2>&1
modprobe -k  triflex > /dev/null 2>&1
modprobe -k  trm290 > /dev/null 2>&1
modprobe -k  via82cxxx > /dev/null 2>&1
modprobe -k  ide-generic
modprobe -k  ide-disk
modprobe -k  ata_piix
modprobe -k  sg
modprobe -k  sd_mod

Eventually I figured how to add things to this file, namely by adding
lines to /etc/mkinitrd/modules (which in my install had no un-commented
lines).  Adding the lines

ide_generic
ide_disk
ata_piix
sg
sd_mod

and re-installing the new kernel allowed the system to boot up and
detect all IDE drives on both systems 1 and 2.

I think this counts as a bug since the kernel installed from the cd
generates a proper initrd, but the one installed via apt-get fails to
generate an appropriate initrd image.  Perhaps it has to do with upgrade
from testing to unstable but it seems like the /etc/mkinitrd/modules
file might always want to contain those lines about ide devices to
prevent this from happening.  Anyway, hopefully this will save someone
else a day or two of frustration.

Thanks,
Charles

-- 
The loneliest goat sees the last sunset last...




Reply to: