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

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

一:引导过程总览

​ 1、开机自检

​ 2、MBR引导

​ 3、GRUB菜单

​ 4、加载linux内核

​ 5、init 进程初始化

二:引导MBR扇区故障

​ MBR引导记录位于物理硬盘的第1个扇区,又称主引导扇区,除了包含系统引导程序的部分数据之外,还包含了整个硬盘的分区表记录。主引导扇区发生故障时,将可能无法进入引导菜单,或者无法找到正确的分区位置而无法加载系统,通过该硬盘引导主机时很可能进入黑屏状态。 解决这个问题的思路:提前做好备份文件、以安装光盘引导进入急救模式、从备份文件中恢复。

(1)备份MBR扇区数据

由于MBR扇区包含整个硬盘的分区表记录,因此该扇区的备份文件必须存放在其他的存储设备中。

首先需要创建一块磁盘(sdb),把原有的数据备份到新建的磁盘上。

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

(2)模拟MBR扇区故障

仍然使用dd命令,人为的将MBR扇区的记录覆盖,以便模拟出MBR扇区被破坏的故障情况。

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

(3)从备份中恢复MBR扇区数据

​ 由于MBR扇区被破坏已经无法再从该硬盘启动系统,所以需要使用其他硬盘中的操作系统进行引导,或者直接使用centos7系统的安装光盘进行引导。目的都是获得一个可以执行命令的shellu环境,以便从备份文件中恢复MBR扇区中的数据。

破坏MBR扇区的数据之后 重启(init 6),在虚拟机上会出现安装向导界面,进入“急救模式”

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

完成恢复操作之后,执行“exit” 命令退出临时shell环境,执行“reboot” 命令,系统将会自动重启。

三:修复GRUB引导故障

​ GRUB是大多数Linux系统默认使用的引导程序,可以通过启动菜单的方式选择进入不同的操作系统。当配置文件/boot/grub/grub.conf 丢失,或者关键配置错误时,Linux主机启动后会出现“grub>” 的提示符,无法完成进一步的启动操作了。

在虚拟机上,先删除配置文件,制作模拟故障,使得linux主机无法正常运行。

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

重启之后就会出现“grub>”的符号界面,这时需要再重启客户机,在vmware这个图标开始读条的时候快速按下esc键,进去启动界面。

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

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

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

进入急救模式,开始输入命令

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

再退出bash环境(exit),重启(reboot)。这时候GRUB故障已经解除了,可以正常开启使用虚拟机了。

四:遗忘root用户的密码

​ 当忘记root用户的密码时,将无法登录linux系统执行管理、维护等任务,而只能通过其他用户登录使用一些受限制的功能。因此,需要通过其他途径来重设root账号的密码。

使用安装的光盘进入急救模式的shell环境,直接执行“passwd root” 命令重设root用户的密码。

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

五:Linux系统运行级别及服务控制

对大多数系统服务来说,常见的几种控制类型:

start(启动):运行指定的系统服务程序,实现服务功能

stop(停止):终止指定的系统服务程序,关闭相应的功能

restart(重启):先退出,再重新郧西不过指定的系统服务程序

reload(重载): 不退出服务程序,只是刷新配置

status(查看状态):查看指定的系统服务的运行状态及相关信息

(1)查看系统运行级别——runlevel

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

(2)切换系统的运行级别

当用户需要将系统转换为其他运行级别时,可以通过init 程序进行,只要使用与级别相对应的数字(0~6)作为参数。

例如:将运行级别由图形模式(5)切换为字符模式(3),可执行“init 3” 命令。再要使用图形界面时,执行“"init 5" 切换回去。

1、先再虚拟机上打开终端输入init 3,然后进入字符模式

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

还有一种方式也可以切换运行级别 —— systemctl 工具

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

2、现在默认的状态时图形化界面,如果要想直接打开就是字符终端模式,就要做链接性文件。把/lib/systemd/system/multi.user.target 指定到 /etc/systemd/system/default.target。指定完成之后在检验是否指定到字符终端模式。

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

3、再查看当前正在运行的服务类型和端口有哪些----netstat -ntap 。会出现sshd 服务,表示远程登录。

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

想要查看sshd的状态,

第一种方法:通过伪终端的形式查看,输入ntsysv ,进入之后看起来像图形化界面,实际上还是字符终端的界面。找到sshd.service , 前面带有*号的证明是开机自启动,想要关闭 就点击空格键。

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

第二种方法:关闭开机自启动 ,直接输入systemctl disable sshd.service

​ 开启开机自启动 ,直接输入systemctl enable sshd.service

查看是否关闭或者开启,输入systemctl is-enabled sshd

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