Linux的系统排错

文章目录

    • 一、系统引导过程
    • 二、系统的不同问题
      • 2.1 硬盘引导阶段
        • 1、 mbr主引导记录的恢复
      • 2.2 文件引导阶段
        • 1、引导文件grub.cfg丢失
        • 2、 内核文件丢失问题
        • 3、 初始化镜像文件丢失
        • 4、/boot分区被删除
      • 2.3 系统开机启动级别被人恶意篡改
      • 2.4 忘记root用户密码

一、系统引导过程

Linux的系统排错_第1张图片

  • BIOS是电脑的基本输入输出系统,在计算机系统中起着重要作用
  • BIOS是连接电脑硬件和软件的枢纽,也可以说它是一款转换器
  • 从功能上看,BIOS分为三个部分: 自检及初始化程序;硬件中断处理;程序服务请求
程序 含义
自检及初始化程序 比较容易理解,就是电脑通电后BIOS对硬件部分的检测,是否有异常或故障,还有就是启动前一些硬件参数的比对是否符合,之后就是引导硬盘的操作系统
硬件中断处理 计算机开机的时候,BIOS会告诉CPU硬件设备的中断号,当你操作时输入了使用某个硬件的命令后,它就会根据中断号使用相应的硬件来完成命令的工作,最后根据其中断号跳回原来的状态
程序服务请求 从BIOS的定义可以知道它总是和计算机的输入输出设备打交道,它通过最特定的数据端口发出指令,发送或接收各类外部设备的数据,从而实现软件应用程序对硬件的操作

二、系统的不同问题

2.1 硬盘引导阶段

1、 mbr主引导记录的恢复

模拟问题: dd if= /dev/zero of=/dev/vda bs=446 count=1

Linux的系统排错_第2张图片

重启开机后,会卡在这里。

Linux的系统排错_第3张图片

解决
(1)让虚拟机开机时以光驱开启。

  • 插入光驱时,先关机。

Linux的系统排错_第4张图片

Linux的系统排错_第5张图片

(2)开机进入挽救模式

Linux的系统排错_第6张图片

Linux的系统排错_第7张图片

Linux的系统排错_第8张图片

Linux的系统排错_第9张图片

Linux的系统排错_第10张图片

(3)df 查看一下 boot分区所在硬盘为/dev/vda

(4)grub2-install 启动分区所在硬盘
(5)两次exit 就好了
Linux的系统排错_第11张图片
(6)更改开机启动方式,重启问题就解决了

2.2 文件引导阶段

1、引导文件grub.cfg丢失

模拟问题: rm -fr /boot/grub2/grub.cfg
在这里插入图片描述

解决
未重启时,

Linux的系统排错_第12张图片
重启 时:
(1)以磁盘方式开启虚拟机,此时,系统会停在这里,因为丢失了引导文件,说以我们可以手动引导
Linux的系统排错_第13张图片
(2)grub > set root=‘hd0,msdos1’ 此位置是不固定的,位置指定/boot所在分区
(3)grub > linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1 #跟分区的设备名称
(4)grub > initrd16 /initramfs-3.10.0-123.el7.x86_64.img
(5)boot

Linux的系统排错_第14张图片

(6)以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行: grub2-mkconfig > /boot/grub2/grub.cfg

Linux的系统排错_第15张图片

2、 内核文件丢失问题

模拟问题: rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64

Linux的系统排错_第16张图片
解决
(1)以光驱启动,进入rescus挽救模式
(2)chroot /mnt/sysimage 进入/dev/vda1挂载点
(3)mkdir /rhel7 (建立光盘挂载点)
(4)mount /dev/sr0 /rhel7 将光盘挂载在此目录
(5)cd /rhel7/Packages 到达镜像的包下

在这里插入图片描述
(6)cp kernel-3.10.0-123.el7.x86_64.rmp /mnt 我们将安装包复制在/mnt下
(7)cd /mnt 在mnt目录 rpm2cpio kernel-3.10.0-123.el7.x86_64.rmp|cpio -id 然后将包安装解压,我们解压出boot etc lib 与内核安装包
(9)cd /mnt/boot 在 /mnt/boot 下 cp vmlinuz-3.10.0-123.el7.x86_64 /boot 将/mnt/boot中的内核复制到/boot中
(11)exit最后退出挂载点,exit最后退出

Linux的系统排错_第17张图片

3、 初始化镜像文件丢失

模拟问题:rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
Linux的系统排错_第18张图片

当系统没有重启
==mkinitrd /boot/initramfs-$(uname).img (uname).img ==

Linux的系统排错_第19张图片
当系统** 重启**
(1)进入挽救模式
(2)chroot /mnt/sysimage
(3)mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

Linux的系统排错_第20张图片

4、/boot分区被删除

(1)以光驱启动虚拟机,进入到挽救模式
(2)chroot /mnt/sysimage
(3)mkdir /boot
(4)grub2-install /dev/vda 安装主引导记录mbr
(5)mount /dev/sr0 /mnt
(6)rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force 安装内核文件
(7)grub2-mkconifg > /boot/grub2/grub.cfg

2.3 系统开机启动级别被人恶意篡改

  • 查看开机启动级别:cd /etc/systemd/system/multi-user.target.wants/

Linux的系统排错_第21张图片

**模拟问题:systemctl set-default reboot.target**开机后会不停重启
解决:
(1)开机按上下键停止读秒
(2)按“e”进入编辑模式

Linux的系统排错_第22张图片
(3)选择内核启动行
linux16 /vmlinuz-xxxx ro xxxx 改为 linux16 /vmlinuz-xxxx rw rd.break
(4)ctrl+x

Linux的系统排错_第23张图片

Linux的系统排错_第24张图片(5)chroot /sysroot
(6)rm -fr /etc/systemd/system/default.target
(7)ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
(8)exit*2

在这里插入图片描述

Linux的系统排错_第25张图片

2.4 忘记root用户密码

(1)开机按上下键停止读秒
(2)按“e”进入编辑模式
(3)选择内核启动行
linux16 /vmlinuz-xxxx ro xxxx 改为 linux16 /vmlinuz-xxxx rw rd.break
(4)ctrl+x
(5)chroot /sysroot
(6)passwd 来修改用户密码,设置密码为redhat,再次输入密码redhat,即可更改root用户密码
(7)touch /.autorelabel 让selinux生效,即可重新开启虚拟机。

你可能感兴趣的:(Linux)