Linux大神进阶十九:系统排错

1.系统排错的过程

在这里插入图片描述

2.理解

(1)BIOS(Basic Input/Output System):基本输入输出系统,该系统存储于主板的ROM芯片上,计算机在开机时,会最先读取该系统,然后会有一个加电自检过程,这个过程其实就是检查CPU和内存,计算机最基本的组成单元(控制器、运算器和存储器),还会检查其他硬件,若没有异常就开始加载BIOS程序到内存当中。详细的BIOS功能,这边就不说了,BIOS主要的一个功能就是存储了磁盘的启动顺序,BIOS会按照启动顺序去查找第一个磁盘头的MBR信息,并加载和执行MBR中的Bootloader程序,若第一个磁盘不存在MBR,则会继续查找第二个磁盘(PS:启动顺序可以在BIOS的界面中进行设置),一旦BootLoader程序被检测并加载内存中,BIOS就将控制权交接给了BootLoader程序。
(2)MBR(Master Boot Record):主引导记录,MBR存储于磁盘的头部,大小为512bytes,其中,446bytes用于存储BootLoader程序,64bytes用于存储分区表信息,最后2bytes用于MBR的有效性检查。
(3)系统启动流程

第一步: 电脑通电
||
第二步: BIOS(主板上的只读存储ROM中,basic input or output system)
作用:硬件检测,激活硬件;
||
第三步: grub系统引导(grub引导分为两个阶段)
1)阶段1 grub磁盘引导阶段 (见3.2节)
mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节
dd if=/dev/zero of=/dev/vda bs=446 count=1 ##可以清空mbr
进入到挽救模式,执行***chroot /mnt/sysimage***切换到真实/环境,
并执行***grub2-install /dev/vda***
2)阶段2 grub文件引导阶段(见3.3节)
找到/boot分区
读取***/boot/grub2/grub.cfg /etc/grub.cfg***
文件丢失:grub2-mkconfig >/boot/grub2/grub.cfg
grub2-mkconfig > /etc/grub.cfg
||

第四步: 内核引导阶段(见3.4节)
启动内核,只读挂载/设备
检测硬件设备
对设备驱动进行初始化
进入系统初始化阶段, 将/挂载
内核丢失,从新安装内核安装包就可以解决
方法一: rpm -ivh kernel-xxxxx.rpm --force
方法二: 拷贝所缺的目录;

||

第五步: 系统初始化阶段(系统初始化阶段加载initrd镜像)
(见3.5节)
||
第六步: 开启初始化进程systemd(见3.6节)
开始selinux
加载内核参数
初始化系统时钟,键盘,主机名称
重新读写挂载/设备
激活raid,lvm
激活配额
启动multi-user.target.wants中的所有服务(具体开启的服务取决于系统启动的级别)
开启虚拟控制台
启动图形
如何修改系统启动级别?
方法一: systemctl set-default + 启动级别
方法二: /etc/systemd/system/default.target

3.常见的系统恢复

注意: 重启速度慢的原因
开机会慢一点,因为重新扫描selinux,可以将/etc/sysconfig/selinux中enforcing改成disabled,避免开机速度慢。

3.1忘记密码

功能代码注释
1.1实验准备
(1)passwd## 修改密码
(2)xxxxxxxx## 新密码
(3)xxxxxxx## 确认新密码
(4)init 6##重启
1.2系统恢复
(1)e##进入安装页面点击e
(2)ro xxxxxxxx…UTF-8 修改为 rw rd.break##
(3)chroot /sysroot/## 切换到引导目录
(4)ls## 查看目录
(5)echo redhatpasswd --stdin root
(6)exit## 一次退出
(7)exit## 二次退出,进行安装,生效

Result1.1实验准备 在这里插入图片描述Result1.2系统恢复
在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.2 MBR引导记录丢失

