Linux——引导、排障及修复

本文详细介绍了Linux系统的引导过程,包括MBR引导、GRUB菜单和Init进程。同时,针对启动类故障,如MBR扇区故障、GRUB引导故障和遗忘root密码的情况,提供了详细的修复步骤和解决方案。此外,还讲解了系统服务控制、运行级别切换以及启动过程的优化方法,以帮助用户管理和优化Linux系统的启动流程。
摘要由CSDN通过智能技术生成


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

引导过程

在这里插入图片描述
引导过程总览

开机自检:1、加电,运行硬件自检 2、加载驱动

MBR引导:引导程序,加载硬盘(如是双系统,系统一定要放在不同的硬盘中)

GRUB菜单:加载系统(引导系统的必要菜单)、安全模式,急救模式

加载内核(kernel):(系统的心脏)确定好系统后加载系统的内核

Init进程初始化:全部还原默认设置后系统会进行加载,然后进程启动(2种):

自动:系统必要的进程

启动延迟启动:开机自启动的程序(第三方外在组件)

Init进程

由Linux内核加载运行 /sbin/init程序

是系统中第一个进程

PID进程号永远为1

在这里插入图片描述

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

排除启动类故障

修复MBR 扇区故障

故障原因:

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

故障现象:

  • 找不到引导程序,启动终端
  • 无法加载操作系统,开机后黑屏

解决思路:

  • 应提前做好备份文件(cp -p 保留权限备份*)
  • 以安装光盘引导进入急救模式
  • 从备份文件中恢复

修复MBR 扇区故障 实验步骤:

一、备份mbr扇区数据到其他磁盘

加一块硬盘留做备份sdb

分区——格式化——挂载

[root@localhost ~]# fdisk /dev/sdb       //创建新磁盘
……省略内容
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkfs.xfs /dev/sdb1     //格式化
……省略内容
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mkdir /abc             //创建目录
[root@localhost ~]# mount /dev/sdb1 /abc      //将/dev/sdb1挂载到/abc
[root@localhost ~]# df -hT                   //查看挂载
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        20G  4.3G   16G   22% /
……省略部分内容
/dev/sdb1      xfs        20G   33M   20G    1% /abc

备份:

[root@localhost ~]# dd if=/dev/sda of=/abc/sda.mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000145897 秒,3.5 MB/秒

二、模拟破坏mbr引导扇区:

[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000106943 秒,4.8 MB/秒

三、重启后,加载系统镜像文件中的急救模式:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、把备份数据做恢复

mkdir /aaa

mount /dev/sdb1 /aaa

dd if=/aaa/sda.mbr.bak of=/dev/sda bs=512 count=1

在这里插入图片描述

修复GRUB引导故障

故障原因:

  • MBR中的GRUB引导程序遭到破坏
  • grub.conf文件丢失、引导配置有误

故障现象:

  • 系统引导停滞,显示“grub>”提示符

解决思路:

  • 尝试手动输入引导命令
  • 进入急救模式,重写或者从备份中恢复grub.conf
  • 向MBR扇区中重建grub程序

修复GRUB引导故障 实验步骤:

在这里插入图片描述

一、使用系统急救模式进入命令字符界面

二、加载镜像中的系统进入bash环境

chroot  /mnt/sysimage               //加载系统镜像

三、重新构建grub菜单系统

grub2-install /dev/sda              //重新建立加载sda分区

grub2-mkconfig -o /boot/grub2/grub.cfg        //重新构建grub菜单配置文件

exit                    //退出bash环境

reboot                 //重启或init 6 重启

在这里插入图片描述

遗忘root用户密码

故障原因:

  • 以往root用户的密码

故障现象:

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

解决思路:

  • 进入急救模式,重设密码

遗忘root用户密码实验步骤:

一、加载镜像系统

chroot  /mnt/sysimage

二、直接输入需要更改的用户改密码passwd root

​ 输入密码更改

在这里插入图片描述

服务控制及切换运行级别

系统服务控制

常用方式

systemctl 控制类型 服务名称

控制类型
  • start:启动
  • stop:停止*(现实中尽量不要操作)*
  • restart:重新启动(先停止,在启动,现实中尽量不要操作
  • reload:直接重新加载配置文件(建议使用)
  • status:查看服务状态
  • …………

Linux系统的运行级别

在这里插入图片描述

查看运行级别

  • runlevel命令
  • systemctl工具

临时切换运行级别

  • init命令
  • systemctl工具

设置永久运行级别

优化启动过程

系统服务管理工具
  • ntsysv工具
    • 提供一个交互式、可视化窗口(伪图形化界面)
    • 可以在字符终端运行
    • 便于几种管理多个服务
  • systemctl工具
    • 不提供交互式、可视化窗口
    • 管理单个服务效率更高

设置系统服务的启动状态

 systemctl enabled/disable 服务名称

查看系统服务的启动状态

systemctl is-enabled 服务名称

在这里插入图片描述

检测是否是开机自启动,如果是enable 就是自启动,disable就是关闭自启动

本次我们所操作的都是通过急救模式加载镜像修复,进入单用户模式,这种方式不需要密码即可进入系统且拥有root权限,只应在紧急状况下授权使用。从安全角度来讲,任何人都可以修改,也是一个极大的威胁,后期我们会对此问题进行解决,感谢关注

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值