Linux – Debian Squeeze and RAID firmware after kernel update

debianfirmwaregrublinux

I've installed Debian Squeeze on my server several days ago. During install process installer asked me to provide USB flash drive with firmware aic94xx-seq.fw (file disappeared likely due to licensing, you can find it on adaptec site: http://www.adaptec.com/en-us/speed/scsi/linux/aic94xx-seq-30-1_tar_gz.htm). All went fine. Today I installed all updates to my system with "U" in aptitude. Aptitude installed kernel update 2.6.32-5 and created initrd accordingly. But now I can't boot up my system because it can't find LVM volumes on harddrive connected to Adaptec RAID card.
How can I boot my system now? I have USB with firmware. I have netboot CD.
Unfortunately when I tried to edit boot records in grub I found that there is no my old kernel anymore. The only kernel grub sees is the new vmlinuz kernel and new initrd
How take make my server alive?

Best Answer

Getting to where you need to get to fix this is going to be tough. If the livecd has the adaptec driver you need, if you can keep it from loading the driver until after you mount the USB stick and copy the file to /lib/firmware/ a reasonably good livecd should be able to load the firmware automatically. If you can't get it to load the firmware automatically, you'll need to do it by hand according to the instructions at the bottom of this page, which would involve probably something like

echo 1 > /sys/class/firmware/something/loading
cat /some/usb/folder/aicwhatever.fw > /sys/class/firmware/something/data
echo 0 > /sys/class/firmware/something/loading

(You have 10 seconds from when the driver loads to do this, or else the driver fails to load.)

That should get the raid controller to work in the livecd. From there, you'll have to mount your drives and recreate your kernel's initrd/initramfs. This page has instructions on doing this for Squeeze's netinstall CD image, theoretically the process should be the same for an installed system. Based on the comments at the end of the firmware section of the install guide, you need to install a package of the firmware in order to keep the version up-to-date, if you don't then you're responsible for keeping a version of the firmware that matches the kernel version.