Недавно возникла ситуация, когда после аварии системы охлаждения упал сервак. Ремонт сделали, но он упорно не хотел подниматься на том ядре, на котором он должен был. Матерился на то, что модуль ehci-hcd вызывает сбой, который приводит ядро в панику. Поскольку на том сервере нахер не нужен USB я решил не заморачиваться, а просто исключить его из списка загружаемых модулей.
Итак. Копируем куда-нибудь initrd образ и распаковываем его:
cp /boot/initrd-2.6.25.img ~/temp/
mv initrd-2.6.25.img initrd-2.6.25.img.gz
gzip -d initrd-2.6.25.img.gz
cpio -ic < initrd-2.6.25.img
rm initrd-2.6.25.img
Далее комментируем или удаляем строчки (тут приведены для моего случая):
#echo "Loading ehci-hcd.ko module"
#insmod /lib/ehci-hcd.ko
#echo "Loading ohci-hcd.ko module"
#insmod /lib/ohci-hcd.ko
#echo "Loading uhci-hcd.ko module"
#insmod /lib/uhci-hcd.ko
#mount -t usbfs /proc/bus/usb /proc/bus/usb
После этого нам остается упаковать обратно образ и залить его в /boot:
find . -print | cpio -oc | gzip -9 -c > ../initrd.new.img
cp initrd.new.img /boot/initrd.new.img
Ну и, естественно, внести изменения в /boot/grub/menu.lst