Linux内核阶段详解

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驱动文件

你可能感兴趣的:(linux,运维,服务器)