Linux系统下出现grub error: unknown filesystem的解决办法


问题:在今天进行 Windows11 的更新过程中,某一次重启过后出现了类似如下的界面:

grub error: unknown filesystem
>grub rescue:_

(大概是这样)

  • 说实话很吓人。但是有可能是因为Windows 11更新的过程中有把系统引导指示向错误磁盘分区的行为(个人猜想,不一定对)。
  • 微软我日你大爷!!
  • 具体的解决方法比较简单,但是需要注意的是grub对命令的格式要求比较严格,如果出现unknowm command等类似的错误,就需要删掉多余的空格之类的,再试一次
  • 如果按照我的方法实在不能解决,那你就需要准备一个你的Linux发行版对应的便携版本或者直接上winpe。
  • 你应当注意到,你的BIOS仍然可用。如果是双系统的话,可以尝试进入你的windows系统然后导出你在Linux系统下的文件备份,然后重装。
  • 下面是正经的解决方法:

  1. 使用ls命令来查看目前系统的分区,输入后会显示目前已经挂载的所有分区。以我为例,会显示类似(hd1, gpt1),(hd1, gpt2),(hd1)等可用分区。不同的电脑显示的形式应该是不一样的,没事,类比处理下去就好。
  2. 然后使用ls(hd1,gpt1)类似的命令,把括号里面的内容一个一个替换进去。其他的分区进行此命令,应该都会提示unknown filesystem。没事,那些不是我们要找的分区。
  3. 挨个尝试,直到找到一个返回类似于filesystem=XXX的分区,那就是找到了正确的分区。这个分区应该就是你安装Linux时选择的root分区。
  4. 假设你找到的正确分区是hd0, gpt1,执行以下命令:
set root=hd0,gpt1
set prefix=(hd0,gpt1)/boot/grub
  1. 上面的两个命令执行后应该是没有返回的。然后执行以下命令:
insmod normal
normal

回车之后,就能看到你熟悉的grub界面了。

  1. 进入你的发行版,使用终端,然后执行以下命令:
sudo update-grub
sudo grub-install /dev/sda

问题应该就解决了。