关于linux系统排错

1.系统引导过程

在这里插入图片描述

关于bios

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

2.grub磁盘引导阶段引导记录的恢复

  • fdisk -l #查看磁盘的目录
  • 模拟问题:dd if=/dev/zero of=/dev/vda bs=446 count=1 #(破坏磁盘引导)从设备截取446字节的空间,覆盖原有的主引导记录,使得磁盘引导阶段出现问题。

在这里插入图片描述

  • 重启后发现系统起不来:
    在这里插入图片描述
  • 关闭虚拟机,采用光驱方式启动,进入虚拟控制台
    在这里插入图片描述
  • 进入挽救模式,分别选第二个和第三个
    在这里插入图片描述
    在这里插入图片描述
  • 输入1,回车得到一个shell
    在这里插入图片描述
  • chroot /mnt/sysimage #改变程序执行时参考的根目录位置
    在这里插入图片描述
  • grub2-install /dev/vda #启动分区所在硬盘
    在这里插入图片描述
  • exit两次,关闭虚拟机
    在这里插入图片描述
  • 以磁盘方式开启虚拟机,就可以看到又恢复了
    在这里插入图片描述
    在这里插入图片描述

3.系统引导文件丢失的恢复

  • 模拟问题:rm -fr /boot/grub2/grub.cfg #删除引导文件

  • 当删除引导文件后未重启机器:

  • grub2-mkconfig > /boot/grub2/grub.cfg #重新生成引导文件

  • 当删除引导文件后了重启机器:

  • 启动时出现问题:
    在这里插入图片描述

  • 以磁盘方式开启虚拟机,输入set root='hd0,msdos1' #指定boot分区所在的设备
    在这里插入图片描述

  • linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/mapper/live-rw #根分区的设备名称,用df查看
    在这里插入图片描述

  • initrd16 /initramfs-3.10.0-123.el7.x86_64.img #指定镜像资源所在位置
    在这里插入图片描述

  • boot #启动
    在这里插入图片描述

  • 启动成功后重新生成引导文件grub2-mkconfig > /boot/grub2/grub.cfg

4. 系统内核文件丢失的恢复

  • 模拟问题:rm -rf /boot/vmlinuz-3.10.0-123.el7.x86_64 #删除内核文件
  • 重启后,找不到内核文件:
    在这里插入图片描述
  • 进入到挽救模式
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
mkdir /westos
mount /dev/cdrom /westos #挂载光驱到目录下
cd /westos
cd Packages/
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt/ #将内核文件复制到mnt目录
cd /mnt
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id #将软件包拆开,变成目录
cd /boot/
cp vmlinuz-3.10.0-123.el7.x86_64 /boot 将缺失的内核文件复制到原boot目录下
exit
exit

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

  • 硬盘启动
    在这里插入图片描述
  • 系统启动正常

在这里插入图片描述

5.系统初始化镜像文件丢失的恢复

  • 模拟问题:m -fr /boot/initramfs-3.10.0-123.el7.x86_64.img #删除系统初始化镜像文件
  • 该文件是通过命令生成的。删除后,可以通过命令恢复
  • 如果没有重启系统
  • mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) #$uname -r显示版本号,加了括号,表示括号内的内容先执行,恢复镜像文件
    在这里插入图片描述
  • 如果重启了系统
  • 切换到光驱启动进入到挽救模式
  • mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) #命令生成系统初始镜像文件
    在这里插入图片描述
  • 硬盘启动
    在这里插入图片描述
  • 系统启动正常

在这里插入图片描述

6.boot分区被删除后的恢复

  • 模拟问题:rm -rf /boot #删除boot分区
  • 进到挽救模式
  • chroot /mnt/sysimage/ #改变程序执行时参考的根目录位置
  • mkdir /boot #建立/boot目录
  • grub2-install /dev/vda #启动分区所在硬盘
  • mount /dev/cdrom /mnt #挂载光驱所在设备到/mnt下
  • rpm -ivh /mnt/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force #下载内核软件包
  • 系统启动后执行命令
  • grub2-mkconfig > /boot/grub2/grub.cfg #永久恢复引导文件

7.系统开机启动级别更改,一直处于重启模式的恢复

  • 模拟问题:
systemctl set-default reboot.target  #开机自动重启
ls -l default.target  #设置为一直重启模式
  • 开机按上下键停止读秒
  • 按“E”进入编辑模式
    在这里插入图片描述
  • 选择内核启动行(hang):linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxx, 手动输入级别5,ctrl+x退出,启动系统
    在这里插入图片描述
  • 回到图形界面将启动级别改回来
  • systemctl set-default graphical.target #重新设定启动

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

8.忘记root用户的密码的恢复

  • 开机按上下键停止读秒

  • 按“E”进入编辑模式

  • 选择内核启动行:linux16 /vmlinuz-xxxx ro xxxx 修改为:ro ——> rw rd.break #改为读写,并在内核启动完成后终止系统初始化程序的执行
    在这里插入图片描述

  • chroot /sysroot #开启shell

  • echo westos | passwd --stdin root #永久修改root用户密码

  • touch /.autorelabel #重新初始化selinux,当selinux未开启时不需要操作
    在这里插入图片描述

  • 成功登录:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值