事件概述
我在电脑上使用安装ubuntu时默认使用的grub2 (2.02)来管理双系统的启动,我只有一块nvme的固态盘,磁盘做的是gpt分区,两个系统分别是Windows 10和Ubuntu18.04,两个系统启动应该都是用的uefi引导(上述的一些东西我也不是很了解,姑且记之)。
一次,当我在ubuntu中执行一个比较大的任务时,系统崩掉了,除了鼠标之外什么都动不了,我遂长按开机键来关机,关机后再次启动,我已经见不到grub2正常的引导页面了(就是那个可以选择是进入windows还是ubuntu的界面),而是看到了一个grub的命令行,也就是说,我现在啥系统都无法直接进了。
解决方案
直接先说我最终的解决办法吧。
先想办法启动ubuntu,做法是:
- set root=(hd0,gpt6) (在输到"("之后,按一下tab,我的能自动填充hd0,之后,再按一下tab键,可以显示出磁盘分区,在我的电脑上显示出了6个gpt分区,以及这些分区的基本信息,我判断出我的ubuntu应该是安装在gpt6的)
- linux /boot/vmlinuz-*****-generic root=UUID=****** (第一处靠tab补全,第二处填写在第一步中看到的ubuntu系统所在的磁盘分区的uuid)(需要记住这个uuid,记前几位即可,稍后还会用到)
- initrd /boot/initrd***** (还是按tab补全)
- boot
成功启动后需要修复grub2
- sudo update-grub
- sudo grub-install /dev/disk/by-uuid/***** (此处填写在之前记下来的安装了ubuntu的gpt分区的uuid的前几位,按tab补全)(如果安装正常的话,应该会显示“安装完成,没有报告错误”)
这样便算是成功恢复了,看起来还挺顺利,但实际从头开始摸索的时候远远没有这么简单,下边,我简单地记录一些我踩过的坑。
踩坑记录
和解决很多其他的问题一样,我在处理这个问题的过程中也走了不少的弯路,其中有很多是我到现在也搞不明白的,我将其记录在这里,说不定还能用上。