系统启动流程

主要的启动流程


一.BIOS:
1.检测外置设备,目的是为了把外围设备的信息提供给操作系统使用,寻找启动磁盘(boot disk)
2.启动加载器:试着按照一定的顺序找出启动扇区,并执行位于启动扇区前446字节中的操作系统
顺序:寻找硬盘的第一个扇区(MBR master boot record),如果主启动扇区没有存储操作系统,则寻找磁盘中标记被启动分区的第一个扇区中的操作系统,存储操作系统信息的空间只有446字节
3.载入内核: 检测硬件设备 驱动硬件设备 以只读的方式挂载根文件系统 启动init服务
驱动程序: 静态驱动程序,编译在内核镜像文件中的
动态驱动程序,以模块的形式存放在操作系统当中的
以只读形式挂载根文件系统:/etc /bin /sbin /lib /dev,为了安装适当的模块,以便驱动某些硬件设备,启动某些功能;启动存储在根文件系统的init服务
4.启动init服务:/sbin/init /etc/init /bin/init /bin/sh 未找到则提示(kernel......kill init)
init是开机启动的第一个进程,其他进程都是有init衍生而来的


二.初始化系统环境:

1. /etc/rc.d/rc.sysinit
rc.sysinit
启动udev和selinux子系统:udev负责管理 /dev中的设备文件,selinux可增强linux系统的安全性
设置内核参数:sysctl -p 从/etc/sysctl.conf中加载内核参数
设置系统时间:将硬件时间设置为linux系统时间
加载键盘对应表:保证输入正确的字符
启动swap:swapon -a -e根据/etc/fstab的设置启动所有交换空间
设置主机名:/etc/sysconfig/network的HOSTNAME
检查挂载文件系统:以读写的形式挂载所有文件系统,以便写入数据
初始化硬件设备:试着驱动剩余的硬件设备
加载模块:根据/etc/modprobe.conf中的信息加载模块
ISA PnP硬件设备:ISA(总线) PnP(即插即用)
USB设备
启动软件磁盘阵列与LVM
卸载/initrd:节省系统资源
初始化串行端口设备:
清除过期的锁定文件:锁定文件的作用是为了保证只有一个实例运行。
重设磁盘参数:根据/etc/sysconfig/harddisk来设置磁盘参数

2.
/etc/rc.d/rc

rc:建立运行环境

3.
/etc/rc.d/rc.local

rc.local是开机启动过程中唯一可以修改的文件

建立用户接口
建立虚拟控制台:/bin/login
建立图形接口:启动图形界面

###############################启动过程完毕############################
运行级别
runlevel 描述 可登录用户数量 网络 图形
0 关机 无 X X
1 单用户 只有root X X
2 多用户模式 只有本机用户 Y X
3 多用户模式 本机+域 Y X
4 保留 本机+域 Y X
5 图形模式 本机+域 Y Y
6 重启 无 X X
7 死机

查看运行级别:runlevel 如显示 5 3 , 则5表示原来的级别 3表示现在的级别
切换运行级别的方法:
1.可以在启动加载器中指定
2.使用init切换
3.使用telinit工具切换

#######################################################################

一.管理init服务:

1.建立系统使用环境

2.确保系统运行

3.监控周边设备

// 处理ctrl+alt+del PID横为1 无法被终止,只能重启

二.配置init服务
/etc/inittab
ID:RUNLEVELS:ACTIONS:PROCESS
ID:init服务参数识别名称,由1-4个字符组成
RUNLEVELS:在哪个运行级别调用
ACTIONS:init服务执行程序的方法
PROCESS:执行文件的位置,必须为绝对路径

ID字段内容
id:定义linux默认运行级别
si:系统初始化要执行的程序
l0-l6:进入到不同的运行级别时,要执行的动作
ca:拦截到ctrl+alt+del事件系统要执行的工作
pf:电源失效的时候要执行的工作
pr:电源恢复的时候要执行的工作
N:如何启动第N个控制台
x:启动图形系统

重启init服务
init q
kill -HUP 1
telinit q

三.管理启动加载器
启动加载器的作用是加载操作系统内核,并传递一些参数给内核
GRUB LILO(现在已经多数不用)
grub的特性:修改配置文件后不需要重新安装,可加密
e 编辑选择的项目
a 在启动操作系统前,修改启动参数
c 进入到grub的命令行模式
p 输入grub密码
enter 确认
esc 返回/不保存退出
o 新增一行设置
d 删除选择的设置
配置文件
/boot/grub/grub.conf
安装grub
grub-install /dev/hda /dev/sda
grub--root (hd0,0)-- setup(hd0)

设置grub密码

明文:vim /boot/grub/grub.con在全局参数中加password 123456

密文:grup-md5-crypt 输入设置的密码将生成乱码复制到grub.conf全局中。如password --复制的乱码

假设root密码丢失,试修改root密码为fengtao:
进入引导界面,按e键,继续e键,选择kernel,e, single ,enter,b,进入单用户passwd输入fengtao,最后reboot,成功。

你可能感兴趣的:(系统启动流程)