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?


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.

  • OK. What I've done so far to overcome this issue is I've swapped my boot disk on RAID (it was JBODed) and connected it to motherboard dirrectly. Other two drives which have been using all of my two SATA ports were moved to RAID array (again JBOD). Then I tried to boot and realised that bootloader was on one of the drives migrated to RAID card. That was no a big issue and I booted to Debian NetInstall in resque option (which even asked me to provide firmware driver so it was an option) and chrooted to my real root on LVB. install-grub /dev/sda fixed all. So DerfK was rigth. – Dmytro Leonenko Mar 24 '11 at 7:14
  • 1
    Just for the record, the firmware file as linked in the question has disappeared and can be found here: adaptec.com/en-us/speed/scsi/linux/aic94xx-seq-30-1_tar_gz.htm and that link I found on rpmfind.net/linux/RPM/centos/6.2/x86_64/Packages/… – aseq Jun 20 '12 at 21:36

Did you try to re-create initrd with drivers provided with your controller? In theory it should be done automatically during kernel upgrade but sometimes it does not work with custom drivers.

  • First I can't boot my server. Second if i'll got livecd then how can I point booted livecd to load firmware and discover my LVM to chroot into? – Dmytro Leonenko Mar 23 '11 at 9:35
  • You can boot from LiveCD, mount your file system, re-create initrd on it and then try to boot. I do not remember exact commands since I do not do it often, but you should be able just google it. – dtoubelis Mar 23 '11 at 22:31

If you need to boot from the raid controller, you will need to re-generate the initramfs (using update-initramfs) with the firmware-file copied in /lib/firmware. Then you can boot using this initramfs, and you should have the firmware available.

You should use the -b option on update-initramfs, or mount the root fs (and dev/proc/sys) and chroot in the root fs. Otherwise it will update the initramfs from the bootable cd..

  • OK. First of all I need to mount my LVM root somehow. How? Secondly what happened with debian when it updated my kernel, regenerated initramfs (for sure) and not included firmware to it when previous kernel was working just fine? And the most interesting: why can't I find my old kernel and initramfs in /boot? There is just one kernel and one initramfs: img854.imageshack.us/img854/1819/25734134.png – Dmytro Leonenko Mar 23 '11 at 9:34

You'll need to boot into Rescue Mode, modify your /etc/fstab to comment out the offending filesystems, then boot normally and rebuild your initrd.

  • If I would have been able to boot to resque why don't I have been able to boot to normal mode? No, haven't been able to boot even to resque. /etc/fstab is on filesystem on RAID which my kernel doesn't know how to work with – Dmytro Leonenko Mar 24 '11 at 7:07

Maybe you are missing the lvm2 modules? Try this:

  • Boot rescue
  • Add lvm2 packages to rescue (I can't remember if rescue does it automatically, probably yes but check it)
  • Use the lvm2 commands and modules to be able to see your partition

Use pvscan, vgscan and lvscan to find the lvm chain and mount it. From there you can use chroot to change to your production system and use the initramfs tools to regenerate it. Be sure to include all modules, just for sure. Quick tip: after chrooting to the correct partition, use su - to apply environment variables to the chrooted environment, makes the work easier.

  • No. LVM modules are presend. The only problem is firmware and I know it 101% – Dmytro Leonenko Mar 24 '11 at 7:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.