писАть сильно долго, но попробую. если тебе действительно надо - разберешься.из /boot/grub/grub.conf смотришь строчку с именем файла initrd который
грузится с твоим ядром:
title CentOS (2.6.18-92.1.22.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.1.22.el5 ro root=LABEL=/
вот это>>>> initrd /boot/initrd-2.6.18-92.1.22.el5.img
копируешь его (/boot/initrd-2.6.18-92.1.22.el5.img) куда нибудь в /tmp/111
переходишь в /tmp/111
переименовываешь его, например в xxx.cpio.gz - да, это обычный архив.
раззиповываешь: gunzip xxx.cpio.gz
извлекаешь из архива: cpio -i < xxx.cpio
удаляешь: xxx.cpio
остается несколько каталогов типа bin etc lib итд.
смотришь в каталоге lib какие модули есть,
вот список моих модулей:
ahci.ko
ata_piix.ko
ehci-hcd.ko
ext3.ko
jbd.ko
libata.ko
ohci-hcd.ko
sata_sil.ko
scsi_mod.ko
sd_mod.ko
uhci-hcd.ko
тех что у тебя не хватает, копируешь из каталога твоего текущего ядра:
у меня это /lib/modules/2.6.18-92.1.22.el5/kernel/drivers/ata.
Добавляешь в файл init строчки с загрузкой твоих новых модулей, типа:
insmod /lib/libata.ko
insmod /lib/ahci.ko
insmod /lib/sata_sil.ko
insmod /lib/ata_piix.ko
потом делаешь
find . | cpio -o > /tmp/new.cpio
cd /tmp
gzip new.cpio
mv new.cpio.gz new.img
mv new.img /boot
меняешь строчку в grub.conf
вот это>>>> initrd /boot/initrd-2.6.18-92.1.22.el5.img
на initrd /boot/new.img
меняешь в биосе настройку на AHCI.
перегружаешь систему - по идее должно сработать
это конечно самый ручной способ, а вообще есть такая штука как initrd
- по идее она делает это автоматом, но ею я не пользовался.