linux系统启动流程,linux系统启动不了,启动出错怎么办?

linux系统启动出错

    • linux系统启动流程
    • 启动问题以及解决方法
      • 第一种情况:磁盘引导数据丢了(即mbr数据丢失)
      • 第二种情况:内核文件丢失
      • 第三种情况:系统初始化镜像丢失

linux系统启动流程

1. 通电
2. bios初始化					对硬件检测、初始化硬件时钟	
3. 磁盘引导						找到启动分区,识别启动文件
##在0磁道1扇区有个mbr主引导记录程序(大小446字节),mbr作用:记录grub2引导文件的位置(告诉磁头下一步往哪儿走),当mbr数据丢失系统会因为找不到启动分区而停止启动
4. grub2文件引导					启动需要获取什么文件
##会读取5内核和6系统初始化镜像
5. 内核加载						/boot/vmlinuz-$(uname -r),系统初始化硬件设备只读挂在/设备
6. 加载系统初始化镜像				/boot/initramfs-4.18.0-80.el8.x86_64.img,加载系统时钟、selinux、系统主机信息、/etc/fstab文件中磁盘挂载策略、磁盘配额,初始化系统程序开启开机启动服务,开启虚拟控制台,开启图形

启动问题以及解决方法

如果是在启动流程的1、2步出问题了,那么是硬件的问题,需要找专业的人来修~

第一种情况:磁盘引导数据丢了(即mbr数据丢失)

开机后显示的画面如下:
linux系统启动流程,linux系统启动不了,启动出错怎么办?_第1张图片
模拟该问题:
fdisk -l 查看启动硬盘
linux系统启动流程,linux系统启动不了,启动出错怎么办?_第2张图片
执行命令dd if=/dev/zero of=/dev/vda bs=446 count=1
##该命令意思是从无限空设备里复制数据到启动硬盘(其实就是把启动数据覆盖掉),一共覆盖446字节,只覆盖一块
##注意大小一定是446!!!
在这里插入图片描述

解决方法:

  1. 数据丢后未重启
    执行命令grub2-install /dev/vda恢复,显示No error reported就是恢复成功!
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第3张图片

  2. 数据丢后已重启
    第一步:关机
    第二步:在虚拟化管理工具里为该有问题主机添加光盘
    ##没有这个工具的可以参照我之前的文章:虚拟化管理
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第4张图片
    按下图选择:
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第5张图片
    第三步:换下开机顺序(通过光盘镜像恢复系统)换完后记得点apply让设置生效
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第6张图片
    第四步:重启,并选择进入挽救模式
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第7张图片
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第8张图片
    第五步:挂载并得到一个shell,出现如图所示内容意思即为把已经装好的linux系统挂载到mnt下的sysimage目录下,我们选1继续即可
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第9张图片
    出现下图则挂载成功,按回车键继续得到一个shell
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第10张图片
    第六步:执行chroot /mnt/sysimage/得到真实的系统
    在这里插入图片描述
    第七步:执行grub2-install /dev/vda恢复磁盘引导文件,如图提示则恢复成功!
    在这里插入图片描述
    第八步(选做):编辑文件vim /etc/selinux/config将selinux关闭,selinux的初始化速度比较慢,将其关闭启动会快一点
    在这里插入图片描述
    更改完后保存退出
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第11张图片
    第九步:输入两次exit重启
    在这里插入图片描述
    第十步:关机,将启动顺序调回来
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第12张图片
    再开机,正常开机!恢复完成!

第二种情况:内核文件丢失

开机后显示的画面如下:
linux系统启动流程,linux系统启动不了,启动出错怎么办?_第13张图片

模拟该问题:
进入/boot/下可以看到如图文件,其中包括内核文件
linux系统启动流程,linux系统启动不了,启动出错怎么办?_第14张图片
我们将其删除,模拟内核文件丢失情况
linux系统启动流程,linux系统启动不了,启动出错怎么办?_第15张图片
解决方法:

  1. 数据丢后未重启
    执行cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)
    ##在/usr/lib/modules/$(uname -r)/vmlinuz下还有该文件vmlinuz,将其复制到boot下
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第16张图片
    恢复成功!
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第17张图片
  2. 数据丢后已重启
    第一步~第六步和第一种情况重启后的步骤一样!
    第七步:执行cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r),恢复成功!
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第18张图片然后做第一种情况重启后的第九步和第十步,解决成功!

第三种情况:系统初始化镜像丢失

开机后显示的画面如下:
linux系统启动流程,linux系统启动不了,启动出错怎么办?_第19张图片

模拟该问题:
进入/boot/下可以看到如图文件,其中包括系统初始化镜像
linux系统启动流程,linux系统启动不了,启动出错怎么办?_第20张图片
我们将其删除,模拟系统初始化镜像丢失情况
linux系统启动流程,linux系统启动不了,启动出错怎么办?_第21张图片
解决方法:

  1. 数据丢后未重启
    执行mkinitrd /boot/initramfs-$(uname -r).img $(uname -r),恢复成功!
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第22张图片
  2. 数据丢后已重启
    第一步~第六步和第一种情况重启后的步骤一样!
    第七步:执行mkinitrd /boot/initramfs-$(uname -r).img $(uname -r),恢复成功!
    linux系统启动流程,linux系统启动不了,启动出错怎么办?_第23张图片
    然后做第一种情况重启后的第九步和第十步,解决成功!

你可能感兴趣的:(linux,linux,内核)