Linux系统的启动过程

系统启动过程?

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

你可能感兴趣的:(不同Linux版本系统启动,系统,启动过程)