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

本文详细介绍了Linux系统启动过程中initrd(初始RAM磁盘)的角色和功能。从解压initrd映像到执行init脚本,包括挂载文件系统、创建设备节点、加载模块等步骤。initrd主要任务是找到并挂载真实的根文件系统,从而完成系统启动。
最低0.47元/天 解锁文章
364

被折叠的 条评论
为什么被折叠?



