LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1577|回复: 8

有一个关于系统加载的问题没弄明白,请教.

[复制链接]
发表于 2003-5-3 11:03:01 | 显示全部楼层 |阅读模式
系统是bios加载mbr,运行,再加载引导区的开始扇区...
但是文件系统作为模块,在刚开始的时候并未加载,而在grub或者lilo的配置文件中,内核文件vmlinuz是用目录的方式指定的:/boot/vmlinuz-2.4.20-8
内核文件在系统引导的过程中是如何被找到并加载的呢?
发表于 2003-5-7 19:31:45 | 显示全部楼层
系统bios之所以能load诸如grub,lilo这些os loader是因为他们安装在分区的固定地方(前512字节)。而lilo在不能识别文件系统时能加载内核文件时因为在安装时你的lilo.conf告诉了lilo内核在什么地方,lilo记住了他在hd上的位置(物理的),这就是为什么只修改lilo.conf没有用的原因。而grub就不同了,他是一个pre os,他能够支持一些文件系统,比如ext,所以修改grub.conf就可以生效。
发表于 2003-5-7 22:26:51 | 显示全部楼层
谢谢你的回答,我明白了为什么在配置了新的内核后为什么要运行lilo了。
我也看了有关GRUB的一些文档,大多是教你如何配置,但他的功能如此强大,我想在MBR那样一个狭小的地方应该是容不下他的吧?那它放在什么地方呢,难道也是在硬盘中某个固定位置,不受文件系统的控制?
发表于 2003-5-8 10:03:24 | 显示全部楼层
grub和lilo都是在引导扇区写512字节,区别在与:
lilo根据lilo.conf记录下kernel的位置
grub记录下pre os的位置,所以每次启动都是同一个pre os
再有pre os去load kernel
发表于 2003-6-10 13:55:16 | 显示全部楼层
最初由 ice9973 发表
谢谢你的回答,我明白了为什么在配置了新的内核后为什么要运行lilo了。
我也看了有关GRUB的一些文档,大多是教你如何配置,但他的功能如此强大,我想在MBR那样一个狭小的地方应该是容不下他的吧?那它放在什么地方呢,难道也是在硬盘中某个固定位置,不受文件系统的控制?


/boot/grub/stage1 等文件
发表于 2003-6-27 09:35:08 | 显示全部楼层
受益非浅啊  ^_^
发表于 2003-6-27 13:24:41 | 显示全部楼层

grub是真正的装载器

我也没见过,只是听以前用过大型机的人说的。
当时还是dos+win31,我刚开始用电脑,那时个人电脑玩家还没有系统装载器的概念,一个用大型机的人向我这个井底蛙吹牛时,提到了大型机的启动是需要另一个程序来装载。

现在硬件强了,所以个人电脑就可以应用各种以前大型机才有的功能,其中包括grub。grub是按照装载器概念制作的,它自己有硬件驱动,可以读取文件系统,可以按照指定的参数把内核装载到内存里去,它甚至还有一个命令行处理器,它的设计目标只有一个,灵活。

mbr太小了,所以grub分成stage1,stage2,stage1就在mbr里,然后读取stage2,stage2安装在一个文件系统里,但stage1必须知道stage2的物理位置,然后stage2读取文件系统信息,这样才能取得内核的逻辑位置。lilo说白了就是一个grub的stage1,相当于grub使用chain loader的启动方式。
发表于 2003-6-27 23:23:08 | 显示全部楼层

回复: grub是真正的装载器

还有一个stage1.5,我在哪儿见过,忘了.但不清楚他的用处.
发表于 2003-7-20 02:50:02 | 显示全部楼层
stage1.5就是grub中支持文件系统格式的模块。因此stage1.5实际上包含了ffs_stage1_5、e2fs_stage1_5、vfs_stage1_5、reiserfs_stage1_5等多个文件,每个文件支持一类文件系统。
如果grub安装在mbr中,或者安装在FFS、ReiserFS等有所谓“boot loader”区域的文件系统的引导扇区中,则stage1.5就会存放在mbr后面的N个扇区(即0面0磁道的剩余扇区)中,或者存放在文件系统的boot loader区域中,而stage1中会记录stage1.5的物理位置,并加载stage1.5,由stage1.5根据stage2的逻辑位置(比如/boot/grub2/stage2)找到其物理位置,并加载stage2。
否则,如果grub安装在某个其他类型分区的引导扇区中,则stage1.5不会安装,stage1会记录stage2的物理位置,并直接加载stage2。
另外,更细节地说,其实stage1只是加载stage1.5或者stage2的第一个扇区,其余内容由该扇区的代码自行加载。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表