Linux开机引导流程

来源:互联网 发布:淘宝二手镜头店铺推荐 编辑:程序博客网 时间:2024/05/22 05:26

linux开机引导流程:

这里写图片描述

1.BIOS开机自检

BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做”硬件自检”(Power-On Self-Test),缩写为POST。
如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。

2.MBR(主引导记录):512字节:

主引导程序(Bootloader):446字节;
硬盘分区表DPT:64字节;
分区结束标记:2字节。
(MBR不属于任何一个文件系统)
PS:
如何查看MBR的第一个扇区(最前面的512个字节)
(这512个字节的最后两个字节是0x55和0xAA)

# dd if=/dev/sda of=sda.mbr bs=512 count=1#hexdump -C sda.mbr

–》会发现是以55 aa结尾的
这里写图片描述

3.GRUB引导程序

grub是linux里的一个引导系统启动的程序。
分3个部分(阶段):

  • stage 1
  • stage 1.5 –》文件系统的驱动程序
  • stage 2 –》文件系统的驱动程序
#cd /boot/grub/#ls    --》device.map     ffs_stage1_5      jfs_stage1_5    reiserfs_stage1_5  stage2           xfs_stage1_5e2fs_stage1_5  grub.conf         menu.lst        splash.xpm.gz      ufs2_stage1_5fat_stage1_5   iso9660_stage1_5  minix_stage1_5  stage1             vstafs_stage1_5

4.加载内核kernel

vmlinuz-2.6.32-279.e16.i68
内核文件:被夹在到内存里执行,可以开始管理内存、cpu、磁盘等设备,
解压image映像文件,查看里面的内容。
①/boot/kernel and kernel parameter
②/boot/initrd

5. Sys V init 初始化阶段

  • /sbin/init
  • /sbin/mingetty
  • /etc/X11/prefdm

这里写图片描述


一个文件系统下面有哪些目录:

这里写图片描述


最后贴一个自己画的linux开机启动流程思维导图:

这里写图片描述
(注:放大即可看清)

power on–》开机
bios:系统自检、读启动顺序,启动顺序定位到MBR–》
MBR(主引导程序bootloader、DPT硬盘分区表、55aa分区结束标记):
bootloader读取DPT,知道哪一个是活动分区–》
bootloader(stage1)找到/boot分区(ext4),但是stage1识别不了ext4,于是启动stage2–》
stage里面有大量的驱动,加载驱动,例如ext4的驱动,就能读取分区(/boot/grub/grub.conf)了–》
grub.conf会加载kernel和initramfs.img文件到内存里面。–》
initramfs-版本号.img文件加载到内存里之后,会启动init进程–》
init进程起来后,会读取/etc/fstab文件、/etc/rc.sysinit、/etc/inittab–》
通过/etc/inittab文件例如知道运行级别是3了,就会加载/etc/rc.d/rc3.d/目录下的所有文件–》
例如会启动所有以f开头的服务–》
再启动/sbin/mingetty文件,提供接口来登录–》
输入用户名、密码–》
通过/ertc/passwd和/etc/shadow等文件来验证用户名和密码是否正确–》
然后再加载4个配置文件:/etc/profile、/etc/bashrc、/root/.bashrc、/root/.bash_profile–》
之后就可以使用了。

========手动分割线=======
最后的最后,贴一个当时班里很牛的一个大神画的超级好看的思维导图。

这里写图片描述

(注:此思维导图作者—-李鹏翔)