Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)

文章目录

  • 一、Linux操作系统引导过程
    • 1.1开机自检
    • 1.2MBR引导
    • 1.3GRUB菜单
    • 1.4加载内核
    • 1.5init进程初始化
      • 1.5.1init进程
      • 1.5.2Systemd
  • 二、排除启动类故障
    • 2.1修复MBR扇区故障
    • 2.2修复grub菜单故障
    • 2.3忘记root密码
  • 三、服务控制及切换运行级别
    • 3.1系统服务控制
      • 3.1.1service
      • 3.1.2systemctl
    • 3.2Linux系统的运行级别
      • 3.2.1查看运行级别-runlevel
      • 3.2.2临时切换运行级别-init
    • 3.3优化启动过程
      • 3.3.1系统服务管理工具-ntsysv
      • 3.3.2systemctl

一、Linux操作系统引导过程

系统引导是操作系统运行的开始,在用户能够正常登录到系统之前,Linux操作系统的引导过程将完成一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备。

Linux操作系统的引导过程一般包括以下几个阶段:开机自检、MBR引导、GRUB菜单、加载Linux内核、init 进程初始化。

引导过程总览
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第1张图片

1.1开机自检

服务器主机开机以后,将根据主板BIOS 中的设置对CPU (Central Processing Unit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。

1.2MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(MasterBootRecord,主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB)。

1.3GRUB菜单

对于Linux操作系统来说,GRUB (GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS 7采用的是GRUB2启动引导器。

1.4加载内核

Linux内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。在CentOS系统中,默认的内核文件位于/boot/vmlinuz-3.10.0-514.el7.x86_ 64"。

1.5init进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init"程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成一系列的系统初始化过程,最后等待用户进行登录。

1.5.1init进程

  • init进程
    由Linux内核加载运行/sbin/init程序
    init进程是系统中第一个进程
    init进程的PID (进程标记)号永远为1

Linux操作系统中的进程使用数字进行标记,每个进程的身份标记号称为PID。在引导Linux操作系统的过中,"/sbin/init" 是内核第一个加载的程序,因此init 进程对应的PID号总是为1。
init进程运行以后将陆续执行系统中的其他程序,不断生成新的进程,这些进程称为init进程的子进程。反过来说,init 进程是这些进程的父进程。当然,这些子进程也可以进一步生成各自的子进程,依次不断繁衍下去,最终构成一-棵枝繁叶茂的进程树, 共同为用户提供服务。
从以上描述可以看出,init进程正是维持整个Linux操作系统运行的所有进程的“始祖",因此init进程是不允许被轻易终止的。需要切换不同的系统运行状态时,可以向init进程发送正确的执行参数,由init 自身来完成相关操作。

1.5.2Systemd

  • Systemd是Linux操作系统的一种init软件
    CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
    CentOS7中运行的第一个init进程 是/lib/systemd/systemd

Systemd是Linux操作系统的一-种init 软件,CentOS 7系统中采用了全新的Systemd启动方式,取代了传统的SysVinit。 Systemd 启动方式使系统初始化时诸多服务并行启动,大大提高了开机效率。CentOS 7系统中“/sbin/init是/lib/systemd/systemd"的链接文件。换言之,CentOS 7系统中运行的第一个init 进程是/lib/systemd/systemd"。systemd 守护进程负责Linux 的系统和服务,systemctl 用于控制Systemd管理的系统和服务状态。Systemd将其管理的资源组织成各种类型的单元(Unit),下表列出了Systemd使用的各种单元类型。

单元类型 扩展名 说明
Service .service 描述一个系统服务
Socket .socket 描述一个进程间通信的套接字(通信协议的载体)
Device .device 描述一个内核识别的设备文件
Mount .mount 描述一个文件系统的挂载点
Automount .automount 描述一个文件系统的自动挂载点
Swap .swap 描述一个内存交换设备或目录
Timer .timer 描述一个定时器(用于实现类似cron的调度任务)
Path .path 描述一个文件系统中文件或目录(path 路径)
Snapshot .snapshot 用于保存一个systemd的状态(snapshot 快照)
Scope .scope 使用systemd的总线接口以编程的方式创建外部进程
Slice .slice 描述居于Cgroup的一组通过层次组织的管理系统进程
Target .target 描述一组systemd的单元(target 目标)

运行级别所对应的Systemd目标

init运行级别 Systemd 的 target 说明
0 target 关机状态,使用该级别时会关闭主机
1 rescue.target 单用户模式,不需要密码验证即可登录系统,多用于系统维护
2 multi-user.target 用户定义/域特定运行级别,默认等同于3
3 multi-user.target 字符界面的完整用户模式,大多数服务器主机运行在此级别
4 .multi-user.target 用户定义/域特定运行级别,默认等同于3
5 graphical.target 图形界面的多用户模式,提供了图形桌面操作环境
6 reboot.target 重新启动,使用该级别时将会重启主机

二、排除启动类故障

2.1修复MBR扇区故障

  • 故障原因:病毒、木马等造成的破坏,不正确的分区操作,磁盘读写操作
  • 故障现象:找不到引导程序,启动中断,无法加载操作系统,开机后黑屏
  • 应对思路:应提前做好备份文件 以安装光盘引导进入紧急急救模式,重备份文件中恢复

在工作中通常遇到这种问题是另外用硬盘从其他服务器拷贝MBR扇区数据写入到系统盘中进行修复,这里的话我是用虚拟机模拟了一下MBR扇区故障

增加一块硬盘
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第2张图片
格式化新增的硬盘

挂载到/opt目录
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第3张图片
备份好sda中MBR扇区的数据,模拟MBR扇区故障后重启
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第4张图片
重启后是这个界面,MBR引导出现问题,这里选择troubleshooting
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第5张图片
进入troubleshooting菜单 选择Rescue a centos system
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第6张图片
进入引导可以按回车,或者等待,按1 在按回车进入sh-4.2#
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第7张图片
将sdb挂到/mnt下,查看/mnt有mbr.bak文件,将mbr重新写入到sda里,完成后重启
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第8张图片
这样就修复完成了
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第9张图片

2.2修复grub菜单故障

第一步还是模拟grub故障,进入group2目录,删除grub.cfg文件,重新启动
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第10张图片
重启后是这个画面,这里grub菜单出错,重启系统
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第11张图片
这里重启的时候按F2,进入BOOT将光盘启动放到第一个,退出
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第12张图片
这里和之前一样
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第13张图片
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第14张图片
进入救援模式后切根,修复grub,完成后重新启动即可
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第15张图片

2.3忘记root密码

如果忘记root密码怎么办?
同样的我们可以在救援模式下修改root密码
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第16张图片

三、服务控制及切换运行级别

3.1系统服务控制

3.1.1service

service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态

语法格式:service [参数]

常用参数:
-status-all 显示所服务的状态
-h 显示帮助信息

例如
[root@localhost ~]# service ssh start                 /启动ssh服务

3.1.2systemctl

Centos7之后从init完全换成了systemd的启动方式,systemd 启动服务的机制主要是通过 systemctl 的这个系统服务管理指令来处理。systemctl在用法上也囊括 service / chkconfig / setup / init 的大部分功能
语法格式:systemctl [参数] [服务]

常用参数:

-start 启动服务
-stop 停止服务
-restart 重启服务
-enable 使某服务开机自启
-disable 关闭某服务开机自启
-status 查看服务状态
-list -units --type=service 列举所有已启动服务
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第17张图片

3.2Linux系统的运行级别

3.2.1查看运行级别-runlevel

runlevel命令是读取/var/run/utmp/文件或指定的其他文件,检索其中最近的运行级记录,显示系统先前与当前的运行级

如果运行级记录中没有先前的运行级,则使用字符N表示先前的运行级。如果找不到运行级记录,runlevel将会输出一条表示不知道的错误信息,然后退出,返回一个非0的结束状态

语法格式:runlevel [参数]

常用参数:

q 禁止输出任何运行级信息,遇到问题时也不输出错误信息
–help 显示命令的用法与概述等帮助信息
–version 显示命令的版本等信息
在这里插入图片描述

3.2.2临时切换运行级别-init

init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程
语法格式:init [参数]

常用参数:

0 关机
1 单用户
2 多用户
3 完全多用户模式
5 图形界面
6 重启

3.3优化启动过程

Linux操作系统中包含了大量的服务程序,这些服务程序在切换运行级别时根据预设的状态进行启动或终止。其中有不少系统服务可能并不是用户需要的,但是默认也运行了。
那么,在Linux操作系统中默认包括哪些系统服务?各自的作用是什么?如何控制开机后自动运行的系统服务,以减少资源占用、提高系统运行效率呢?下面就这些问题分别进行讲解。
在CentOS系统中,默认安装的系统服务多达100 余种,这些系统服务为用户提供了丰富的应用服务。只有了解各个系统服务的用途,才能有选择地进行优化操作,实现按需启用Linux服务。
下面列出了CentOS中常见的–些系统服务,包括服务的作用、建议启动的状态,以供优化系统服务时参考。

atd 延期、定时执行任务 建议关闭
bluetooth 发现、认证蓝牙相关设备 建议关闭
crond 按预定周期执行任务 建议开启
irqbalance 多核心CUP处理器的调度支持 建议开启
kdump 记录内核崩溃时的内存信息 建议关闭
lvm2-monitor LVM管理及监控 建议开启
netfs 访问共享文件夹等网络文件系统 建议开启
network 配置及使用网卡、网络地址 建议开启
restorecond SEL inux安全机制的文件监控和恢复功能 建议关闭
rhnsd 访问Red Hat Network,获取通知、提交订阅等 建议关闭
rpcgssd 管理NFS (Network File System,网络文件系统)访问中的客户程序语境 建议关闭
saslauthd 基于文本的身份认证 建议关闭
smartd 监控本地硬盘的状态并发送故障报告 建议开启
smb 文件共享服务 建议关闭
sshd 提供远程登录和管理Linux 主机的功能 建议开启
rsyslog 记录内核、系统的日志消息 建议开启
vsttpd 通过FTP (File Transfer Protocol,文件传输协议)提供文件上传、下载功能 建议关闭

3.3.1系统服务管理工具-ntsysv

ntsysv是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级中,所要执行的系统服务
语法格式:ntsysv [参数]
常用参数:

-back 在互动式界面里,显示Back钮,而非Cancel钮
-level <等级代号> 在指定的执行等级中,决定要开启或关闭哪些系统服务
Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第18张图片

3.3.2systemctl

同样的我们可以用systemctl来设置程序开机启动或关闭

Linux--引导过程与服务控制(修复MBR扇区故障,grub菜单故障,忘记root密码怎么办?)_第19张图片

你可能感兴趣的:(Linux系统)