重新编译内核后,可能加入了自定义的模块,就有可能需要修改init文件,而init文件就在initrd中,这里记录下操作步骤,以防遗忘。
1. cp /boot/initrd-3.2.img /tmp/mylinux/initrd-3.2.img.gz
这里之所以进行改名,是因为initrd-3.2.img是经过gzip压缩过的,所以需要对其解压,但是gzip对解压的文件的文件后缀名又有要求,所以就先进行改名。
2. gunzip
initrd-3.2.9.img.gz
3. cpio
-id < initrd-3.2.9.img
经过以上三步,就在当前目录下解压了initrd文件,从而得到了init文件。
根据自己的需求修改init文件后,通过下面命令重新生成initrd文件。
4. find
. | cpio -H newc -o | gzip -9 > /boot/initrd-3.2.9.img
注意一下内容摘自网上资料,留作参考:
en_init_cpio
获取 gen_init_cpio,工具 ,gen_init_cpio是编译内核时得到的, 在内核源代码的 usr 目录下,我们可以通过 以下步骤获取它,进入内核源代码 执行 : # make menuconfig # make usr/ 这样即编译好gen_init_cpio, gen_initramfs_list.sh 在内核源代码的 script 目录下, 将这两个 文件 copy 到 /tmp 目录下,/tmp/initrd 为 解压好的 initrd 目录,执行以下命令 制作initrd : #制作initrd : 这种方式修改安装光盘的initrd文件 然后 进行系统安装。 3. 如何在 initrd 中添加新的驱动,以 ahci.ko 为例 3.1 gen_init_cpio 3.2 mkinitrd (1) Add “alias scsi_hostadapter ahci” at /etc/modprobe.conf (2) copy ahci.ko to “/lib/module/$(kernel-version)”/kernel/drivers/scsi” (3) mkinitrd initrd.img ‘uname -r’ 至此,新的initrd文件initrd-‘uname –r’.img中就包含了ahci的驱动程序了 . #释放cpio格式的initrd: #释放centos6.2系统的initramfs.img 1."gunzip initrd.img-2.6.27-7-generic.gz",得到一个未压缩的initrd.img-2.6.27-7-generic #制作cpio格式的initrd(新2012年使用过的) #cd /root/busybox-1.15.3/rootfs9260 #制作cpio格式的initrd(2009年制作的LFS的方式): |
|