Debian的系统启动过程

1 启动过程概述

1.1 第一阶段:BIOS

BIOS是启动过程的第一阶段,在上电事件后开始。CPU的程序计数器在上电事件后被初始化为一个特定的内存地址,驻留在只读存储器(ROM)中的BIOS就是从这个特定的内存地址开始执行。
BIOS执行硬件的基本初始化(POST:上电自检)并将系统控制权交给你指定的下一步骤。BIOS通常和硬件一同提供。
硬件位置和BIOS启动的代码的优先级可以在BIOS配置界面中选择。通常,在已选择的设备(硬盘、软件、CD-ROM……)中,最先找到的设备的最开始的几个扇区将被加载到内存,并执行其中的初始化代码。初始化代码可以是以下任意一种。

  • 引导加载代码
  • 类似FreeDOS这样的过滤型操作系统的内核代码
  • 能够加载到如此小的空间中的目标操作系统的内核代码
    通常,系统从主硬件的特定分区中引导。传统PC硬盘的最开始两个扇区中包含了主引导记录(MBR)。在MBR的末尾记录了磁盘分区信息及引导选择。BIOS中执行的首段引导加载代码占据了MBR的其余部分。

1.2 第二阶段:引载加载程序

由BIOS启动,将系统内核映像和initrd映像加载到内存并将控制权交给它们。initrd映像是根文件系统映像,其支持程度依赖于所使用的引导加载程序。
当前2.6/3.x版本Linux内核的initrd镜像从技术上说是initramfs(初始化RAM 文件系统)镜像。基本的initrd镜像是root文件系统中各个文件使用cpio压缩得到的。内核可以在启动流程中非常早的阶段,在加载基本的initrd镜像之前即更新微码。以未压缩cpio格式存储微码二进制文件的initrd镜像和基本initrd镜像两部分可以联合组成一个initrd镜像,从而帮助实现上述功能。
Debian系统默认将PC 平台的GRUB引导加载程序的第一阶段代码安装在MBR 中。
传统GRUB的菜单配置文件位于/boot/grub/menu.lst。例如,文件中有如下的配置条目:

title Debian GNU/Linux
root (hd0,2)
kernel /vmlinuz root=/dev/hda3 ro
initrd /initrd.img

在debian10和11中均为找到上述文件。

GRUB第2版的菜单配置文件位于/boot/grub/grub.cfg。此文件由/usr/sbin/update-grub根据”/etc/grub.d/*”中的模板及”/etc/default/grub”中的设置自动生成。例如,文件中有如下的配置条目。

软件包 initrd 引导加载程序 说明
grub-legacy 支持 传统GRUB 可智能识别磁盘分区和文件系统(如vfat、ext3……)
grub-pc 支持 GRUB第2版 可智能识别磁盘分区和文件系统(如vfat、ext3……)。默认安装
grub-rescue-pc 支持 GRUB第2版 此为GRUB第2版的可引导修复映像(CD和软盘)(PC/BIOS版本)
lilo 支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-风中叮铃-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值