1、 POST 开机自检
linux 开机加电后,系统开始开机自检,该过程主要对计算机各种硬件设备进行检测,如 CPU 、内存、主板、硬盘、 CMOS 芯片等,如果出现
致命故障则停机,并且由于初始化过程还没完成,所以不会出现任何提示信号;如果出现一般故障则会发出声音等提示信号,等待故障清除;若
未出现故障,加电自检完成。
2、开机自检完成,查找可启动设备,加载主引导目录( MBR)
开机自检完成后, CPU 首先读取位于 CMOS 中的 BIOS 程序,按照 BIOS 中设定的启动次序( Boot Sequence) 逐一查找可启动设备 ,找到可启
动的设备后,去该设备的第一个扇区 中读取 MBR ,那么 MBR 是什么哪?它又有什么作用哪?
MBR 存在于可启动磁盘的 0 磁道 0 扇区,占用 512 字节,它主要用来告诉计算机从选定的可启动设备的哪个分区来加载引导加载程序 (Boot
loader),MBR 中存在如下内容:
(1) Boot Loader 占用 446 字节,存储有操作系统( OS)相关信息,如操作系统名称,操作系统内核位置等,它的主要功能是加载内核
到内存中运行。
(2) Partition T able 分区表,占用 64 字节,每个主分区占用 16 字节(这就是为啥一块硬盘只能有 4 个主分区啦 ^_^ )
(3)分区表有效性标记占用 2 字节
CPU 将 MBR 读取至内存,运行 GRUB(Boot Loader 常用的有 GRUB 和 LILO 两种,现在常用的是 GRUB ),GRUB 会把内核加载到内存
去执行。
由上图可以看出,内核文件存在于 /boot 目录下,但是在 GRUB 加载内核时,连 /还没有被加载,它是怎么在磁盘上找到内核的哪?我们来查看
一下 GRUB 的配置文件可以找到答案。
在/boot/grub/grub.conf 中可以看到 root (hd0,0) 这一行实际上是指定了 /目录的所在的位置,但这个根并不是真正的根,而是 /所在的位置 ,
可以理解成 /boot 是处在( hd0,0)/boot ,而这里的( hd0,0) 指的是第一个磁盘的第一个分区, GRUB 不是通过文件系统来访问内核的,以因为
此时内核还没有启动,不存在文件系统,而是直接访问 第一个磁盘的第一个分区(通过 MBR 中的分区表来识别分区) ,而识别 MBR 中的
评论0
最新资源