功能代码注释
2.1实验准备
(1)dd if=/dev/zero of=/dev/vda bs=446 count=1##清空MBR
(2)init 6## 重启
2.2系统恢复
2.2.1##添加硬盘设备virt-manager>>>add hardware>>> Selete od create custom storage(rhel7.0)>>>CDROM device>>>finish
2.2.2修改默认启动项为光盘启动Boot Options>>>IDECDROM>>>应用##
2.2.3恢复选项的选择 (1)进入启动页面,选择Troubleshooting >>>Rescue a red hat Enterprise Linux system
(2)continue>>>okay>>>okay然后进入恢复界面
2.2.4恢复引导记录 (1)chroot /mnt/sysimage##进入镜像目录
(2)grub2-install /dev/vda## 恢复引导记录
(3)exit>>>exit>>>force off the machine##二次退出
2.2.5修改默认启动项为磁盘启动Boot Options>>>VirtIO>>>应用## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Result2.1实验准备

在这里插入图片描述

Result2.2系统恢复

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3 引导文件丢失

功能代码注释
3.1实验准备
(1)rm -rf /etc/grub2##删除引导文件
(2)init 6## 重启
3.2系统恢复
3.2.1##添加硬盘设备virt-manager>>>add hardware>>> Selete od create custom storage(rhel7.0)>>>CDROM device>>>finish
3.2.2修改默认启动项为光盘启动Boot Options>>>IDECDROM>>>应用##
3.2.3恢复选项的选择 (1)进入启动页面,选择Troubleshooting >>>Rescue a red hat Enterprise Linux system
(2)continue>>>okay>>>okay然后进入恢复界面
3.2.4恢复引导记录 (1)chroot /mnt/sysimage##进入镜像目录
(2)grub2-install /dev/vda## 恢复引导记录
(3)grub2-mkconfig >/boot/grub2/grub.cfg##将文件添加到启动项
(4)grub2-mkconfig > /etc/grub.cfg## 将文件添加到原来的配置文件
(5)exit>>>exit>>>force off the machine##二次退出,并关机
2.2.5修改默认启动项为磁盘启动Boot Options>>>VirtIO>>>应用## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Result3.1实验准备
在这里插入图片描述Result3.2系统恢复

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.4 引导内核文件丢失

功能代码注释
4.1实验准备
(1)cd /boot/##打开启动目录
(2)rm -rf vmlinuz-3.10.0-123.e17.x86_64##删除引导文件
(3)init 6## 重启
4.2系统恢复
4.2.1##添加硬盘设备virt-manager>>>add hardware>>> Selete od create custom storage(rhel7.0)>>>CDROM device>>>finish
4.2.2修改默认启动项为光盘启动Boot Options>>>IDECDROM>>>应用##
4.2.3恢复选项的选择 (1)进入启动页面,选择Troubleshooting >>>Rescue a red hat Enterprise Linux system
(2)continue>>>okay>>>okay然后进入恢复界面
4.2.4恢复引导记录:方案一 (1)chroot /mnt/sysimage##进入镜像目录
(2)mkdir /johnsonlee##创建搭载目录
( 3)mount /dev/sr0 /johnsonlee##将光盘文件挂载
(4)cd /johnsonlee/##切换到光盘挂载点
(5)ls##查看光盘中的文件
(6)cd Packages/##切换到安装包目录中(记住,不要ls,有4000多个包)
(7)rpm -ivh kernel-xxxxx.rpm --force##强制安装该内核文件
(8)exit>>>exit>>>force off the machine##二次退出,并关机
4.2.4恢复引导记录:方案二 (1)chroot /mnt/sysimage##进入镜像目录
(2)mkdir /curry##创建搭载目录
( 3)mount /dev/sr0 /curry##将光盘文件挂载
(4)cd /curry##切换到光盘挂载点
(5)ls##查看光盘中的文件
(6)cd Packages/##切换到安装包目录中(记住,不要ls,有4000多个包)
(7)cp kernel-3.10.-123.e17.x86_64.rpm /mnt/##将这个文件包拷贝到/mnt/下,因为在光盘目录中不能进行拆包
(8)cd /mnt/##切换到/mnt/
(9)ls##查看/mnt/下拷贝过来的文件包
(10)rpm2cpio kernel-3.10.0-123.e17.x86_64.rpmcpio -id ##拆包
(11)ls##查看包中的文件
(12)pwd##查看当前路径
(13)cd boot/##切换到包中的boot/目录下
(14)ls -l##包中存在内核文件
(15)cp vmlinuz-3.10.0-123.e17.x86_64 /boot/##将内核文件拷贝到系统的/boot/目录下
(16)exit>>>exit>>>force off the machine##二次退出,并关机
4.2.5修改默认启动项为磁盘启动Boot Options>>>VirtIO>>>应用## ##修改默认启动项为磁盘启动 ,此时便能正常启动

