Linux内核阶段详解

2024-01-07 22:30:43

1、接通电源,系统固件(BIOS)运行
BIOS: ?basic input ?output system?
2、开机自检(POST),并初始化部分硬件(1、2都是bios进行检测)
3、BIOS读取硬盘上的引导程序(F2)

MBR格式的分区表 : ?主引导记录,在磁盘第一个扇区
512字节 ?= ? 446字节(引导程序会加载到内存中运行,固定代码) ?+ ?64字节(分区表) ?+ 2字节(结束位)
若引导程序损坏
grub2-install ? /dev/sda(磁盘名称,并非分区)?
现在引导程序用的grub2
以前引导程序 : ? grub,Lilo
引导程序 ?: ?是磁盘上一段固定的代码程序

存放内核的目录
/boot ?: 系统启动时需要的文件(主要是/boot/grub2/grub.cfg文件)
用uname ?-r 查看当前系统内核
df ? -hT ?: ?查看当前磁盘使用情况和文件系统类型
真正的内核在/usr/lib/modules/4.18.0-80.el8.x86_64/kernel中,内核中封装了很多模块,系统启动后,需要加载这些设备(网卡,usb..),这些设备都在内核文件下,内核又在/下面,/又在nvme的驱动上,需要加载引导程序,系统启动会首先加载/boot/grub2/grub.cfg,正常启动之后才会加载/usr/lib/modules/4.18.0-80.el8.x86_64/kernel

4、grub2引导阶段
1、引导程序加载配置文件 /boot/grub2/grub.cfg
2、配置文件告知/boot所在的分区
hd0,msdos1 ? hd0,msdos2
1)/boot单独分出来,就是/boot所在的分区
2)/boot没有单独分出来,那就是/所在的分区
3、配置文件告知内核所在的路径/boot/vmlinuz-4.18.0-80.el8.x86_64内核文件,并告知真正的根设备,/dev/nvme0n1p5(要根据自己系统根分区的位置),并以只读的方式加载?
1)/boot单独分出来,/vmlinuz-4.18.0-80.el8.x86_64,注意前面的/并不是指的根目录,而是boot所在分区下的文件
2)/boot没有单独分出来,/boot/vmlinuz-4.18.0-80.el8.x86_64
4、配置文件告知ramdisk文件(也叫驱动文件)所在的路径/boot/initramfs-4.18.0-80.el8.x86_64.img驱动文件

文章来源:https://blog.csdn.net/weixin_46113061/article/details/135445618
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。