Making a new bootable initrd.img
Steven Hajducko
Steven.Hajducko at DigitalInsight.com
Thu Nov 18 19:44:12 UTC 2004
I'm not sure if mkinitrd will compile an initrd.img that can be used for
PXE. But then again, I don't have much experience using the tool, so I
might be completely off the mark, but a test run of the command only built a
initrd.img that looks similar to something the kernel installs already.
Here's a snapshot of the difference between our PXE initrd ( copied directly
from the RH CD ) and a regular, 2.4.21-15 initrd
2.4.21-15
./init_nonboot/lib/scsi_mod.o
./init_nonboot/lib/sd_mod.o
./init_nonboot/lib/cciss.o
./init_nonboot/lib/lvm-mod.o
./init_nonboot/lib/jbd.o
./init_nonboot/lib/ext3.o
./init_nonboot/bin/nash
./init_nonboot/bin/insmod
./init_nonboot/bin/vgwrapper
./init_nonboot/bin/vgscan
./init_nonboot/bin/vgchange
./init_nonboot/linuxrc
2.4.21-4 ( specifically, this is 2.4.21-4.ELBOOT )
./init/modules/module-info
./init/modules/pcitable
./init/modules/modules.dep
./init/modules/modules.pcimap
./init/modules/modules.cgz
./init/sbin/loader
./init/sbin/init
./init/etc/terminfo/l/linux
./init/etc/terminfo/x/xterm
./init/etc/terminfo/v/vt100
./init/etc/terminfo/v/vt100-nav
./init/etc/terminfo/b/bterm
./init/etc/passwd
./init/etc/arch
./init/etc/keymaps.gz
./init/etc/screenfont.gz
./init/etc/lang-table
./init/etc/loader.tr
./init/etc/font.bgf.gz
./init/etc/pcmcia/config
./init/etc/ramfs.img
./init/.buildstamp
./init/.profile
So I'm guess this is the process -
Install 2.4.21-15 kernel
Reboot the machine off this new kernel
( Hopefully ) make a new initrd using mkinitrd
Put the new cciss.o that is compiled for 2.4.21-15 into this initrd.img
Put the new initrd.img and the new 2.4.21-15 vmlinuz into our PXE boot.
If I can't do the ELBOOT via mkinitrd, how do I make an initrd.img that is
usable for PXE? Can I just copy over whatever I'm missing from the one we
currently use?
--
sh
-----Original Message-----
From: Peter Eisch [mailto:peter at boku.net]
Sent: Thursday, November 18, 2004 10:56 AM
To: Discussion list about Kickstart
Subject: Re: Making a new bootable initrd.img
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
>
_______________________________________________
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