注意:方法一速度慢但是能针对在未知所缺文件时使用;方法二速度快,已知所缺文件。

Result4.1实验准备

在这里插入图片描述
Result4.2系统恢复

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.5 镜像文件丢失

功能代码注释
5.1实验准备
(1)cd /boot/##打开启动目录
(2)rm -rf initramfs-3.10.0-123.e17.x86_64.img##删除引导镜像
(3)init 6## 重启
5.2系统恢复
5.2.1##添加硬盘设备virt-manager>>>add hardware>>> Selete od create custom storage(rhel7.0)>>>CDROM device>>>finish
5.2.2修改默认启动项为光盘启动Boot Options>>>IDECDROM>>>应用##
5.2.3恢复选项的选择 (1)进入启动页面,选择Troubleshooting >>>Rescue a red hat Enterprise Linux system
(2)continue>>>okay>>>okay然后进入恢复界面
5.2.4恢复引导记录 (1)chroot /mnt/sysimage##进入镜像目录
(2.1) 方法1mkinitrd /boot/initramfs-`uname −r`.img `uname -r`①生成系统初始化镜像;②initramfs是/boot/grub2/grub.cfg 文件已经写好的,不能更改;③uname -r ##系统当前版本;`command` 表示里面command的结果
(2.2) 方法2mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)生成系统初始化镜像
(3)exit>>>exit>>>force off the machine##二次退出,并关机
5.2.5修改默认启动项为磁盘启动Boot Options>>>VirtIO>>>应用## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Result 5.1实验准备
在这里插入图片描述

Result 5.2系统恢复
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.6 系统启动级别

功能代码注释
6.1实验准备
(1)systemctl set-default poweroff.target##开机自启动关机模式
(2)init 6## 重启
(init 0)runlever0.target poweroff.target##(关机)
runlever1.target rescue.target##(挽救)
runlever2.target multi-user.target##(多用户)
(init 3)runlever3.target multi-user.target##
runlever4.target multi-user.target##
(init 5)runlever5.target graphical.target##(图形模式)
(init 6)runlever5.target reboot.target##(重启)
systemctl set-default +启动级别修改##修改级别
vim /etc/systemd/system/default.target##修改级别
6.2系统恢复
(1)e##进入安装页面点击e
(2)ro xxxxxxxx…UTF-8 修改为 rw rd.break##
(3)chroot /sysroot/## 切换到引导超级用户目录
(4)systemctl set-default graphical.target##(图形模式)
(5)exit>>>exit>>>force off the machine##二次退出,并关机
(6)Boot Options>>>VirtIO>>>应用## ##修改默认启动项为磁盘启动 ,此时便能正常启动

Result6.1实验准备
在这里插入图片描述

Result6.2:系统恢复
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.7 系统入口设置

注意:重装系统,双系统进入时的入口的选择;

功能代码注释
(1)vim /etc/grub2.cfg##打开配置文件,寻找关键字menu
(2)vimmenuentry ‘Windows 10’{ >>> set root=‘hd0,msdos1’>>>chainloader +1>>>}##标题写法,menuntry为固定格式;‘入口名称’,单引号间的内容为入口名称;大括号内的内容为参数
(3)Boot Options>>>VirtIO>>>应用## ##修改默认启动项为磁盘启动 ,此时便能正常启动

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值