Linux系统的启动过程

xiaoxiao2021-04-16  48

系统启动过程?

POST->BIOS(boot sequence)->GRUB Stage1(MBR-bootloader)->GRUB Stage2(/boot/grub/grub.conf)->kernel, initramfs->/sbin/init->/etc/inittab->/etc/rc.d/rc.sysinit->/etc/rc.d/rc(/etc/rc.d/rcN.d/{K* S*})

1. 第一步 加电自检,检查硬件是否正常工作,如果正常,就会根据预先定义好的启动次序去指定的设备上依次查找MBR 2. 第二步 通过设备中的MBR中的前446字节可以获取到bootloader程序 bootloader有两种类型 早期LILO 流行GRUB 0.X 1.X 这里找到并执行bootloader,其实运行grub的第一阶段,通过grub state1可以找到磁盘上的一个特定分区中的grub stage2,在stage2的配置文件中就指定了内核和临时文件系统的位置,这样就通过bootloader找到了内核 3. 第三步 将找到的内核装载入内存中,并运行,同时将临时文件系统在内存中展开,将一部分内存空间临时作为磁盘来使用,这样在内存中就有一个完整的、临时的文件系统,内核可从这个临时文件系统中获取到所需要的驱动程序,那么内核就可以尝试执行/sbin/init发起第一个用户空间进程 4. 第四步 通过init生成第一个用户空间进程,同时会去读取配置文件/etc/inittab 以及 /etc/rc.d/rc.sysinit 来完成设置系统运行级别,以及其他的系统初始化功能 运行级别有

C5\C6:运行级别

0:关机 1:单用户模式级别:通常用于进行系统的修复 2:不带网络的字符级别 3:字符级别 4:保留级别 5:图形级别 6:重启 查看级别: runlevel who -r 临时切换级别 init NUM 1. 关机 init 0 2. 重启 init 6 3. 切换到图形界面 init 5 4. 切换到字符界面 init 3 修改系统的默认级别 修改init的配置文件/etc/inittab

init–/etc/inittab

1. 定义系统的默认运行级别 2. 定义系统初始化脚本(rc.sysinit) 3. 实现程序的开机自动启动

rc.sysinit的功能

设置主机名 设置系统时钟 设置键盘映射 激活swap 激活selinux/iptables 挂载 /etc/fstab中所定义的外部设备 激活raid、lvm
转载请注明原文地址: https://www.6miu.com/read-4818092.html

最新回复(0)