Rocks: Device Driver Injection - Rocks 5.1

From Define Wiki
Revision as of 10:03, 13 May 2013 by Michael (talk | contribs) (Created page with "* Quick Summary - Tidy-up required * In summary: ** Unzip/Extract initrd.img ** Mount dd.img from initrd.img after extraction ** Extract modules.cgz from the mounted dd.img *...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
  • Quick Summary - Tidy-up required
  • In summary:
    • Unzip/Extract initrd.img
    • Mount dd.img from initrd.img after extraction
    • Extract modules.cgz from the mounted dd.img
    • Inject module in the modules.cgz archive
    • Pack everything back up
Unzip/Extract initrd.img
$ cd /tftpboot/pxelinux/
$ mkdir initrd-cpio
$ cp initrd.img.igbNEHALEM initrd-cpio/
$ cd initrd-cpio/
$ file initrd.img.igbNEHALEM 
initrd.img.igbNEHALEM: gzip compressed data, from Unix, last modified: Fri Mar  6 10:42:04 2009, max compression
$ zcat initrd.img | cpio -idvm  
.
bin
sys
dd.img # this is the file we're after
....
Mount dd.img
$ mount -o loop dd.img mnt/
$ ls mnt/
lost+found  modinfo  modules.alias  modules.cgz  modules.dep  pcitable  rhdd
$ mkdir ../modules-cpio
$ cd ../modules-cpio/
$ zcat ../initrd-cpio/mnt/modules.cgz | cpio -idvm


Unzip / Inject modules.cgz
# Cp so directory structure looks like below 
# copy file over so .ko exists in the correct kernel version
$ find . 
.
2.6.18-92.1.13.el5
2.6.18-92.1.13.el5/x86_64
2.6.18-92.1.13.el5/x86_64/igb.ko
2.6.18-92.1.13.el5xen
2.6.18-92.1.13.el5xen/x86_64
Recreate modules.cgz
$ find . -print | cpio -ov | gzip -9 > ../modules.cgz
# copy modules.cgz back in to dd.img mount
# umount dd.img
# cpio initrd.img