Greetings list!
Because of the sheer number of box (re)installations we do that have a CentOS base, I've converted our provisioning process to PXE. However, I've found that an alarming number of motherboards are coming with the Realtek RTL8168 ethernet controller onboard. When the system boots, it cannot find an ethernet controller and the installer process hangs.
I made a new initrd from a running system that was installed via CD and had the kernel module installed afterwards. However, when using the new initrd to PXE boot a new box, it dies saying something about not being able to use/find /dev. The original initrd from the ISO is 5.1MB whereas the initrd I built from the working system is only 2.4MB. I have a feeling that the initrd I built (using mkinitrd -v --with=r8168 <path to output initrd> <kernel version>) does not include modules required by the installer.
So, my question is this: is there a way to (1) create an initrd with ALL available modules or at the very least, (2) take the original ISO initrd and simply add the module I need? This initrd will need to work with all of the other hardware I support and should not be specialized for this single motherboard if possible.
I've been up and down Google/CentOS Wiki/etc and cannot seem to find a valid way of doing either of the above.
Suggestions, ideas, help?
Tim Nelson Systems/Network Support Rockbochs Inc. (218)727-4332 x105
On Thu, May 28, 2009 at 10:17 AM, Tim Nelson tnelson@rockbochs.com wrote:
Because of the sheer number of box (re)installations we do that have a CentOS base, I've converted our provisioning process to PXE. However, I've found that an alarming number of motherboards are coming with the Realtek RTL8168 ethernet controller onboard. When the system boots, it cannot find an ethernet controller and the installer process hangs.
Sorry, this is not about the mkinitrd stuff, but I just wanted to refer you to this useful forum post by Alan Bartlett because you are dealing with hardware that requires the Realtek 8168 driver:
http://www.centos.org/modules/newbb/viewtopic.php?viewmode=thread&topic_...
Hope this helps,
Akemi
----- "Tim Nelson" tnelson@rockbochs.com wrote:
Greetings list!
Because of the sheer number of box (re)installations we do that have a CentOS base, I've converted our provisioning process to PXE. However, I've found that an alarming number of motherboards are coming with the Realtek RTL8168 ethernet controller onboard. When the system boots, it cannot find an ethernet controller and the installer process hangs.
I made a new initrd from a running system that was installed via CD and had the kernel module installed afterwards. However, when using the new initrd to PXE boot a new box, it dies saying something about not being able to use/find /dev. The original initrd from the ISO is 5.1MB whereas the initrd I built from the working system is only 2.4MB. I have a feeling that the initrd I built (using mkinitrd -v --with=r8168 <path to output initrd> <kernel version>) does not include modules required by the installer.
So, my question is this: is there a way to (1) create an initrd with ALL available modules or at the very least, (2) take the original ISO initrd and simply add the module I need? This initrd will need to work with all of the other hardware I support and should not be specialized for this single motherboard if possible.
I've been up and down Google/CentOS Wiki/etc and cannot seem to find a valid way of doing either of the above.
Suggestions, ideas, help?
Surely someone has rebuilt the initrd for the installer ISO? I recall seeing something on the list about it previously in regards to storage controllers but I cannot seem to find it now...
Is there somewhere I can look to see the original mkinitrd command used to build the initrd on the ISO? I could then ensure I have all of the modules specified there along with my additional module.
--Tim
On 05/29/2009 03:34 PM, Tim Nelson wrote:
Surely someone has rebuilt the initrd for the installer ISO? I recall seeing something on the list about it previously in regards to storage controllers but I cannot seem to find it now...
yes, plenty of times.
Is there somewhere I can look to see the original mkinitrd command used to build the initrd on the ISO? I could then ensure I have all of the modules specified there along with my additional module.
the initrd isnt built with the normal mkinitrd command on a running machine, you need to have a lot of the installer components setup to include ( remember that the first 25% of the installer is actually in the initrd ).
Your best process here is to grab the existing initrd, push your modules into that, and repack it. You should not need to do much more beyond add the right pciid's and the modules to the right place, depmod it so the modules info is updated and repack.
give it a shot, I'll help you along if you get stuck. once you are done, will you write up the process for us ?
- KB
----- "Karanbir Singh" mail-lists@karan.org wrote:
On 05/29/2009 03:34 PM, Tim Nelson wrote:
Surely someone has rebuilt the initrd for the installer ISO? I
recall seeing something on the list about it previously in regards to storage controllers but I cannot seem to find it now...
yes, plenty of times.
Is there somewhere I can look to see the original mkinitrd command
used to build the initrd on the ISO? I could then ensure I have all of the modules specified there along with my additional module.
the initrd isnt built with the normal mkinitrd command on a running machine, you need to have a lot of the installer components setup to include ( remember that the first 25% of the installer is actually in
the initrd ).
Ahhh... I did not know that parts of the installer live within the initrd itself...
Your best process here is to grab the existing initrd, push your modules into that, and repack it. You should not need to do much more beyond add the right pciid's and the modules to the right place, depmod it so the
How does one put additional modules into an existing initrd? Is there a way to "unpack" it, add the module, and do a "repack"? On my first creation of an initrd with the proper module added, I did see the NIC's properly detected upon boot so I don't believe I'll need to mess with the PCI ID's do I?
After the "unpack" would I be presented with a rootfs type system to chroot into for making changes? I'm *VERY* hazy on the initrd inner workings...
modules info is updated and repack.
give it a shot, I'll help you along if you get stuck. once you are done, will you write up the process for us ?
I'd absolutely be willing to write up the process. The best place would be the wiki correct?
--Tim
On 05/29/2009 03:54 PM, Tim Nelson wrote:
give it a shot, I'll help you along if you get stuck. once you are done, will you write up the process for us ?
I'd absolutely be willing to write up the process. The best place would be the wiki correct?
yup, Wiki is a good place to put these sort of things. I'm guessing the Tips section might be appropriate.
Tim Nelson wrote:
Surely someone has rebuilt the initrd for the installer ISO? I recall seeing something on the list about it previously in regards to storage controllers but I cannot seem to find it now...
Is there somewhere I can look to see the original mkinitrd command used to build the initrd on the ISO? I could then ensure I have all of the modules specified there along with my additional module.
I've tweaked distributions' initrd files by doing
gunzip -c --suffix '.img' /boot/initrd-<version>.img | cpio -i
to unpack the file, and
find . -print | cpio -c -o | gzip -c9 >/path/of/new/initrd
after making changes.
Jim
----- "Jim Wight" j.k.wight@ncl.ac.uk wrote:
Tim Nelson wrote:
Surely someone has rebuilt the initrd for the installer ISO? I
recall seeing something on the list about it previously in regards to storage controllers but I cannot seem to find it now...
Is there somewhere I can look to see the original mkinitrd command
used to build the initrd on the ISO? I could then ensure I have all of the modules specified there along with my additional module.
I've tweaked distributions' initrd files by doing
gunzip -c --suffix '.img' /boot/initrd-<version>.img | cpio -i
to unpack the file, and
find . -print | cpio -c -o | gzip -c9 >/path/of/new/initrd
after making changes.
Jim _______________________________________________
**EXTREMELY** helpful! I'll give this a shot on the stock initrd and proceed from there. Thank you!
--Tim