Here's how you create a custom boot CD for RedHat 7.3
In our case, we needed to do this because the boot media didn't understand the 10/100/1000 NIC which was onboard the MB for a new system.
mkdir /mnt/cdboot /mnt/initrd
find your cdboot.img file -- this location is valid for 7.3
cp /mnt/cdrom/dosimages/autoboot/cdboot.img /tmp/cdboot.img
mount it, extract the initrd, and mount that
mount -o loop /tmp/cdboot.img /mnt/cdboot
gzip -dc /mnt/cdboot/initrd.img > /tmp/initrd
mount -o loop /tmp/initrd /mnt/initrd
find and extract your modules
cd /tmp
gzip -dc /mnt/initrd/modules/modules.cgz | cpio -idv
make space if needed by deleting modules you don't need and then
copy your module into place
find 2.4.18-3BOOT -print -depth | cpio -ov -H crc | gzip -c9 > modules.cgz
cp modules.cgz /mnt/initrd
Now you must update these files with info about your new module
vi /mnt/initrd/modules/pcitable
vi /mnt/initrd/modules/module-info
wrap it up
sync
umount /mnt/initrd
gzip -c9 /tmp/initrd > /mnt/cdboot/initrd.img
vi /etc/syslinux.cfg
umount /mnt/cdboot
now you have a 288Mb floppy image which can be used to boot a CD:
mkisofs -b /tmp/cdboot.img -l -J -R -r -T -V 'Custom RH Install' . > /tmp/cdboot.iso
Of course, what you need to remember is that even after doing all this your new, presumably critical, module is not going to be installed on the system after the kickstart -- because the installer assumes that anything included in the initrd is included in the kernel rpm. Which it isn't in this case.
Culled from: