目录

前言

一、磁盘引导与修复

1、模拟问题

2、修复方式

二、grub2 文件引导与修复

1、模拟问题1

2、引导及修复过程

3、模拟问题2

4、引导及修复过程

三、内核加载

1、模拟问题

2、引导及修复过程

四、系统初始化镜像

1、模拟问题

2、引导及修复过程

五、系统启动级别

1、模拟问题

2、引导及修复过程

六、超级用户密码忘记

总结


前言

我们平常一些不规范、不正确的操作会导致系统出现各种各样的问题,在实际工作中,重装服务器显然是不现实的,因此我们需要了解系统启动原理并据此找到修复系统各个场景所出现问题的方法。

课程开始前首先大家先关闭SELinux

一、磁盘引导与修复

在启动程序时,磁头经过mbr程序的指引跳转到boot分区,开启系统启动程序,读取相应的配置文件,系统正常启动,因此当 mbr 数据丢失时,系统会因为找不到启动分区而停止启动。

mbr=主引导记录=0磁道1扇区446存储字节

作用:记录 grub2 引导文件的位置

1、模拟问题

系统磁盘/dev/sda
dd if=/dev/zero of=/dev/xxx(系统磁盘) bs=446 count=1 ##清空系统/dev/sda 上的 mbr 数据 此时重启系统后会停滞导致无法正常启动

2、修复方式

(1)在虚拟机关闭模式下设置光盘为第一启动项,应用,从光盘进入系统,选择挽救模式,输入以下命令:
chroot /mnt/sysimage
grub2-install /dev/xxxxxx    #重新安装grub2文件到系统硬盘上
(2)执行两次exit,关闭系统,并选择硬盘为第一启动项,启动系统,发现系统可以正常启动

grub2-install /dev/xxxxxx

等待加载完毕,关机重新开机

二、grub2 文件引导与修复

grub2作用:告诉他启动系统需要加载的文件有哪些,并让他自动加载

文件存储路径:

/boot/grub2/grub.cfg 总引导文件
/boot/loader/entries/xxxxxxxxx.conf 子引导文件

删除上述任意一个文件都会导致系统无法正常启动

1、模拟问题1

rm -fr /boot/loader/entries/xxxxxxxxx.conf          删除子引导文件

2、引导及修复过程

手动引导
重启系统并执行如下指令
set root='hd0,msdos1'
linux16 /vmlinuz-3.10.0-957.el7.x86_64 ro root=/dev/nvme0n1p2
initrd16 /initramfs-4.18.0-80.el8.x86_64.img
boot
修复
完成上述引导过程后可正常进入系统,但是还需要修复,否则下次重启还是无法正常启动
cp /usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf /boot/
kerne-install add 内核版本号 内核镜像
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz

3、模拟问题2

rm -fr /boot/grub2/grub.cfg         删除总引导文件

4、引导及修复过程

引导:和问题1引导过程相同

修复: grub2-mkconfig > /boot/grub2/grub.cfg         创建cfg总引导文件

注意:上述问题出现时,如果没有重启系统,可直接用修复过程修复,如果重启系统可利用上述引导操作进入系统,之后同样需要进行修复,以保证之后可以正常进入系统

三、内核加载

加载内核作用:/boot/vmlinuz-$(uname -r)
系统初始化硬件设备,只读挂在根目录下的设备。

1、模拟问题

rm -fr /boot/vmlinuz-$(uname -r)

2、引导及修复过程

复制系统中usr下的内核文件到/boot中即可
在关闭模式下选择光盘为第一启动项,启动系统,进入到挽救模式,执行以下命令:
chroot /mnt/sysimage
cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)
exit
exit

导致系统启动失败,只能进入挽救模式

四、系统初始化镜像

文件位置: /boot/initramfs-4.18.0-80.el8.x86_64.img

作用:

加载系统时钟

加载 selinux

加载系统主机信息

加载/etc/fstab 文件中磁盘挂在策略

加载磁盘配额

初始化系统程序开启开机启动服务

开启虚拟控制台

开启图形

1、模拟问题

rm -fr /boot/initramfs-xxxxx.img         删除镜像文件,系统无法正常启动

2、引导及修复过程

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)         恢复初始化镜像文件

光盘启动

五、系统启动级别

0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启

系统开机启动的原理

启动级别设定的目录

这个文件是启动脚本 

1、模拟问题

systemctl set-default reboot.target

2、引导及修复过程

在开机选择界面按<e>进入到引导文件编辑模式

在内核加载选项最后加入启动级别 5

ctrl+x

systemctl set-default graphical.target

最后开机后 set-default graphical.target 恢复回来

六、超级用户密码忘记

恢复方法:
1.在开机选择界面按<e>进入到引导文件编辑模式
2.在内核加载选项最后删除到 ro 选项
3.更改 ro---->rw
4.加入 rd.break 参数终止系统启动进入单用户模式
5.ctrl+x 启动
6.chroot /sysroot
7.echo lee| passwd --stdin root
8.touch /.autorelabel ##当/.autorelabel 文件存在 selinux 会重新初始化

删除到r之后

如果relinux开启需要做以下操作,但是建议每一次都这样操作

如果不小心把/boot/目录下的东西全删掉怎么结局?

实验:
rm -fr /boot/*

恢复步骤
grub2-install /dev/sda
grub2-mkconfig > /boot/grub2/grub.cfg
rpm -ivh kernel-core-xxxx.rpm

或者如果配置好了软件仓库也可以

grub2-install /dev/nvme0n1

dnf reinstall kernel-core.x86_64 -y

grub2-mkconfig > /boot/grub2/grub.cfg

总结

本章内容重去讲解了Linux系统引导过程及引导修复,其中涵盖磁盘引导及修复、grub2文件引导及修复、内核的加载修复、系统初始化镜像修复、系统启动级别修改后的修复、超级用户忘记密码的解决策略。在平常的工作中总会有很多出其不意的问题等待着我们去解决,希望这篇文章对大家有所帮助。

图文详解Linux系统引导过程及引导修复相关推荐

  1. find linux 目录深度_浪里淘沙,详解Linux系统中Find命令的实用技巧

    知了小巷:浪里淘沙,详解Linux系统中Find命令的实用技巧. 啊哈,找到了! 当我们需要在Linux系统上定位某个文件或目录时,find命令通常是必备之选. 它使用起来非常简单,但有许多不同的可选 ...

  2. php执行md5sum,Linux_详解Linux系统中md5sum命令的用法,MD5算法常常被用来验证网络文 - phpStudy...

    详解Linux系统中md5sum命令的用法 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任 ...

  3. IBM服务器win7系统忘记密码,图文详解Win7系统忘记开机密码的处理方法

    许多小伙伴都遇到过Win7系统忘记开机密码的问题,虽说设置开机密码能保护系统安全,但偶尔也会出现忘记密码的情况,这要怎么办?难道没办法操作系统了吗?别着急,这里图文详解一下Win7系统忘记开机密码的处 ...

  4. 详解Linux系统Vi 和 Vim中正常模式、编辑模式、命令模式相互转化,以及vim命令使用

    详解Linux系统Vi 和 Vim中正常模式.编辑模式.命令模式相互转化 vi 和 vim 的基本介绍 vi 和 vim 的三种常见模式 正常模式 正常模式常用命令 插入模式/编辑模式 命令行模式 v ...

  5. 详解Linux系统的开机、重启和用户登录注销

    详解Linux系统的开机.重启和用户登录注销 关机和重启命令 基本介绍 注意细节 用户登录和注销 基本介绍 使用细节 关机和重启命令 基本介绍 shutdown命令的使用 shutdown -h no ...

  6. php ping icmp,Linux_详解Linux系统中ping和arping命令的用法,pingping 程序使用 ICMP 协议的强 - phpStudy...

    详解Linux系统中ping和arping命令的用法 pingping 程序使用 ICMP 协议的强制回显请求数据报以使主机或网关发送一份 ICMP 的回显应答.回显请求数据报(" ping ...

  7. rhel系统启动过程_详解linux系统的启动过程及系统初始化

    一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取i ...

  8. 详解linux系统的启动过程及系统初始化

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chrinux.blog.51cto.com/6466723/1192004 一. ...

  9. linux使用u盘的过程是,图文详解Linux下使用U盘的方法

    习惯了在Windows系统下即插即用U盘,换成Linux系统下你可能就不会使用了.为什么这么说呢?因为Linux系统U盘被视为SCSI设备,因此不能直接使用,还需要我们手动进行相应的设置,下面这篇教程 ...

最新文章

  1. IIS 7启用static JSON文件能POST方法
  2. 类成员函数作为函数参数/回调函数 出现error C3867
  3. python基础——if语句/条件控制
  4. java返回两个string_java – 为什么String.intern()方法返回两个不同的结果?
  5. 实现用户注册功能---文件保存信息,如果用户名存在就死循环继续
  6. 20145226夏艺华 《Java程序设计》预备作业3
  7. 直接拿来用的 CTO 创业技术栈指南!
  8. ap sat_新手必读:7个问题分清SAT、AP、托福考试
  9. RDD partitioner入门详解
  10. 完全分布式安装Hadoop,Hive,Hbase,Hwi,Zookeeper
  11. dede去除powered by dedecms
  12. 计算机错误1327,Win7系统电脑安装软件失败并提示错误1327解决办法
  13. 恶意流量监测开源系统:Maltrail
  14. UCLA教授朱松纯:走向通用人工智能,从大数据到大任务
  15. 数据结构(六):伸展树简介
  16. 新装Kali需安装的常用软件(不定期更新)
  17. 张忠谋今日正式退休,已为台积电布局好下一个十年
  18. docker入门精简版
  19. Bash脚本基础:环境变量定义与使用
  20. 古今群侠传java,【古今群侠传官网版】古今群侠传最新官网版下载_66游戏网

热门文章

  1. 东北林业大学计算机专业学科评估,东北林业大学a+学科有哪些?东北林业大学第四次学科评估成绩...
  2. 股市动荡不安,品今控股助力分析
  3. day02--java基础编程:变量,数据类型,类型转换,运算规则,Scanner,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序
  4. 在nodejs中创建child process
  5. Fragment 嵌套ViewPager(ViewPager里面有多个Fragment)
  6. 肝了一个月的 DDD,一文带你掌握!
  7. //编写程序,输入一个四位数整数如5678,求出它的各位数之和,并在屏幕上解出。
  8. 用python turtle画人_Python中如何用turtle库画出小猪佩奇社会人
  9. 2022年高处吊篮安装拆卸工(建筑特殊工种)考试练习题模拟考试平台操作
  10. jqgrid 自定义搜索的实现 , 后台实现