initrd放在RH/FC系统的/boot目录中,在grub,conf中指定。如:
initrd /initrd-2.6.23.1-42.fc8.img注意这里的/是指grub的root,那是grub的root命令所指磁盘的boot目录下。
这个映像文件在2.6.1.x内核以前的版本中是一个被压缩的loop设备文件,但在2.6.1.x以后的内核支持它可以是一个被压缩的cpio包了。如果是cpio包可以:
mkdir initrd && mv /boot/initrd-2.6.23.1-42.fc8.img initrd && cd initrd
gunzip -c < initrd-2.6.23.1-42.fc8.img | cpio -imd #注意它将ramdisk内容解压到inird当前目录bin sbin如果是loop设备,必须通过mount命令加载它才能访问:
mkdir /mnt/initrd
gunzip -c < initrd-2.6.23.1-42.fc8.img > initrd.loop
mount -o loop,rw initrd.loop /mnt/initrd
在initrd目录中就是系统启动时临时root的内容。目录下有一个init文件,该文件最为重要,它就是内核启动后执行的第一个脚本。实际上内核启动后寻找的就是/init ; /sbin/init ;/bin/init,找到任何一个就执行它。整个的初始化从它开始。它的内容如下(FC8):
#!/bin/nash
mount -t proc /proc /proc
setquiet
echo