Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to get a Red Hat 5.8 box booting via pxe. The box is a virtual machine on ESX5.0 it has a Paravirtual SCSI Controller and VMXNET3 network driver. Now these drivers do not come default in the RHEL5.8 kernel so I have followed some steps on the net to make my own initrd.img file. This is not yet working and any advice on how to get this done would be appreciated. However the main aim of my question is the following:

on my imported repo there is at least two places where initrd.img files are available: cobbler/ks_mirror/OEL5.8-x86_64/isolinux/ cobbler/ks_mirror/OEL5.8-x86_64/images/pxeboot/

I am curious to understand what the difference is. A small white lie, I am using Oracle Linux... not by choice, but is should be the same for all intents and purposes.

I would also like to understand what the difference is between the initrd.img file that can be found in the /boot directory after a server is installed and the one found on the CDROM and/or cobbler repository. If I copy the initrd.img file from a box with vmwaretools installed, I get a kernel panic when trying to boot of the initrd.img file. There is a size difference so I have assumed that essentially the difference is that one contains more drivers and the other only drivers important to the server, but why the kernel panic.

I feel that I am following instructions on the web on building or adding more drivers to my kernel a bit blindly and that if I understand slightly better what I am doing then maybe I will know where it goes wrong.

share|improve this question

migrated from Oct 26 '12 at 12:47

This question came from our site for professional and enthusiast programmers.

You're making it a bit hard on yourself. You should really use the PVSCSI drivers for data partitions and filesystems. It's a shame, since the drivers are in the kernel for EL6. Make the vmware-tools installation part of your post-installation or kickstart script, though.

share|improve this answer

I will second adding the vmware-tools installation to a %post script. That would probably be easiest. A bit of testing will validate whether or not vmware-tools updates your initrd file as part of its install.

Also, mkinitrd is just a bash script. It can be edited to manually add drivers to the kernel. An example I ran into at a previous project is Red Hat Bug 570460. The patch there is just a diff of the then-original mkinitrd script as compared to the submitter's workaround.

Having said that, manipulating mkinitrd is not something to do casually. Test any changes in a separate VM before you get this anywhere near Production.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.