System Architecture: Intel
RedHat Release: RHL 5.2
FAQ Category: Installing Issues
Modification Date: Feb 12, 1999
A standard 5.2 workstation install was done on a machine with an aic7770 scsi controller for the hard disk. This was accomplished using the recently updated boot disk image from RedHat. The installation worked, but was not bootable from either floppy or hard disk. Both LILO images contained the older version of aic7xxx.o
The new version of aic7xxx.o is buried in the initrd.img file on the new
boot disk. By making a rescue disk from the CD (either on another linux
or DOS machine) and booting from the new boot disk image, the aic7xxx.o
file can be extracted and placed inside the initrd-2.0.36-0.7.img file on
the hard disk. Use lilo to fix the boot sector and the hard disk is
bootable. (I didn't say it was easy!) If you didn't follow that I will
sketch out the steps:
1. Get the new boot disk image from Red Hat. Put it on a floppy using the
tools found on the 5.2 install CD.
2. While you are making floppies, make a rescue floppy from images/rescue.img
on the 5.2 install CD.
3. Install Red Hat 5.2 onto your scsi hard disk using the new boot disk.
Do a workstation install. Don't bother creating a rescue diskette at this
point -- it won't work anyway.
4. Boot from the new boot diskette again, only type "rescue" at the boot:
prompt this time. Insert the rescue diskette when prompted for a root
floppy disk. Eventually you will get a bash# prompt. The easy part is
over.
5. Create a filesystem to hold some temp files:
dd if=/dev/zero of=/dev/ram1 bs=1k count=3000
mke2fs /dev/ram1 3000
mount /dev/ram1 /tmp
6. Reinsert the new boot diskette and get aic7xxx.o out of the initrd.img file:
mknod /dev/fd0 b 2 0
mount /dev/fd0 /mnt/floppy
gunzip </mnt/floppy/initrd.img >/tmp/initrd
dd if=/tmp/initrd of=/dev/ram2 bs=1k count=2000
mount /dev/ram2 /mnt/image
/mnt/image/bin/insmod /mnt/image/modules/aic7xxx.o
mkdir /mnt/root
mount /dev/sda5 /mnt/root
mount /dev/sda1 /mnt/root/boot
cp /mnt/image/modules/aic7xxx.o /mnt/root/lib/modules/2.0.36-0.7/scsi
umount /dev/ram2
rm /tmp/initrd
umount /dev/fd0
7. Insert aic7xxx.o into the initrd on the hard disk and run lilo:
gunzip </mnt/root/boot/initrd-2.0.36-0.7.img >/tmp/initrd
dd if=/tmp/initrd of=/dev/ram2 bs=1k count=1500
mount /dev/ram2 /mnt/image
cp /mnt/root/lib/modules/2.0.36-0.7/scsi/aic7xxx.o /mnt/image/lib
umount /dev/ram2
rm /tmp/initrd
dd if=/dev/ram2 of=/tmp/initrd bs=1k count=1500
gzip -9 </tmp/initrd >/mnt/root/boot/initrd-2.0.36-0.7.img
/mnt/root/sbin/lilo -r /mnt/root
umount /dev/ram1
umount /dev/sda1
umount /dev/sda5
exit
8. The hard disk should now be bootable. Use mkbootdisk to make a floppy
bootdisk once you get booted. Then download and apply the kernel upgrade
to the system and make yet another boot floppy.
I am guessing that this sort of approach could be used with most 2.x
kernels but I just don't know... The /dev/sda* numbers would probably
change for a server install or other custom install. But probably you
could figure these out.
Look in the doc directory of the Insall CD for info about rescue disks. Look in the /usr/rsc/linux/Documentation directory for info about ramdisks. Look at the Red Hat site to find the latest boot floppy images.