网站建议:179001057@qq.com

Linux 开机启动流程

技术2022-05-12  0

1.加电自检

       我们知道整个主机在开机的时候,第一个被读取的地方, 就是 BIOS ( Basic Input Output System ) 啦,这个 BIOS 里面记录了主机板的芯片组与相关的设定, 例如 CPU 与接口设备的沟通频率啊、开机装置的搜 寻顺序啊、硬盘的大小与类型啊、 系统时间啊、各周边总线的是否启动 Plug and Play (PnP, 随插即用装置) 啊 、 各接口设备的 I/O 地址啊、以及与 CPU 沟通的 IRQ 岔断等等的信息都记录在此, 所以 啰,系统要顺利的开机,首先就是要去读取 BIOS 的相关设定值了。 读取了 BIOS  设定值之后,系统会根据 BIOS 的数据,进行开机自我测试 (power on self test, POST),  然后开始执行硬件侦测的初始化,并设定 PnP 装置,之后再定义出可开机的装置, 之后就会开始进行开机装置的数据读取了 (MBR 相关的任务开始。    2.bootloader:引导加载器       (windows下用fisk /mbr)       早期的Linux 用的引导加载器叫LILO(Linux loader)只能加载1024柱面以内的磁盘分区对大硬盘支持不好,多用于嵌入式。现在被性能更强的GRUB(GRand Unified Bootloader)代替。          GRUB 分为两段式引导     一个段是MBR上前446byte 第一段找到第二段/boot/grub/stage2  还有一点五段用于表示不同的分区类型grub.conf         内核一定在/boot 中 系统启动第三步  内核初始化   1.硬件设备探测   2.initrd文件,从中加载额外的设备驱动。   3.以只读的方式挂载根文件系统   4.装载init进程 进程号1,在/sbin/init  以上内核初始化信息,都会保存在/var/log/dmesg      /etc/inittab:主要包括一下几个步骤   1.设定默认运行级别   2.启动系统初始化脚本 /etc/rc.d/rc.sysinit   3.执行指定运行级别下的每一个启动脚本 etc/rc.d  /etc/rc.d/rc  /etc/rc.d/rcN.d    4.设定ctrl+alt+del组合键功能    5.设定电源故障时要执行的脚本   6.设定要启动的虚拟控制台 /dev/tty[0-6]   7.设定当指定运行级别为5时做gui的初始化脚本   inittab分四段 简介14:55  /etc/rc.d/rc.sysinit 1段.设置项目 2段  运行级别 3init的操作行为 4段.命令项目执行的命令或脚本 /etc/rc.d/rc.sysinit 1.激活udev和selinux 2.设置内核参数,会读取/etc/sysctl.conf 3.设置系统时钟 4.装载键盘映射 5.启用交换分区(虚拟内存) 6.设置主机名称, 7.根文件系统检查(检查文件的一致性状态),以读写方式挂载根文件系统 8.激活RAID和LVM设备 9.启用磁盘配额 10.检查并挂载其他的文件系统 /etc/fstab 11.清除不再使用的文件锁和PID文件 /etc/rc.local   在启动系统过程的最后定义一些自己想启动的服务


最新回复(0)