重新编译内核后,可能加入了自定义的模块,就有可能需要修改init文件,而init文件就在initrd中,这里记录下操作步骤,以防遗忘。
只有用这个方式压缩的initrd ,在Linux系统重启的时候才能 一正确的文件格式 boot 起来,也可以用#制作initrd : # gen_initramfs_list.sh initrd/ > filelist # gen_init_cpio filelist >initrd.img # gzip initrd.img # mv initrd.img initrd-'uname –r’.img
至此,新的initrd文件initrd-‘uname –r’.img中就包含了ahci的驱动程序了 ,这种方式是最简单有效的。3.1 gen_init_cpio # cp initrd-‘uname –r‘.img /tmp/initrd;cd /tmp/initrd #cpio –ivdum < initrd-‘uname –r’.img; # mv initrd-‘uname –r’.img ../ #cd /tmp/initrd #vim init加上一行 insmod /lib/ahci.ko #cp ahci.ko lib/ #cd /tmp # gen_initramfs_list.sh initrd/ > filelist # gen_init_cpio filelist >initrd.img # gzip initrd.img # mv initrd.img initrd-‘uname –r’.img
#释放cpio格式的initrd: mv initrd.img imitrd.img.gz gunzip initrd.img.gz cpio -i --make-directories < initrd.img
#释放centos6.2系统的initramfs.img
1."gunzip initrd.img-2.6.27-7-generic.gz",得到一个未压缩的initrd.img-2.6.27-7-generic 2. ”cpio -iv < initrd.img-2.6.27-7-generic",提取成功
#制作cpio格式的initrd(新2012年使用过的)
#cd /root/busybox-1.15.3/rootfs9260 #find . | cpio -H newc -o > ../initrd_cpio.img#制作cpio格式的initrd(2009年制作的LFS的方式):
dd if=/dev/zero of=/tmp/rootfs bs=1k count=35000
losetup /dev/loop0 /tmp/rootfs
mkfs.ext2 –F –i 2000 /tmp/rootfs
mkdir /tmp/loop
mount –o loop /tmp/rootfs /tmp/loop
#然后将刚才建立的基本系统拷贝到/tmp/loop
cp /lfs/* /tmp/loop –arfp
find . | cpio –o –H newc | gzip –c > /tmp/initrd.img