linux系统启动流程,linux系统启动不了,启动出错怎么办?不小心把boot分区删了怎么办?

您所在的位置:网站首页 不能删除分区怎么办 linux系统启动流程,linux系统启动不了,启动出错怎么办?不小心把boot分区删了怎么办?

linux系统启动流程,linux系统启动不了,启动出错怎么办?不小心把boot分区删了怎么办?

2024-06-01 13:11| 来源: 网络整理| 查看: 265

linux系统启动出错 linux系统启动流程启动问题以及解决方法第一种情况:磁盘引导数据丢失(即mbr数据丢失)第二种情况:grub2引导文件grub.cfg丢失第三种情况:开机时显示的标题文件丢失第四种情况:内核文件丢失第五种情况:系统初始化镜像丢失第六种情况:!!!一不小心把/boot分区删了

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数据丢失)

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

解决方法:

数据丢后未重启 执行命令grub2-install /dev/vda恢复,显示No error reported就是恢复成功! 在这里插入图片描述

数据丢后已重启 第一步:关机 第二步:在虚拟化管理工具里为该有问题主机添加光盘(真实主机环境是linux,如果是VM的虚拟机,请看第三步操作,剩下的都一样) ##没有这个工具的可以参照我之前的文章:虚拟化管理 在这里插入图片描述 按下图选择: 在这里插入图片描述 第三步:换下开机顺序(通过光盘镜像恢复系统)换完后记得点apply让设置生效 在这里插入图片描述

VM虚拟机下从光驱启动方法: 右键进入设置 在这里插入图片描述 进行如图设置,使用装系统时的镜像就可以 在这里插入图片描述 然后开机,迅速的按ESC键,这时会出现启动项选择界面,我们再选择CD-ROM启动就可以了 在这里插入图片描述 启动后就可以看到ISO光盘启动菜单了。 在这里插入图片描述

第四步:重启,并选择进入挽救模式 在这里插入图片描述 在这里插入图片描述 第五步:挂载并得到一个shell,出现如图所示内容意思即为把已经装好的linux系统挂载到mnt下的sysimage目录下,我们选1继续即可 在这里插入图片描述 出现下图则挂载成功,按回车键继续得到一个shell 在这里插入图片描述 第六步:执行chroot /mnt/sysimage/得到真实的系统 在这里插入图片描述 第七步:执行grub2-install /dev/vda恢复磁盘引导文件,如图提示则恢复成功! 在这里插入图片描述 第八步(选做):编辑文件vim /etc/selinux/config将selinux关闭,selinux的初始化速度比较慢,将其关闭启动会快一点 在这里插入图片描述 更改完后保存退出 在这里插入图片描述 第九步:输入两次exit重启 在这里插入图片描述 第十步:关机,将启动顺序调回来 在这里插入图片描述 再开机,正常开机!恢复完成!

第二种情况:grub2引导文件grub.cfg丢失

开机后显示的画面如下: ##系统不知道开机后下一步该做什么 ##开机启动会去读/boot/grub2/grub.cfg文件,而/boot/grub2/grub.cfg文件会告诉我们下一个文件要读什么 在这里插入图片描述 模拟该问题: 删除/boot/grub2/grub.cfg文件:rm -fr /boot/grub2/grub.cfg 在这里插入图片描述 解决方法:

数据丢后未重启 执行命令grub2-mkconfig > /boot/grub2/grub.cfg恢复,显示如图内容就是恢复成功! 在这里插入图片描述数据丢后已重启 第一步:指定要读取的文件在哪个磁盘 指定第一个硬盘的第一个分区 set root='hd0,msdos1' ##需要另打开一个虚拟机查看下/boot分区在哪,/boot分区一般是在第一个硬盘的第一个分区 在这里插入图片描述 第二步:启动内核(启动内核参数是linux16) 执行linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/nvme0n1p3,挂载根目录 ##需要另打开一个虚拟机查看下/分区在哪,/分区一般是在第一个硬盘的第三个分区 在这里插入图片描述 第三步:加载系统初始化镜像 执行initrd16 /initramfs-4.18.0-193.el8.x86_64.img 第四步:重启,执行boot 在这里插入图片描述 ##如果出现out of memory的情况是写了太多内存满了,重新启动再敲一遍即可 第五步:开机后恢复文件 执行grub2-mkconfig > /boot/grub2/grub.cfg恢复文件,否则下次开机还需要手动引导 在这里插入图片描述 恢复成功! 第三种情况:开机时显示的标题文件丢失

开机时显示的标题指的是下图内容: 在这里插入图片描述 该标题文件位置在/boot/loader/entries/xxxxxxxxx.conf,在开机启动时由/boot/grub2/grub.cfg文件告诉我们下一个要读的文件是/boot/loader/entries/xxxxxxxxx.conf。 在这里插入图片描述 开机后显示的画面如下: ##和第二种情况一样 在这里插入图片描述 模拟该问题: 删除/boot/loader/entries/xxxxxxxxx.conf文件,如下图 在这里插入图片描述 解决方法:

数据丢后未重启 第一步:find / -name bls.conf,找bls.conf这个文件在哪儿 在这里插入图片描述 第二步:把文件拷贝到/boot下 cp /usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf /boot/bls.conf 在这里插入图片描述 第三步:恢复

kernel-install add 内核版本号 内核镜像 kernel-install add $(uname -r) /boot/vmlinuz-$(uname -r) ##uname -r意思是查看内核版本号 ##$()意思是先执行括号里的命令,再执行括号外的命令

如图即使是恢复成功!在这里插入图片描述

数据丢后已重启 第一步~第四步和第二种情况重启后的步骤一样! 之后执行前面数据丢后未重启的步骤即可恢复成功!

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

开机后显示的画面如下: 在这里插入图片描述

模拟该问题: 进入/boot/下可以看到如图文件,其中包括内核文件 在这里插入图片描述 我们将其删除,模拟内核文件丢失情况 在这里插入图片描述 解决方法:

数据丢后未重启 执行cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r) ##在/usr/lib/modules/$(uname -r)/vmlinuz下还有该文件vmlinuz,将其复制到boot下 在这里插入图片描述 恢复成功! 在这里插入图片描述数据丢后已重启 第一步~第六步和第一种情况重启后的步骤一样! 第七步:执行cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r),恢复成功! 在这里插入图片描述然后做第一种情况重启后的第九步和第十步,解决成功! 第五种情况:系统初始化镜像丢失

开机后显示的画面如下: 在这里插入图片描述

模拟该问题: 进入/boot/下可以看到如图文件,其中包括系统初始化镜像 在这里插入图片描述 我们将其删除,模拟系统初始化镜像丢失情况 在这里插入图片描述 解决方法:

数据丢后未重启 执行mkinitrd /boot/initramfs-$(uname -r).img $(uname -r),恢复成功! 在这里插入图片描述数据丢后已重启 第一步~第六步和第一种情况重启后的步骤一样! 第七步:执行mkinitrd /boot/initramfs-$(uname -r).img $(uname -r),恢复成功! 在这里插入图片描述 然后做第一种情况重启后的第九步和第十步,解决成功! 第六种情况:!!!一不小心把/boot分区删了

开机后显示的画面如下:

模拟该问题: 删除/boot分区,rm -fr /boot/* 在这里插入图片描述 解决方法: ##注意该方法只有boot分区都删了的情况下才可以用,如果是有的文件有,有的没有那么会重复加载,可能会出现问题,比如标题出现无数多个 第一步~第六步和第一种情况重启后的步骤一样! 第七步:进入/boot目录下安装grub2,grub2-install /dev/vda ##安好后有了grub2目录 在这里插入图片描述 第八步:挂载光驱,为了读取光驱里的资源,mount /dev/cdrom /mnt/ 在这里插入图片描述 进入挂载目录重新下载内核文件 在这里插入图片描述 查看/boot/分区下的内容,已恢复 在这里插入图片描述 第九步~第十步和第一种情况重启后的步骤一样! ##VM虚拟机没有这两步 然后出现如下界面: 在这里插入图片描述 是需要修复引导,执行第二种情况重启后的步骤即可恢复成功!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3