x86系统启动流程与GRUB引导程序定制全解析
1. x86系统典型启动流程概述
x86架构的桌面、笔记本、工作站或服务器的典型启动过程如下:
1. 早期启动、POST、BIOS初始化 :BIOS(基本输入输出系统)将第一个可引导磁盘的第一个扇区加载到RAM中,并跳转到其入口点,形成第一阶段引导加载程序。其主要任务是将第二阶段(更大的)引导加载程序代码加载到内存并跳转。
2. 第二阶段引导加载程序接管 :将实际的第三阶段GRUB引导加载程序加载到内存并跳转到其入口点。GRUB通常用于x86[-64]系统。
3. GRUB引导加载程序工作 :接收压缩的内核镜像文件(/boot/vmlinuz - )和压缩的initramfs镜像文件(/boot/initrd.img - )作为参数,进行低级硬件初始化,将这些镜像加载到RAM并对内核镜像进行一定程度的解压缩,然后跳转到内核入口点。
4. Linux内核接管 :初始化硬件和软件环境,不依赖引导加载程序之前的工作。
5. 检测initramfs功能 :完成大部分硬件和软件初始化后,若initramfs功能开启(CONFIG_BLK_DEV_INITRD = y),在内核中定位(必要时解压缩)initramfs(initrd)镜像。
6. 挂载临时根文件系统 :将initramfs镜像作为临时根文件系统挂载到RAM中的RAMdisk。
7. 运行initrd启动脚本
超级会员免费看
订阅专栏 解锁全文
1088

被折叠的 条评论
为什么被折叠?



