linux启动过程详解
安装到软驱的引导扇区(fd0).
(fd0)/boot/grub/stage2 告诉grub stage2这个文件所在的位置. p 参数后面跟着(fd0)/boot/grub/grub.conf 告诉grub的配置文件所在的位置. 好了,让BIOS从软驱启动,试一下,没有e2fs_stage_1.5文件照样能够进入系统. 其实这就是一个小小的启动盘啊.(了解了grub的运行原理,就简单多了^_^) 3. 现在我们已经到grub的开机选单这一步了,接下来grub所需要做的就是装载在一个特定分区上的操作系统,如linux内核.一旦GRUB从它的命令行或者配置文件中,接到开始操作系统的正确指令,它就寻找必要的引导文件,然后把机器的控制权移交给操作系统. 篇幅有限,避免冗长,grub的命令我就不多说了,网上很有多的资料,一个典型完整的引导linux的命令如下: title 51base root(hd0,0) kernel /bzImage ro root=/dev/ram0 initrd /initrd.img 这里有必要注意一下几个问题: (1)grub的磁盘以及分区的命名方式和linux有所区别,第一个磁盘是从0开始,第一个分区也是从0开始.譬如第一个硬盘的第5分区在linux下面是/dev/hda5 ,而在grub里面是(hd0,4).再如/dev/fd0在grub里面是(fd0,0).(一句如有错误望提醒)
(2)不管是IDE硬盘hda,hdb还是SCSI硬盘sda,sdb在grub里面都是以hd方式命名. 譬如虚拟机里面的/dev/sda2在grub里面是(hd0,1),再如/dev/hdb7在grub里面以(hd1,6)命名. (3)要搞清楚上面两个root的关系,root (hd0,0)中的root是grub命令,它用来指定boot所在的分区作为grub的根目录.而root=/dev/ram0是kernel的参数,它告诉操作系统内核加载完毕之后,真实的文件系统所在的设备.要注意grub的根目录和文件系统的根目录的区别. 再回到上面的几行命令. kernel命令用来指定内核所在的位置,"/"代表(hd0,0),也就是grub的根目录 initrd命令用来指定初始化ram的img文件所在位置. grub载入内核bzImage并展开到指定位置(应该是0x100000这个地方),同时载入initrd.img到内存(不知道是什么地方). ps: grub的任务至此就结束了,下面grub将机器的控制权转交给操作系统(linux). 操作系统接到控制权之后,开始start_kernel,接着内核将initrd.img展开到/dev/ram0为临时根文件系统,执行里面的linuxrc文件. P.这里有必要说一下initrd的作用特别是它里面的核心文件linuxrc的作用.
initrd是inital ram disk的宿写. 当存在initrd的时候,机器启动的过程大概是以下几个步骤(当initrd这一行用noinitrd 命令代替后,就不存在initrd了) 1)boot loader(grub)加载内核和initrd.img 2)内核将压缩的initrd.img解压成正常的ram disk并且释放initrd所占的内存空间 3)initrd作为根目录以读写方式被挂载 4)initrd里面的文件linuxrc被执行 5)linuxrc挂载新的文件系统 6)linuxrc使用pivot_root系统调用指定新的根目录并将现有的根目录place到指定位置. 7)在新的文件系统下正式init 8)initrd被卸载. 为了便于理解,我将red hat linnux9 里面的initrd-2.4.20-8.img拿出来分析一下. 这其实是一个压缩了的文件,是以gz结尾的. [root@localhost root]#cp /boot/initrd-2.4.20-8.img /mnt/initrd-2.4.20-8.gz [root@localhost root]#gunzip /mnt/initrd-2.4.20-8.gz [root@localhost root]#mount -o loop /mnt/initrd-2.4.20-8 /mnt/ram
[root@localhost root]#cd /mnt/ram [root@localhost ram]#ls bin dev etc lib linuxrc loopfs proc sbin sysroot [root@localhost ram]#ls bin insmo |
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |