和平常一样,在我结束使用Windows并点击更新并关机,在那一刻我只当这次windows更新是一次无足轻重的事情,不会对我的电脑造成什么影响。
但下一秒,我转到Linux系统,发现了一些不对劲的事情。
我在refind直接启动Linux,在最开始还一切正常,直到中间出现了一个90秒的等待:
90秒倒计时结束后,就无法启动至系统了:
Dependency failed for file system check
Dependency failed for local file system
然后系统进入了emergency状态,但是可以使用终端。
而且grub也进入了rescue界面,引导自然是有问题了。
我看了一下磁盘分区,发现Windows的10GB的Recovery分区与Linux系统的分区的顺序互换了。全靠windows在我的电脑里驰骋。
修复Linux
看起来是某个分区出现了问题。
我简直一头雾水。
这个被一直执行某个任务的E4F3的分区我查了下是不存在的。然后看了看fstab,发现这个E4F3是要被挂载到/boot/efi的。看来这个分区本来应该是我的ESP,不知道Windows更新做了什么事情让ESP的UUID改变了。
之后我就直接用device path而不是UUID了。
修复Grub
看起来grub.cfg中也是用UUID来定位ESP的,所以这次就出现了问题。
使用两行命令重装一下就能修好。(但是grub会被添加到uefi boot的第一顺序)
$ sudo grub-install
$ sudo grub-mkconfig -p /boot/grub/grub.cfg
再用efibootmgr更改一下启动顺序(我是用refind的)
$ sudo efibootmgr -o 0001,0002,0003...