打印

关于系统引导过程的几个疑问

1、我记得这是虚构地址,bios启动部分过程是在bios的epprom中运行的。自检某步骤后,才会吧bios读到内存中继续运行。
2。mbr里面才446字节的程序存储空间。没那么多地方放这些功能代码。多个活动空间属于分区数据错误。但mbr里面的程序应该是启动第一个。不过这文章写的内容是msdos/windows的mbr启动。grub不是这么做的。

TOP

1、如果没记错,linux内核根本没有任何启动功能。包括将自己读入内存的特殊启动区域的功能都没有(具体什么位置忘了)。linux必须由grub或者别的bootloader读取到内存并且运行他才行,head.s 好像是内核被运行后初始化环境的最开始的代码,内核里面的启动过程我没研究过。
2、grub分stage1,stage1.5,stage2,这里面有几步是通过硬盘绝对地址读取的代码。而且mbr之后还有几个扇区的未定义扇区可以用(硬盘好像分配分区空间不是按扇区的,而是16k或者什么数量来分)。所以删除并且快速格式化分区有的时候不会弄死grub。具体这要看格式化的改写的内容了。

TOP

其实 GRUB 的问题你用虚拟机就能试出来。dd 命令的应该够你尝试用了。

TOP