Ubuntu开机出现grub指令,无法正常开机
问题
最近开机出现了如下的界面:
分析问题
- 首先看看
GNU GRUB
是什么东东?干什么用的?
GNU GRUB
是多重引导加载程序。通俗点说,它就是用来一个可以让你选择运行什么操作系统的程序。
在你开机的时候,它是第一个运行的程序。它决定着,将计算机的控制权给哪个系统内核。然后系统内核将进一步初始化、处理操作系统的其他部分。 - 所以出现grub的原因,是因为
GNU GRUB
找不到引导文件,引导系统内核了。所以,要想解决这个问题,需要让GNU GRUB
找到相关的引导文件,进行正确的引导。
解决方案
首先吐槽下,找了中文解决方案,都不行。最后查了英文才找到解决方案。
- 首先,在
grub>
指令处,输入ls
指令。
这个指令能让你看到当前路径下的文件和文件夹。
使用这个指令,你可以类似这样的输出,(hd0)
、(hd0, msdos1)
类似的。
这些是磁盘的分区,我们需要在这些分区内找到能够正确引导系统的文件配置。 - 使用指令
ls (hd0)/
来一个个测试,看输出有没有vmlinuz
或者linux
,initrd.img
,root
这样的字样。
比如第一步出现(hd0)
,(hd0, msdos1)
,在这一步的时候,你需要使用ls (hd0)/
和ls (hd0, msdos1)/
来一个个去试,直至出现上文提示的那些字样,那个分区就是引导文件所在的地方。
如果ls (hd0, msdos1)/
出现unknown filestystem
,你可以尝试使用ls /(hd0, msdos1)/
,以此类推
ls (hd0, msdos1)/
可以简写为ls (hd0, 1)/
- 找到引导文件所在位置,比如在
(hd0,5)
。
输出以下指令
set root=(hd0,5)
set prefix=(hd0,5)/boot/grub
insmod normal
normal
这一步来设置引导文件的位置。
4. 如果还是不行,尝试以下指令
linux (hd0,5)/vmlinuz root=/dev/sda5
initrd (hd0,5)/initrd.img
boot
这里是让引导程序去引导。至此,应该可以正常开机了。
其他
开机后,下次开机也许还需要这样的操作。但我就没设置了,下次再说~
教程中的Costco,只给你各领域更好的教程,不再为挑选教程而闹心。
欢迎关注!!!