Ubuntu 64bit and adaptec raid i2o 1020s Raid controller

assume you wanna run a 64 bit Ubuntu Linux on a SuperMicro server with a dual processor Xeon and Raid-5 controller (adaptect 1020s + zcr card).

The source of the problem

The Ubuntu installer will not recognize your hard disk, this is because the correct module is not probed when using 64bit version (instead it works correctly and perfectly with the 32bit 686-smp kernel).

Quick Fix

If you are in this situation just switch to another console and do:

modprobe i2o_block

then go back to the installer console window and try again detecting the hard disk.

Permanent Fix

Unluckly this is not the end: at the end of the installation you’ll find that the installer will fail to install grub. If you are in this situation then you need some more step:

chroot into the installing target partition;

add to the grub’s /boot/grub/device.map file the following line

(hd0) /dev/i2o/hda

run grub from command line specifing that new device.map file and install it manually;

continue installation system will reboot;

This is not the end again, after the reboot, when the systel will boot again it will fail once more since now its your harddisk’s initrd.img that fail to load I2O controller modules, you have to rebuild and fix the initrd.img:

chroot into the target partition;

modifiy modules inside /etc/mkinitramfs adding a new line with:

i2o_block

inside of it;

recreate initrd but don’t try yourself with “mkinitramfs -o newinitrd.img.gz” since this will file, instead for better results use:

dpkg-reconfigure linux-image-VERSION_HERE

you can now reboot and try again:

It may fails again but don’t get discouraged this is the true sysadmin job! You cannot relay con crappy installation script: DO IT YOURSELF!

Back to real world, it may fail since initrd.img does not create device nodes automatically: in such case you have to recreate initrd.img again adding a script “preinit” directories always under /etc/mkinitrams:

Final notes

the kernel from ubuntu 5.10 breezy seems bugged about this driver ONLY using 64bit version (i repeat: 32bit rocks), then better using kernel from Dapper i posted a bug about i2o not recognized at boot time several time: hope they’ll fixit it with dapper (next release)