操作系统的引导过程与服务控制

引导过程与服务控制

一、引导过程管理

1、引导过程

【1】开机硬件自检(BIOS)

基本的自检,检测出第一个能够开机引导系统的设备(光驱、硬盘、U盘),查找引导程序。

【2】MBR引导

引导设备放置在设备里面的第一个扇区(MBR、512字节),MBR里面会有GRUB引导程序,分区表,BIOS找到引导程序之后会启动使其运行起来。

【3】GRUB菜单

Linux中的启动运行程序,运行起来之后会读取grub配置文件grub.conf,里面有内核,设置等,让引导程序加载内核和镜像文件。

【4】加载内核(kernel)

在加载时把内核和镜像文件都加载到内存里面(这个是由kernel小程序完成的),完成之后有进行一次全面的硬件自检,所有的均加载完毕之后内核把init进程运行起来。

【5】init进程初始化

是所有进程的父进程,负责整个环境的初始化。是系统的第一个进程,内核加载/sbin/init程序运行init进程,PID(进程标记号)永远是1。完成就启动系统。

2、Upstart启动方式

将初始化配置文件分散存放,响应不同的启动事件,以事件为基础的启动方式。
在这里插入图片描述

3、inittab文件的结构

【1】格式:id:runlevels:action:process

在这里插入图片描述

【2】runlevels—运行级别

在这里插入图片描述

4、排除启动类故障

注:急救模式工作原理
光盘的操作系统在内存中运行,硬盘中坏的操作系统挂载到内存中的/mnt/sysimage目录下,这个目录相当于硬盘中的根目录,这样就能修改破坏的操作系统。

【1】修复MBR扇区故障
(1)故障原因

病毒、木马等造成的破坏;
不正确的分区操作、磁盘读写误操作;

(2)故障现象

找不到引导程序,启动中断;
无法加载操作系统,开机后黑屏;

(3)解决思路

应提前做好备份文件;
以安装光盘引导进入急救模式;
从备份文件中恢复;

(4)示例案列

1)挂载分区到某个文件下(挂载前格式化分区)
在这里插入图片描述
2)备份MBR扇区数据(of=备份到路径尽可能到其他磁盘,bs表示读写单位,count表示读写数量)
在这里插入图片描述
注:dd命令比tar的备份更加强烈,tar包一般备份普通文件,透明的文件目录等,dd可以备份不透明的文件(扇区等),看不见的目录。
3)模拟MBR扇区故障(设备文件/dev/zero表示无限制产生0的程序文件)
在这里插入图片描述
4)光盘引导,进入急救模式(按f10保存退出),按提示操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5)从备份文件中恢复MBR扇区(备份路径和备份到的路径互换)
在这里插入图片描述
在这里插入图片描述

【2】修复GRUB引导故障
(1)故障原因

1)MBR中的GRUB引导程序遭到破坏
2)grub.conf文件丢失,引导有误

(2)故障现象

1)系统引导停止,显示“grub>”提示符

(3)解决思路

1)方法一:尝试手动输入引导命令
第一步:若在提示符后可以进行编辑,则通过输入对应的引导程序命令(可参考其他相同版本系统中/boot/grub/grub.conf文件的引导程序)在执行boot命令即可正常引导Linux系统。
第二步:登录进入系统以后,需要找到配置文件/boot/grub/grub.conf,并修复其中的错误,或者直接重建该文件。
第三步:查看GRUB配置文件grub.conf的默认内容(grep -v “^#” /boot/grub/grub.conf)
2)方法二:进入急救模式,重建grub程序

(4)案例说明

方法一的恢复案例:
1)到grub/把引导程序的配置文件名改成其他名字,模拟引导文件不存在。
2)重启之后会出现“grub>”提示符界面。
3)首先输入root(hd0,0)(指定内核存在分区);内核名称:kernel /VM###tab### root=uuid(事先要做记录才能实现);加载镜像文件系统:initrd /init###tab### ;引导:boot;进入系统把修改错误的文件恢复到源文件就可以了。
方法二的恢复案例:
1)使用dd命令备份引导程序所在分区,为保险起见把备份文件复制一份到挂载目录下。
2)使用安装光盘引导进入急救模式,若分区表并未被破坏,则急救模式将会找到硬盘中的Linux根分区,并将其挂载到光盘目录结构中的/mnt/sysimage文件夹中。
3)进入“bash-4.1#”的shell环境以后,执行“chroot /mnt/sysimage”命令可以将目录结构切换到待修复的Linux系统,然后重写或恢复备份的grub.conf配置文件即可。
注:分区表保存在MBR扇区的第447~510字节中,MBR共有512字节,前446字节是主引导记录,后64字节,每16字节为一组,共四组是硬盘分区表。

【3】忘记root密码故障
(1)故障原因

忘记root密码

(2)故障现象

无法进行需要root权限的管理操作
若没有其他可用账号,将无法登录系统

(3)解决思路

方法一:引导进入单用户模式,重新设置密码:grub>kernel …single或s或1
方法二:进入急救模式,重设密码。

(4)案例说明

1)方法一案例:
在重启选择系统界面使用上下箭头停住界面按“e”进入编辑模式,选择kernel按“e”空格写入“1或s”就可以。这样就可以进入单用户模式,在里面给root设置密码。
2)方法二案例:
重启F2选择光盘启动,使用命令chroot /mnt/sysimage进入急救模式,重新改密码就可以。

二、服务控制及优化启动过程

1、系统服务控制

【1】常用方式

Service 服务名称 控制类型(我要对这个服务做什么操作)
/etc/rc.d/init.d 服务名称 控制类型
Systemctl 控制类型 服务名称

【2】控制类型

Start:启动、stop:停止、restart:重启、reload:重新加载、status:查看服务状态

【3】示例postfix服务

在这里插入图片描述

【4】reload与restart区别

Reload:重载配置文件,服务不停止重新加载配置文件生效,叫平滑过渡。相当于刷新
Restart:相当于停掉这个网页,重新点进,要停掉服务。

2、Linux系统的运行级别

【1】查看运行级别:使用runlevel命令
【2】临时切换运行级别:使用init命令结合0-6运行级别参数,如init 3。

3、优化启动工具

系统服务选择开启还是关闭,应根据主机的实际功能需求来定。

【1】ntsysv工具(*空格键,OKtab键)

(1)提供一个交互式、可视化窗口,可在字符界面运行,便于集中管理多个服务
(2)语法:ntsysv --level 级别(0–6)
在这里插入图片描述

【2】chkconfig工具

(1)不提供交互式可视化窗口,管理单个服务效率更好。
(2)语法:查看服务状态chkconfig --list (服务名称) 永久关闭:chkconfig --level 级别 服务名 on/off
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhang_yazhou/article/details/106845228
今日推荐