起
最近win11不是出来了吗。(着急修复的可以直接跳到最后一步)
于是我就突发奇想给我半年没进去的windows升个级........
于是我找到了我win11的升级包(从我一个同学哪儿)
工具都集齐了,说干就干,然后就给它挂后台升级去。
然后今天早上果不其然,它在更新过程中的重启进入了我的linux(默认启动项),不过也更新的差不多了
重启选择windows 接着更。
然后有意思的就来了
先看一下我遭遇了什么
承
我先来大概解释一下为什么会这样。
在以上界面输入命令ls可以看到:
好吧我忘截图了
输出是 (hd0),(hd0,gpt7),(hd0,gpt6),(hd0,gpt5),(hd0,gpt4).......
意思大概是列出当前系统的分区情况(我的有7个)。
格式是这样的,内容可能因电脑而异。
grub的启动会找到原先设置好的启动位置:如图
我的原先在(hd0,gpt5)里面
这是它原有的配置
然后重点来了
win10更新win11的时候(似乎)会多建立一个分区,新建的分区会直接插在windows系统的旁边
我的分区结构是windows在前,所以它插入一个分区会把后面的分区忘后挤一个
与是grub文件被挤到了sda6哪里去了(也就是(hd0,gpt6)这个位置)但是grub还以为它的文件在(hd0,gpt6)哪里,于是就报错:unkown filesystem
转
好了解释完了现在来说一下怎么给它盘活
目前我们的状态大概是这样的:
确定系统分区
先 ls 一下,看分区情况
这里没图(抱歉)
不一样也没事,格式是这样的
然后 ls (hd0,gpt7)/ 注意“/“不要掉了,还有,不要照抄我括号里面的东西,要按照上一步的输出来
一个个的试,如果有一个的输出是linux的文件系统(很长的一段 内容大概是”/etc /boot /root ........"我也没背)
那么这就是你的linux系统所在分区,grub的文件也在里面(小声说 在“/boot/grub"里)
修改grub指定的位置
然后接着看图:
简单说一下:(也是操作步骤)
set 查看当前grub的配置(我的是root=hd0,gpt5 .......)
set root=hd0,gpt6 将找到的linux系统分区当root
set profix=(hd0,gpt6)/boot/grub 指定grub文件的位置即linux系统分区下的grub文件
其实你可以上来就直接设置为原来的+1(这里不懂也没事)
刷新grub
好了,我们已经指定grub的位置,按如下操作刷新一下
这时候应该能进入正常的系统选择界面(一定要先选linux,先不要管windows)
进入系统之后
彻底修复
sudo grub-install /dev/sda6 #这里的sda6是我linux所在的分区,不知道的话可以df看/目录的分区,见下图
sudo update-grub
至此,成功修复(重启查看win11,还是linux香)