Linux 开机启动流程
2011-05-18 21:26
330 查看
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 在启动系统过程的最后定义一些自己想启动的服务
我们知道整个主机在开机的时候,第一个被读取的地方, 就是 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 在启动系统过程的最后定义一些自己想启动的服务
相关文章推荐
- 转载:linux 系统开机启动流程
- Linux 的开机启动流程详解
- 小c学Linux(11)--开机系统启动流程
- 介绍Linux系统如何初始化和启动系统服务的(Linux的开机流程)
- linux开机启动详细流程
- Linux 的开机启动流程详解
- Linux开机启动流程
- Linux曲径通幽:Linux启动流程、运行级别、开机自启动、修复
- 简要描述Linux开机启动流程
- linux开机启动流程
- linux系统的开机引导、启动流程
- 初学Linux对开机启动流程的相关实验
- linux开机启动详细流程
- Linux开机启动流程
- 思维导图_Linux开机启动流程
- linux开机启动流程
- Linux开机启动流程及运行级别和常用组合键 == 第一次所学知识框架==
- Linux开机启动流程
- linux开机启动流程
- linux 开机启动详细流程