Creating a boot disk for unattented kickstart installation of RH 9.

In RedHat 9, the boot disk doesn't contain network drivers in initrd.img for the reason that there was not enough space on a floppy to fit them after the drivers for scsi and usb have been added. That complicates kickstart installation over a network. One can create an additional floppy with drivers from drvnet.img, but unattended network kickstart, which is extremely useful for Linux cluster installation, won't be possible.

The way around this problem is to create a custom boot floppy by discarding the scsi, usb and some other drivers and adding drivers for network cards on your computers. To identify what the device and module your Linux system uses, run /usr/sbin/kudzu -p. In Unisys lab, for example, we have machines with 3Com, Netgear, Intel eepro100 and RTL8139 cards; they require drivers 3c59x.o, 8139too.o, e100.o, tulip.o and mii.o.

Procedure

Copy files bootdisk.img and drvnet.img in a separate directory, say, Image. Create directories /mnt/drvnet, /mnt/bootdisk, /mnt/initrd and DRV.
mount bootdisk.img /mnt/bootdisk -t vfat -o loop,blocksize=1024
cd /mnt/bootdisk; cp initrd.img $HOME/DRV
cd $HOME/DRV 
gunzip < initrd.img > initrd.data
mount initrd.data /mnt/initrd -o loop
Now we need to change the content of /mnt/initrd/modules: module-info, modules.cgz, modules.dep, pcitable.
mount drvnet.img /mnt/drvnet -o loop
cp modinfo $HOME/DRV/module-info
cp modules.cgz  $HOME/DRV
cp modules.dep $HOME/DRV
cp pcitable $HOME/DRV
cd $HOME/DRV
Modify module-info, modules.dep and pcitable leaving only the entries for the appropriate network drivers.
gunzip < modules.cgz | cpio -idv
This creates a new directory called 2.4.20-8BOOT. Remove all .o files in the directory except those for the appropriate network cards, 3c59x.o, 8139too.o, e100.o, tulip.o and mii.o. Compress 2.4.20-8BOOT back into modules.cgz:
find 2.4.20-8BOOT -depth -print | cpio -ov -H crc | gzip --best > modules.cgz
Copy the modified files, modinfo, modules.cgz, modules.dep and pcitable into directory /mnt/initrd/modules
umount /mnt/initrd
gzip --best < initrd.data > initrd.img
cp initrd.img /mnt/bootdisk
You may also copy your kickstart file, ks.cfg, into /mnt/bootdisk and modify syslinux.cfg leaving only the entry for kickstart, for example:
default ks
label ks
  kernel vmlinuz
  append ks=floppy initrd=initrd.img 


umount /mnt/bootdisk
Now you have a boot disk image ready for unattended kickstart installation.