Bug#332824: missing ide-generic
please try the attached patch,
should load ide-generic even if udev didn't yet bring it up:
patch -p1 /usr/share/initramfs-tools/scripts/init-premount/udev < ide-generic.udev.patch
for this trial please remove any ide-generic or ide-disk
out of /etc/mkinitramfs/modules, then update-initramfs -u
and reboot,
if it doesn't work out you still need to modprobe manually
ide-generic and disc..
thanks for your feedback.
--
maks
--- udev-0.076/extra/initramfs.premount 2005-12-23 12:36:04.000000000 +0100
+++ udev-0.076-ma/extra/initramfs.premount 2005-12-23 12:35:52.000000000 +0100
@@ -21,6 +21,38 @@ mkdir /dev/.udev/ /dev/.udev/db/ /dev/.u
udevd --daemon
udevsynthesize
+
+# Our job now is to make the block device for the root filesystem available.
+# This is actually a bit trickier than it first appears because we first need
+# to figure out which driver needs it, and to do that, we need to know what
+# type of bus it's on. Fortunately we have all that information, this still
+# feels like an ungodly hack though.
+. /conf/initramfs.conf
+. /scripts/functions
+case "${BOOT}" in
+ local)
+ case "${ROOT}" in
+ /dev/root)
+ # An interesting case, this root device was specified as a
+ # major/minor pair. Fortunately we have that information
+ case "${major}" in
+ 3|22|33|34|56|57|88|89|90|91)
+ # traditional ide
+ root_type=ide
+ ;;
+ 80|81|82|83|84|85|86|87)
+ # ide on i2o
+ root_type=ide
+ ;;
+ esac
+ ;;
+ /dev/hd*)
+ # Ahh, plain-old traditional ide
+ root_type=ide
+ ;;
+ esac
+esac
+
while [ -d /dev/.udev/queue/ ]; do
sleep 1
udevd_timeout=$(($udevd_timeout - 1))
@@ -29,5 +61,13 @@ while [ -d /dev/.udev/queue/ ]; do
fi
done
+# If we're booting from IDE, we may need to load ide-generic.
+case "${root_type}" in
+ ide)
+ if [ ! -e "${ROOT}" -o "${ROOT}" = "/dev/root" ]; then
+ modprobe -q ide-generic
+ fi
+esac
+
# Leave udev running to process events that come in out-of-band (like USB
# connections)
Reply to: