Linux系统下出现grub error: unknown filesystem的解决办法
问题:在今天进行 Windows11 的更新过程中,某一次重启过后出现了类似如下的界面:
grub error: unknown filesystem
>grub rescue:_
(大概是这样)
- 说实话很吓人。但是有可能是因为Windows 11更新的过程中有把系统引导指示向错误磁盘分区的行为(个人猜想,不一定对)。
- 微软我日你大爷!!
- 具体的解决方法比较简单,但是需要注意的是grub对命令的格式要求比较严格,如果出现
unknowm command
等类似的错误,就需要删掉多余的空格之类的,再试一次 - 如果按照我的方法实在不能解决,那你就需要准备一个你的Linux发行版对应的便携版本或者直接上winpe。
- 你应当注意到,你的BIOS仍然可用。如果是双系统的话,可以尝试进入你的windows系统然后导出你在Linux系统下的文件备份,然后重装。
- 下面是正经的解决方法:
- 使用
ls
命令来查看目前系统的分区,输入后会显示目前已经挂载的所有分区。以我为例,会显示类似(hd1, gpt1),(hd1, gpt2),(hd1)
等可用分区。不同的电脑显示的形式应该是不一样的,没事,类比处理下去就好。 - 然后使用
ls(hd1,gpt1)
等类似的命令,把括号里面的内容一个一个替换进去。其他的分区进行此命令,应该都会提示unknown filesystem
。没事,那些不是我们要找的分区。 - 挨个尝试,直到找到一个返回类似于
filesystem=XXX
的分区,那就是找到了正确的分区。这个分区应该就是你安装Linux时选择的root
分区。 - 假设你找到的正确分区是
hd0, gpt1
,执行以下命令:
set root=hd0,gpt1
set prefix=(hd0,gpt1)/boot/grub
- 上面的两个命令执行后应该是没有返回的。然后执行以下命令:
insmod normal
normal
回车之后,就能看到你熟悉的grub界面了。
- 进入你的发行版,使用终端,然后执行以下命令:
sudo update-grub
sudo grub-install /dev/sda
问题应该就解决了。