After a major crash of our Acer Aspire 1642 the hard disk needed to be replaced. After booting from a life CD we successfully installed Ubuntu Gutsy on the new drive. Unfortunately, after reboot the BIOS appeared to be completely blind to it. A BIOS upgrade would not fix the problem.
We worked around the problem by creating a boot CD that would load a kernel, recognize the drive and continue booting the root partion on it.
First install the package syslinux.
Create a working directory:
mkdir bootcd
Add isolinux.bin:
cp /usr/lib/syslinux/isolinux.bin bootcd
Copy the appropriate kernel and ramdisk images to bootcd/linux and bootcd/initrd.img respectively, e.g:
cp /boot/vmlinuz-2.6.22-14-generic bootcd/linux
cp /boot/initrd.img-2.6.22-14-generic bootcd/initrd.img
Create a file bootcd/isolinux.cfg containg a line that will point to your root partition, e.g. /dev/sda1:
DEFAULT linux initrd=initrd.img ro root=/dev/sda1
Create an iso image of the working directory:
mkisofs -o bootcd.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -hide-rr-moved -R bootcd/
Burn the image to CD.
Boot your system.
Of course this CD needs to be updated after kernel upgrade or reconfiguration…