Linux Dist. : Fedora Core4 (kernel 2.6.11)
# cp /boot/initrd.img /tmp/.
# mkdir /tmp/test
# cd /tmp
# mv initrd.img initrd.img.gz
# gunzip initrd.img.gz
# cd test
# cpio -i -I ../initrd.img
由於usb開機 , 需要載入正確的模組 , 才可以讓usb被認出以及被掛載為root filesystem
scsi_mod.ko sd_mod.ko usbcore.ko usb-storage.ko uhci-hcd.ko ohci-hcd.ko ehci-hcd.ko
把這些模組搬到/tmp/test/lib/下 , 然後再修改/tmp/test/init即可
# find . -print | cpio -o -H newc > ../test.ininrd.img
# cd ..
# gzip -9 test.initrd.img
# mv test.initrd.img.gz /boot/test.initrd.img
最後再修改grub/menu.lst就可以了~
2009年9月28日 星期一
如何看initrd到底在做甚麼
在一些舊版本Kernel(ex:2.4.x)下 , 要用mount去掛載initrd , 就可以觀看initrd在做些甚麼
# mv initrd.img initrd.img.gz
# gunzip initrd.img.gz
# mkdir /mnt/init
# mount -o loop initrd.img /mnt/init
修改好後還原
# umount /mnt/init
# gzip -9 initrd.img
# mv initrd.img.gz initrd.img
新版本的initrd , 是使用cpio來做備份 , 所以要用cpio來還原檔案
# file initrd.img
initrd.img: gzip compressed data, from Unix, last modified: Wed Jul 29 11:21:30 2009
# mv initrd.img initrd.img.gz
# gunzip initrd.img.gz
# file initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC)
# mkdir init
# cd init
# cpio -i -I ../initrd.img
修改好後還原
# find . -print | cpio -o -H newc > ../new.initrd.img (用new ASCII格式)
# file ../new.initrd.img
new.initrd.img: ASCII cpio archive (SVR4 with no CRC)
# cd ..
# gzip -9 new.initrd.img
# mv new.initrd.img.gz new.initrd.img
# mv initrd.img initrd.img.gz
# gunzip initrd.img.gz
# mkdir /mnt/init
# mount -o loop initrd.img /mnt/init
修改好後還原
# umount /mnt/init
# gzip -9 initrd.img
# mv initrd.img.gz initrd.img
新版本的initrd , 是使用cpio來做備份 , 所以要用cpio來還原檔案
# file initrd.img
initrd.img: gzip compressed data, from Unix, last modified: Wed Jul 29 11:21:30 2009
# mv initrd.img initrd.img.gz
# gunzip initrd.img.gz
# file initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC)
# mkdir init
# cd init
# cpio -i -I ../initrd.img
修改好後還原
# find . -print | cpio -o -H newc > ../new.initrd.img (用new ASCII格式)
# file ../new.initrd.img
new.initrd.img: ASCII cpio archive (SVR4 with no CRC)
# cd ..
# gzip -9 new.initrd.img
# mv new.initrd.img.gz new.initrd.img