GRUB修复记录

摘要:
集合,ls,insmod,根,前缀:;正常后,您将看到熟悉的启动菜单栏。

很多时候,特别是在linux调整分区后,开机重启时会出现:

error : unknow filesystem
grub rescue>

这表示你的grub2的配置文件出错了。
由于分区调整或分区UUID改变造成grub2不能正常启动,从而进入修复模式了(grub rescue),也称救援模式。
在救援模式下只有很少的命令可以用:set 、ls 、 insmod 、 root 、 prefix:
(1)set 查看环境变量,这里可以查看启动路径和分区。
(2)ls 查看设备
(3)insmod 加载模块
(4)root 指定用于启动系统的分区,在救援模式下设置grub启动分区
(5)prefix 设定grub启动路径

具体修复步骤如下:
1、查看分区:

grub rescue> ls

会出现如下字样:

(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)

注:上面是我的分区设备,每个人可能不一样,但原理都是一样的。
2、寻找Linux所在分区,就是寻找你的Linux系统是装在以上哪个分区里:
grub rescue> ls (hd0,msdos1)/
若出现unknown filesystem字样,则尝试下一个,若出现的是你的Linux主文件夹下的文件夹和文件的名字,那就是的要找的分区了。
3、假如你找到的启动分区是hd0,msdos6,修改启动分区:

grub rescue>set root=(hd0,msdos6) //grub路径设置
grub rescue>set prefix=(hd0,msdos6)/grub2
grub rescue>insmod normal //启动normal启动
grub rescue>normal

之后你就会看到熟悉的启动菜单栏了,如果可以直接运行linux,则直接看第5步。
4、 进入命令行启动linux
进入系统启动选项界面后还是进不去,因为你还没有真正的修改grub,这个要到Linux里修改进入系统启动项界面后,按C进入命令行模式

grub >set root=hd0,msdos8
grub >set prefix=(hd0,msdos8)/boot/grub
grub >linux /vmlinuz-xxx-xxx root=/dev/sda8 //里边的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=off
grub >initrd /initrd.img-xxx-xxx
grub >boot

这样就可以进入了
5、正常进入系统后,如果不先修复grub的引导的话,重启电脑之后还是会进入刚刚那个rescue模式。
首先重建/boot/grub2/grub.config文件。
如果是Ubuntu直接在终端里运行:

sudo update-grub

如果是其他的Linux发行版,执行sudo update-grub命令时候提示找不到该命令的话可以用下边命令来代替:

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

6、安装grub到分区,首先运行df命令:

df

文件系统 1K-块 已用 可用 已用% 挂载点


devtmpfs 1725688 0 1725688 0% /dev
tmpfs 1740456 0 1740456 0% /dev/shm
tmpfs 1740456 1924 1738532 1% /run
tmpfs 1740456 0 1740456 0% /sys/fs/cgroup
/dev/mapper/fedora-root 32878296 7421308 23757148 24% /
tmpfs 1740456 148 1740308 1% /tmp
/dev/mapper/fedora-home 16113532 306980 14968308 3% /home
/dev/sda6 999320 155568 774940 17% /boot
tmpfs 348088 16 348072 1% /run/user/42
tmpfs 348088 5788 342300 2% /run/user/1000


可看出挂载点是 /dev/sda,sda的含义是指的你的第几个磁盘a代表第一块sdb表示第二块而sda1代表第一块磁盘的第二分区。你可以用ls /dev/sd*   查看你的磁盘情况。
再运行:

sudo grub2-install /dev/sda


出现

Installation finished. No error reported.

即表示完成修复。

 将windows设为默认启动项

grub2-set-default "Windows Boot Manager (on /dev/sda1)"

参考资料:

http://blog.chinaunix.net/uid-27037833-id-3235145.html

https://www.cnblogs.com/keitsi/p/6229005.html

https://blog.csdn.net/peerless1994/article/details/52226169

http://www.cnblogs.com/saptechnique/archive/2012/04/05/2433643.html

http://www.jinbuguo.com/linux/grub.cfg.html

http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE

特别感谢:

LunarShaddow 对本文中实际操作部分的指导!

免责声明:文章转载自《GRUB修复记录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centos8部署redis5.0.7集群高效Redis工具类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

基于Qt5 跨平台应用开发

1.Qt简介 2.Qt 编程关键技术 2.1 信号与槽 2.2 Qt事件处理 3.Qt开发与实例分析 3.1 开发环境 3.2 系统实现基本框架 3.3 数据库管理 3.5 对Excel进行操作 4.系统的打包和测试 4.1 Mac系统上打包Qt 4.2 Windows系统上打包Qt。 4.3 发布软件测试 5.Qt开发常见问题 5...

vmware 安装 kali linux 系统到U盘 启动错误(initramfs:) 修复方法

This article was adapted from https://www.cnblogs.com/xuandi/p/6746880.html 安装kalilinux到U盘 启动之后出现这个错误: 这是grub路径不对。 解决办法: 在这模式下可以输入命令:blkid 查看所列举出的磁盘 找到你的U盘系统 TYPE="ext4"的区 记下  /d...

使用U盘安装mint

系统坏了,重新装的时候,硬盘甚至都没法格式化。。。所以,狠狠心买了块固态硬盘,123G,威刚。 想自己装Linux系统,这样用起来更方便一点,不用装虚拟机,然后再跑linux什么的。最后选了mint。 好嘛,问题来了,怎么装上去? 其实,找张空盘,把系统刻上去,这可能是最省力的方法了。但是,问题是另一台笔记本没有光驱。so。。。只能考虑u盘。 最初,是想尝...

凤凰架构-读书笔记

自复制机恰好就是一个最好的用不可靠部件构造的可靠的系统例子。这里,“不可靠部件”可以理解为构成生命的大量细胞、甚至是分子。由于热力学扰动、生物复制差错等因素干扰,这些分子本身并不可靠。但是生命系统之所以可靠的本质,恰是因为它可以使用不可靠的部件来完成遗传迭代。这其中的关键点便是承认细胞等这些零部件可能会出错,某个具体的零部件可能会崩溃消亡,但在存续生命的微...

局域网中Ubuntu和Windows进行文件夹共享

http://www.linuxeden.com/html/netadmin/20071106/37043.html 首先安装Samba:   sudo apt-get install samba   一、在ubuntu下查看局域网中windows系统共享的文件夹:   在“位置”--“网络”--“Windows 网络”中就能看到其它的windows主机和...

Windows Embedded CE 6.0开发环境的搭建 .

   最近要做一个Windows CE系统上的串行通讯程序,因为在此之前并没有接触过有关Windows嵌入式方面的应用开发,所以搭建开发环境成了摆在面前的第一道难题。本文将记录并总结我搭建Windows Embedded CE 6.0开发环境的步骤和过程中碰到的问题,希望给同为Windows嵌入式开发初学者的朋友们提供一个参考。       我最终确定的开...