计算机启动时,首先启动主板上的BIOS程序,BIOS程序会检查链接到计算机的所有设备,包括内存的数量、I/O设备是否响应,还有是否有新设备的链接,如果有,则配置新设备。然后,BIOS查询CMOS上的设备清单,查询需要启动哪些设备,从哪个设备寻找需要启动操作系统。如果是是从磁盘开始启动的话,则会首先访问整个磁盘的第一个扇区,我们称之为boot sector。注意,这是整个磁盘的Boot sector,整个磁盘的第一个扇区,不是某个分区的boot sector。注意,第一个扇区的大小也是512Bytes。其中有64Bytes是分区表,446Bytes是MBR(Master Boot Record)。
找到了整个磁盘的Boot sector后,开始读取其中保存的MBR,MBR是一个446Bytes的空间,由所安装的操作系统安装最基本的引导加载程序在其中。最基本引导加载程序是每个操作系统软件提供的。Linux有自己的引导加载程序、Windows也有自己的引导加载程序。它的英文名是Boot Loader。引导加载程序的主要功能是:1)提供开机的系统选择菜单;2)如果在选择菜单中本系统,则开始载入操作系统的内核文件;3)如果选择是别的系统,则将引导加载功能给别的Loader负责(别的Loader可能在别的分区的第一扇区)。
功能3就是实现多重引导功能的关键。流程如下【1】:
Reference:
[1] 《鸟哥的LInux私房菜》