1、Linux操作系统引导过程
1.1、开机自检
-
先根据主板BIOS中的设置对cpu、内存、显卡、键盘等设备进行初步检测
-
系统控制权交给硬盘
1.2、MBR引导
-
再进入硬盘中的第一个扇区,运行放在MBR扇区中的启动GRUB引导程序
-
系统控制权传递给包含操作系统引导文件的分区,或者直接根据引导程序的信息调用启动菜单(GRUB)
1.3、GRUB菜单
-
GRUB(统一启动加载器),是最为广泛的多系统引导程序
-
系统控制权交给GRUB后,显示启动菜单给用户选择,并且根据选项加载Linux内核文件
-
cenos 7采用GRUB 2 引导程序
1.4、加载Linux内核
-
内核接过系统控制权,完全掌握Linux操作系统的运行过程
-
默认内核文件位于/boot/vmlinuz-3.T0.0-514.el7.x86_64
1.5、init进程初始化
-
是Linux系统运行的第一个程序,系统初始化进程(cenos 6)
-
Linux内核将系统中的/sbin/init程序加载到内存中运行,完成一系列初始化过程,最后等待用户进行登录
1.5.1、systemd
注意:目前cenos 7采用的是systemd程序(d指守护进程daemon)
优势:并行启动,是一组命令
1.5.2 Systemd单元类型
单元类型 | 扩展名 | 说明 |
---|---|---|
Service | .service | 描述一个系统服务 |
Socket | .socket | 描述一个进程间通信的套接字 |
Device | .device | 描述一个内核识别的设备文件 |
Mount | .mount | 描述一个文件系统的挂载点 |
Automount | .automount | 描述一个文件系统的自动挂载点 |
Swap | .swap | 描述一个内存交换设备或交换文件 |
Path | .path | 描述一个文件系统中文件或目录 |
Timer | .timer | 描述一个定时器 |
Snapshot | .snapshot | 用于保存一个systemd的状态 |
Scope | .scope | 使用systemd的总线接口以编程的方式创建外部进程 |
Slice | .slice | 描述居于Cgroup的一组通过层次组织的管理系统进程 |
Target | .target | 描述一组systemd的单元 |
运行级别所对应的Systemdm目标
1.5.3、linux启动流程图
http://s4.51cto.com/wyfs02/M02/87/20/wKiom1fVBELjXsvaAAUkuL83t2Q304.jpg
2、排除启动类故障
2.1、修复MBR扇区故障--利于sdb盘
故障原因
-
病毒、木马等造成的破坏
-
不正确的分区操作、磁盘读写误操作
-
故障现象
-
找不到引导程序、启动中断
-
无法加载操作系统,开机后黑屏
解决思路
-
硬提前作好备份文件
-
以安装光盘引导进入急救模式
-
从备份文件中恢复
1、加块硬盘,格式化并挂载
2、复制第一块盘的MBR主引导记录,到/data1/mbr.bak
查看一下MBR主引导记录
3、模拟破坏硬盘sda
4、reboot重启
5、选择第三个选项,Troubleshooting
选2,进入急救模式
选1.continue,进入光驱系统
实验成功
2.2、修复MBR扇区故障--利于服务器
1、复制第一块盘的MBR主引导记录,到/data1/mbr.bak
2、将本地文件通过网络传给本台主机ip地址
3、模拟破坏硬盘sda
4、reboot重启
5、选择第三个选项,Troubleshooting
选择2,进入急救模式
选择3,
6、
2.3、修复GRUB引导故障
故障原因
-
MBR中的GRUB引导程序遭到破坏
-
grub.conf文件丢失,引导配置有误
故障现象
-
系统引导停滞,显示“grub>”提示符
解决思路
-
尝试手动输入引导命令
-
进入急救模式,重写或者从备份中恢复grub.conf
-
想MBR扇区中重建grub程序
1、模拟删除grub.cf文件
1、进入急救模式,重建GRUB菜单配置文件(按ESC)
进入急救模式,加载光盘镜像,切换到系统根环境
chroot /mnt/sysimage 进入急救模式,更改环境
重建将GRUB引导程序安装到第一块盘的MBR扇区
重新构建GRUB菜单的配置文件
2.4、遗忘root用户密码
故障原因
-
遗忘root用户的密码
故障现象
-
无法进行需要root权限的管理操作
-
若没有其他可用账号,将无法登录系统
解决思路
-
进入急救模式,重设密码
1、按ESC,进入急救模式
2
chroot /mnt/sysimage 进入急救模式,更改环境 passwd 更改密码 exit 退出 reboot 重启
3、服务控制及切换运行级别
3.1、系统服务控制
systemd是一个集合体,,而systemctl是管理系统的主要命令,主要用于控制系统
控制类型 | 解释 |
---|---|
start | 启动 |
stop | 停止 |
restart | 重新启动 |
reload | 重新加载 |
status | 查看服务状态 |
3.2、Linux系统的运行级别
查看运行级别
4、优化启动过程
给开机时候不需要自启动的程序进行关闭
ntsysv工具
-
提供一个交互式、可视化窗口
-
可以在字符终端运行
-
便于集中管理多个服务
chkconfig 工具
-
不提供交互式、可视化窗口
-
管理单个服务效率更高
示例: