linux中丢失grub.cfg引导文件修复
一,linux中丢失grub.cfg引导文件修复
在Linux中不小心删除了grub文件,会导致系统起不来,那我们怎么解决这个问题呢?当然重装可以解决,但是就丢失了这么一个文件而重装系统未免有些小题大做了吧!下面有一个比较便捷的方法解决这个问题?
首先我们要知道系统在打开电源的那一刻,之后电脑都做了什么(即系统的启动流程)。
1.BIOS 初始化
2.启动加载器
3.内核初始化
4.init 启动
而grub或者是引导程序丢失,问题出现在BIOS的初始化阶段,下面以RedHat 7.0为列子来演示:
问题解决:
当系统没有重新启动时
1 | grub2-mkconfig > /boot/grub2/grub.cfg |
当系统重新启动后
1.丢失grub后再次启动系统时,系统会在grub那停住,如下:
执行如下的命令:
(1)set 查看环境变量,这里可以查看启动路径和分区。
(2)ls 查看设备
(3)insmod 加载模块
(4)root 指定用于启动系统的分区,在救援模式下设置grub启动分区
(5)prefix 设定grub启动路径
1 |
|
以上操作可以使系统正常启动,进入系统后还需要执行,才能生成新的引导文件,确保下次正常系统正常启动。
1 | cd /boot/grub2/ |
如果还有问题,那么要通过系统拯救来完成了,在进入grub界面后输入exit,进入系统安装菜单,选择Troubleshooting后在选择救援模式(rescue)按照提示来完成。挂载根后即(chroot /mnt/sysimage),执行grub2-mkconfig > /boot/grub2/grub.cfg 命令后exit即可。
二,关于error file: /boot/grub2/i386-pc/normal.mod not found. Grub Rescue的修复问题
有时候不小心把/boot/grub2/i386-pc/的文件删掉或者其他原因丢失了,重启或服务器突然关机后,会出现问题,
这时候只能通过进入系统救援模式来修复,以VMware虚拟机为例;
1、在VMware下首先确认是否挂载了需要的光盘映像,打开设置,按照下方图片进行设置。
2、然后选择’重新启动客户机’,在弹出的页面选择’确认重新启动’。
3、在VMware重启后,先将鼠标挪到开机界面上,按下鼠标左键点进去,然后快速按一下ESC键(只能按一次),
4、在VMware下按ESC可以临时把启动菜单调出来,然后选择用哪个设备来引导,这时我们选用的是光盘引导,即第三项’CD-ROM Drive’,回车。
5、到了下图界面,选择’Troubleshoooting’,回车。
6、这时终于看到’Rescue a CentOS Linux system’即救援模式,选择此项,回车.
7、接下来系统将试图查找根分区,出现如下图所示。因为要对系统进行修复,所以需要读写权限,一般选择默认选项’continue’,输入1,回车。
8、可以看到系统提示’your system has been mounted under /mnt/sysimage.’此时挂载成功。我们还可以选择执行’chroot /mnt/sysimage’命令,可以将根目录挂载到我们硬盘系统的根目录中去。此时我们不执行这条命令,按enter直接进入shell。
9、进入shell命令行,提示符为sh-4.2#
1 | ls /mnt/sysimage/ 显示挂载的目录为根目录的文件 |
命令后提示符为bash-4.2#
10,此时找到我们需要的文件ls /usr/lib/grub/,复制到/boot/grub2/目录下即可。复制完成后,就可以执行’exit’命令,退出光盘shell,接着系统将重启,耐心等待。输入两次exit,
1 | cp -a /usr/lib/grub/i386-pc /boot/grub2/i386-pc |
然后就修复了
- 本文标题:linux中丢失grub.cfg引导文件修复
- 本文作者:yichen
- 本文链接:https://yc6.cool/2020/08/03/linux中丢失grub.cfg引导文件修复/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
1.sed的常用命令的使用
2.linux根下目录文件介绍
3.vim的使用
4.linux系统管理
5.linux磁盘管理
6.磁盘命令lvm
7.linux软件管理
8.dnf包管理