19. Linux系统排错

Lesson19 Linux系统排错

1. 系统引导过程概述

在这里插入图片描述

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

在实验前将自己的server虚拟机reset,将selinux关闭,并且在虚拟控台中给server虚拟机加入光驱

3.2 当grub磁盘引导阶段出现问题应该怎样解决

fdisk -l查看磁盘的目录(看*号在哪里, 哪里就是启动分区所在位置)

在这里插入图片描述
可以看到,我的启动分区所在硬盘是 /dev/vda
模拟问题:dd if=/dev/zero of=/dev/vda bs=446 count=1 破坏磁盘引导,mbr主引导机构丢失
在这里插入图片描述
将selinux改为disable并且 reboot
在这里插入图片描述

此时采用磁盘方式打开虚拟机打不开,显示正在寻找硬件
在这里插入图片描述

关闭虚拟机,采用光驱方式启动,进入虚拟控制台
在这里插入图片描述
分别选TroubleshootingRescue a Red Hat Enterprise Linux System,进入援救模式

在这里插入图片描述

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

df查看
在这里插入图片描述

chroot /mnt/sysimages/ 回车
grub2-install /dev/vda
在这里插入图片描述

在这里插入图片描述

输入两次exit,退出关闭虚拟机,以磁盘方式再次开启虚拟机,就可以看到能够正常打开虚拟机图形化界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 系统启动阶段的引导文件丢失应该怎样解决

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

注:当系统没有重新启动时,直接输入grub2-mkconfig > /boot/grub2/grub.cfg可以恢复
当系统重启后,reboot
在这里插入图片描述
在这里插入图片描述

可以看到,虚拟机重启错误,找不到引导文件

关闭虚拟机,采用光驱方式启动,进入虚拟控制台
在这里插入图片描述
再次进入救援模式
在这里插入图片描述
在这里插入图片描述

df查看
在这里插入图片描述
chroot /mnt/sysimages/ 回车
在这里插入图片描述
grub2-install /dev/vda
在这里插入图片描述
以磁盘方式开启虚拟机,输入set root='hd0,msdos1'
在这里插入图片描述
输入linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1(根分区的设备名称,用df查看)
在这里插入图片描述
initrd16 /initramfs-3.10.0-123.el7.x86_64.img
在这里插入图片描述
boot
进入图形界面后:grub2-mkconfig > /boot/grub2/grub.cfg
在这里插入图片描述

当系统被重新启动 grub > set root=‘hd0,msdos1’ ##此位置是不固定的,位置指定/boot所在分区
grub > linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1 #根分区的设备名称
grub > initrd16 /initramfs-3.10.0-123.el7.x86_64.img
grub > boot 以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行: grub2-mkconfig > /boot/grub2/grub.cfg

3.4 系统内核镜像文件丢失应该怎样解决

模拟问题:rm -rf /boot/vmlinuz-3.10.0-123.el7.x86_64
在这里插入图片描述
在这里插入图片描述
可以看到,/boot下的系统内核镜像文件不存在了
在这里插入图片描述
重启之后可以看到不能进入系统

进入到救援模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

chroot /mnt/sysimage
在这里插入图片描述
mkdir /rhel7

在这里插入图片描述
mount /dev/cdrom /rhel7
在这里插入图片描述

cd /rhel7/Packages
在这里插入图片描述
cp kernel-3.10.0-123.el7.x86_64.rpm /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
在这里插入图片描述
exit
exit
在这里插入图片描述
以硬盘方式启动,看是否可以正常启动
在这里插入图片描述
在这里插入图片描述

3.5 系统初始化程序镜像文件丢失应该怎样恢复

模拟问题 rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
在这里插入图片描述
如果没有重启系统直接利用 mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)恢复镜像文件
在这里插入图片描述
恢复之后查看可以看到系统初始化程序镜像文件
在这里插入图片描述
如果删除之后reboot了的恢复方法
在这里插入图片描述
在这里插入图片描述
可以看到,无法重启,报错为无法找到系统初始化程序镜像文件
进入救援模式:关闭虚拟机,以光驱方式开启虚拟机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输入chroot /mnt/sysimages
在这里插入图片描述

输入mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
在这里插入图片描述
再次cd /boot/ ls查看
在这里插入图片描述
以硬盘方式启动看是否可以正常启动
在这里插入图片描述

在这里插入图片描述

3.6 系统开机启动级别被人恶意篡改,一直处于重启模式 ,怎样解决

模拟问题: systemctl set-default reboot.target
在这里插入图片描述
此时输入reboot重启虚拟机,发现虚拟机永远处于重启模式
在这里插入图片描述
在这里插入图片描述
开机按上下键停止读秒
在这里插入图片描述

按“e”进入编辑模式
在这里插入图片描述
选择内核启动行
linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxxxx ,删掉ro后边,改为rw rd.break
在这里插入图片描述
在这里插入图片描述
ctrl+x退出,启动系统
在这里插入图片描述
在这里插入图片描述
输入两次exit, 系统重新启动进入图形化界面

3.7 如何修改root密码

重启主机,开机按上下键停止读秒
按下e进入编辑模式
删除到ro,改为 rw rd.break,ctrl+x退出
输入chroot /sysroot/
在这里插入图片描述
echo westos | passwd --stdin root
在这里插入图片描述
touch /.autorelabel
在这里插入图片描述
在这里插入图片描述
两次退出,可以看到系统重新启动,root密码修改成功

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值