您的位置:首页 > 其它

pc机,嵌入式系统,启动过程,引导过程,bootloader,grub

2011-07-06 16:57 483 查看
参考文章
IBM:linux引导内幕

个人Notes:
(1)PC机和嵌入式系统的启动方式通常有些不同,PC机在bootloader之前有BIOS,可能是由PC机的复杂功能决定的:A.提供很多灵活性,比如支持多操作系统等,而不同的操作系统通常需要不同 的bootloader(当然,linux下的GRUB是同时支持WIN和linux的)。 B.PC机上需要初始化的硬件多,为了减小bootloader的大小,将一些硬件的初始化放在BIOS。

(2)硬盘上的每个系统都在改系统的主分区的前512字节(boot sector)保存着和MBR内容(事实上,MBR的内容是在安装系统时将该系统的boot sector的内容)

(2)MBR里只有最多446字节的bootloader代码,且只是bootloader的第一阶段的代码,它的作用是加载bootloader的第二阶段的代码,它会在MBR中接下来的64字节分区表中查找一个活动分区,再将该活动分区里的bootloader的第二阶段代码加载到内核。第二阶段的代码的作用是:A.读取

http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=257860&start=0

因为grub可以安装到mbr,不论分区是否活动,grub照常起来,
grub一起来,管你分区活动不活动

GRUB的步骤1包含在 MBR中。由于受MBR的大小限制,步骤一所做的几乎只是装载GRUB的下一步骤(存放在硬盘的其它位置)。步骤1既可以直接装载步骤2,也可以装载步骤 1.5:GRUB的步骤1.5包含在MBR后面的30KB中。步骤1.5载入步骤2。当步骤2启动后,它将呈现一个界面来让用户选择启动的操作系统。

http://forum.ubuntu.org.cn/viewtopic.php?f=120&t=232357 14楼
1 楼:windows 的 mbr 只做一件事,找到主分区表中标记为“活动”的分区,并跳到那个分区的引导扇区执行。没有备份它的必要。grub 直接用一条语句跳到 windows 分区的引导扇区。

4 楼:mbr 里并没有 ntldr 代码。ntldr 引导代码在每一个 windows 分区的引导扇区,其功能就是找到该分区下名为 ntldr 的文件并执行。所以 grub4dos 甚至可以不执行引导扇区的 ntldr 引导代码,而直接找 ntldr 文件,就是 chainloder /ntldr 的写法。

11 楼:第一个分区通常不是紧接在 mbr 后面的。mbr 是0磁道1扇区,而第一个分区一般从 1 磁道开始,中间通常隔着 63 个备用空白扇区,刚好可以放下 stage 1.5。当然,如果第一分区紧接在 mbr 之后,或 mbr 之后的空白扇区已被使用,将不会安装 stage 1.5。强行指定安装 stage 1.5 会报 Error 34 : No spare sectors on the disk 而不能安装。
没有 stage 1.5 时,stage 1 可以直接指向 stage 2。stage 1.5 的好处是它能够识别文件系统,从 stage 1.5 找 stage2 时,它是找分区上叫 stage2 的 文件。而 stage1 直接找 stage2 则是直接指向 stage2 文件在磁盘上的物理地址,这样如果 stage2 文件被挪动并且原位置被其他数据覆盖,引导就会失败。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: