linux系统引导修复方案

1.系统引导过程概述(图形比文字描述更直观)

在这里插入图片描述

2.什么是bios?

BIOS是电脑的基本输入输出系统,在计算机系统中起着重要作用
BIOS是连接电脑硬件和软件的枢纽,也可以说它是一款转换器
从功能上看,BIOS分为三个部分: 自检及初始化程序;硬件中断处理;程序服务请求

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

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

(1)fdisk -l 查看磁盘的目录(看*号在哪里)我的启动分区所在硬盘是 /dev/vda
在这里插入图片描述
(2)模拟问题:dd if=/dev/zero of=/dev/vda bs=446 count=1 破坏磁盘引导
在这里插入图片描述
(3)将selinux改为disable并且 reboot
(4)此时采用磁盘方式打开虚拟机打不开,正在找硬件在这里插入图片描述
(5)此时关闭虚拟机,采用光驱方式启动,进入虚拟控制台
在这里插入图片描述
(6)分别选Troubleshooting第三个和第二个

在这里插入图片描述
在这里插入图片描述(7)输入1,回车得到一个shell

chroot  /mnt/sysimage/
df  查看boot启动向在那个磁盘
grub2-install /dev/vda

在这里插入图片描述
(8)输入两次exit,关机
(9)更改从硬盘启动
在这里插入图片描述
(10)重启就好了

4.系统引导文件丢失的解决方案

(1)模拟问题: rm -fr /boot/grub2/grub.cfg,并且reboot

发现虚拟机出现如下错误
在这里插入图片描述
解决方法:

在此界面输入:set root="hd0,msdos1"
linux16  /vmlinuz-3.10.0-123.el17.x86_64 ro root=/dev/vda1  #根分区的设备名称
initrd16  /initramfs-3.10.0-123.el.x86_64.img
boot  

若没有/boot分区,需输入以下命令

在此界面输入:set root="hd0,msdos1"
linux16  /boot/vmlinuz-3.10.0-123.el17.x86_64 ro root=/dev/vda1  #根分区的设备名称
initrd16  /boot/initramfs-3.10.0-123.el.x86_64.img
boot  

在这里插入图片描述#以上操作可以使系统正常启动,但是临时的,所以进入系统后还需执行:

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

5. 内核丢失的解决方案

(1)模拟问题:rm -rf /boot/vmlinuz-3.10.0-123.el7.x86_64
会出现如下问题:
在这里插入图片描述
(2)解决方法

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

在这里插入图片描述(3)输入1,按enter可以的得到一个shell
输入如下命令

chroot   /mnt/sysimage   
mount  /dev/cdrom/  /media   #挂载镜像
cd  /media/Packages
cp  kernel-3.10.0-123.el.x86_64.rpm  /mnt   #版本不同,内核不同,可用tab补全
cd /mnt
rpm2cpio kernel-3.10.-123.el7.x86_64.rpm  |cpio -id   #将rpm包拆开
cd boot
cp vmlinuz-3.10.0-123.el7.x86_64  /boot   #将丢失的内核文件复制到/boot目录
exit
exit

(4)关机修改为从硬盘启动,重就好了
在这里插入图片描述

6.系统初始化镜像丢失的修复方案

步骤一:模拟问题 rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img

cd /boot/
ls 查看初始化程序镜像文件
rm -rf /boot/initramfs-3.10.0-123.el7.x86_64.img 删除它
uname -r 查看内核版本号

当系统没有重启时:

输入如下命令
mkinitrd  /boot/initramfs-$(uname -r ).img  $(uname -r)

重启后会出现如下问题
在这里插入图片描述

解决方法:
(1)关机,选择从光驱启动
在这里插入图片描述(2)进入救援模式
在这里插入图片描述在这里插入图片描述
(3)按1继续,按enter得到一个shell
输入如下命令:

chroot   /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r ).img  $(uname -r)

在这里插入图片描述
(4)关机,选择从硬盘启动,开机就好了
在这里插入图片描述

7.系统启动级别的修复

模拟这个错误

systemctl set-default reboot.target

此时输入reboot重启虚拟机,发现虚拟机永远处于重启模式

开机按上下键停止读秒
按“E”进入编辑模式

在这里插入图片描述

选择内核启动行(hang)
linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxxxx   
手动输入级别5,ctrl+x退出,启动系统

在这里插入图片描述
然后回到图形界面将启动级别改回来

systemctl set-default graphical.target

恢复成功

8.root密码忘了咋办?
步骤一:重启主机的时候按下e进入编辑模式

步骤二:删除到ro,改为rw rd.break,ctrl+x退出
在这里插入图片描述

步骤三:输入

chroot /sysroot/ 
echo westos | passwd --stdin root   #修改密码为westos
touch /.autorelabel   #重新初始化selinux,当selinux未开启时不需要操作
exit
exit

在这里插入图片描述
修改成功!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值