Rocks: Device Driver Injection - Rocks 5.1
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_64Recreate 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