Making a new bootable initrd.img

Peter Eisch peter at boku.net
Thu Nov 18 18:55:35 UTC 2004


I put the building of the newer initrd into the %post of the kernel's RPM:

%post smp
[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade
[ -x /sbin/mkkerneldoth ] && /sbin/mkkerneldoth
if [ -x /sbin/new-kernel-pkg ] ; then
        /sbin/new-kernel-pkg --mkinitrd --depmod --install %{KVERREL}smp
fi
/sbin/mkinitrd --preload scsi_mod --preload sd_mod --with cciss \
       /boot/ninitrd-%{KVERREL}smp.img %{KVERREL}smp
/bin/mv /boot/initrd-%{KVERREL}smp.img /boot/oinitrd-%{KVERREL}smp.img
/bin/mv /boot/ninitrd-%{KVERREL}smp.img /boot/initrd-%{KVERREL}smp.img


I specifically had to do this with the DL380 G3's last spring.  Then rebuild
the kernel and such.

Presumably you could feed in the appropriate %{KVERREL} and put this into a
ks %post.  (Remember to do or not do the other kernels (bigmem, up, etc)
according to your needs.)

peter


On 11/18/04 12:17 PM, "Steven Hajducko" <Steven.Hajducko at DigitalInsight.com>
wrote:

> Hi,
> 
> We currently are using PXE and RH3.0AS to kickstart our machines.  We
> recently got a new version of our hardware ( HP DL360's ) that use a new
> storage array.  When we tried to kickstart, it complained about the pcimap
> and IRQ and IO mappings for the cciss.o ( the HP driver ) and wouldn't
> proceed, saying it couldn't find any disks to install to.
> 
> Went to the HP website and found a new version of the driver that supports
> the new array.  Unfortunately, that driver is only supported on kernel
> versions 2.4.21-9 and 2.4.21-15.  The kernel version of the initrd.img we
> use is 2.4.21-4.  We basically just copied the pxelinux initrd.img from the
> install CDs.
> 
> Now, correct me if I'm wrong, but the correct procedure for updating the
> driver in the initrd.img would be...
> 
> mv initrd.img initrd.img.gz
> gzip -d initrd.img.gz
> mount -o loop ./initrd.img /mnt/init
> cp /mnt/init/modules/modules.cgz /tmp
> cd /tmp
> mv ./modules.cgz ./modules.gz
> gzip -d ./modules.gz
> cpio -idv < modules
> 
> So now I've got my exploded modules directory, 2.4.21-4.ELBOOT
> 
> I need to add the cciss.o driver to the 2.4.21-4.ELBOOT/i386 dir ( replacing
> the old one ).  Once that's done...
> 
> cd /tmp
> find ./2.4.21-4.ELBOOT -print > /tmp/filelist
> cpio -o -H crc < filelist > modules.cpio
> gzip --best --no-name modules.cpio
> mv modules.cpio modules.cgz
> mv modules.cgz /mnt/init/modules
> umount /mnt/init
> gzip --best --no-name initrd.img
> mv initrd.img.gz initrd.img
> 
> So if that process isn't wrong, I can ask my question.  How do I make a new
> bootable initrd.img off of a kernel that I'm not running?  The machine that
> we PXE and kickstart off is at 2.4.21-20.ELsmp and we don't want to
> downgrade to 2.4.21-9 or 2.4.21-15.  I suppose I could install them as a
> separate kernel and just reboot off of that when I need to.  So I guess I
> should rephrase my question.
> 
> How do I make a bootable initrd.img usable by PXE?
> 
> Thanks.
> 
> sh
> 
> _______________________________________________
> Kickstart-list mailing list
> Kickstart-list at redhat.com
> https://www.redhat.com/mailman/listinfo/kickstart-list
> 




More information about the Kickstart-list mailing list