起因:当时由于饱受kde环境下deep-wine-wechat及tim的折磨,尝试装了deepin,用完觉得整体一般,于是在bios删掉了启动项,随后删除了deepin的安装盘(作死),再次切到manjaro是便如题图了。
下方来说详细过程
1.1 查看分区
grub rescue> ls
列出磁盘分区
(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos2) (hd0,msdos1)
注 : 上面这个分区可能因人而异,nvmexxx之类的也是可能的。
1.2 寻找manjaro在哪个分区
就是寻找你的Linux系统是装在以上哪个分区里
grub rescue> ls (hd0,msdos1)
若出现unknown filesystem字样,则尝试下一个,以此类推
直到出现相应主目录下的文件夹即可
1.3 安装MBR
修改启动分区
假如你找到的启动分区是 (hd0,msdos8)
grub rescue>root=(hd0,msdos8)
grub rescue>prefix=/boot/grub //grub路径设置
grub rescue>set root=(hd0,msdos8)
grub rescue>set prefix=(hd0,msdos8)/boot/grub
grub rescue>insmod normal //启动normal启动
grub rescue>normal
在此分支,有些人执行语句insmod normal时会报错,有人不会。
如果没有报错,执行完之后你会进入熟悉的界面了,恭喜问题已经得到了解决!
进入系统之后还是建议执行以下语句以防万一
grub-mkconfig -o /boot/grub/grub.cfg
对于报错的同志们,我们进入下一部分
2.1制作Live CD
此时我们发现单纯在grub命令行里无法解决问题,此时我们需要制作一张live CD, 就是相当于用rufus等软件在U盘里刷一次manjaro的ISO,这点我们无需赘述,相信大家都会。
2.2 查看安装位置
由于我的efi是单独的一个盘,所以首先登入windows在磁盘管理中查看,efi的位置,并记录。
USB设为首选项启动,进入manjaro安装的桌面,打开终端
lsblk -f
此时会显示,manjaro系统安装的位置,需要记录一下
2.3挂载
使用manjaro-chroot来挂载,chroot即change root
sudo manjaro-chroot -a
此时按照给出的提示来选择系统
正常那么皆大欢喜直接进行下一步,但是这步有巨坑!!!!
你可能会收到以下报错ERROR: You cant mount 0!
==> detected systems:
–> 0) ManjaroLinux
==>Select system to mount [0-0]
==>ERROR: You cant mount 0!
这时是个人都会很疑惑,但是此时选择'1'会解决问题(莫名其妙)
进入下一步
mount /dev/[manjaro安装分区] /mnt
利用在lsblk中获得的分区来替换'[manjaro安装分区]',比如我的是nvme0n1p6,即
mount /dev/nvme0n1p6 /mnt
需要注意空格
同时需要挂载efi的分区,即我们前面在windows里查看的分区(lsblk也可看到)
mount /dev/[GRUB所在分区] /mnt/boot
同理
mount /dev/nvme0n1p1/ mnt/boot
2.4切换挂载的根目录
cd /mnt
chroot /mnt
2.5重装GRUB
grub-install /dev/[GRUB所在分区]
这个替换同上,有人在这一步也会报错
error: cannot find a device for /boot (is /dev mounted?).
grub-install install device isn't specified
此时用exit退回上一级目录,执行
mount | tail -l
会得到类似
dev/sda5 on /media/sys type ext3 (rw,nosuid,nodev,uhelper=udisks)
这样的结果,记录GRUB所在分区对应的on后面的目录即可
再次
chroot /mnt
执行
sudo grub-install --root-directory=[on后面目录] /dev/[GRUB所在分区]
需要注意空格,此时运行成功,再执行
update-grub
等待执行完毕,重启系统选择manjaro为启动项
此时又迎来了分支,有些人直接进入系统,那么恭喜终于结束!
有些人依旧是进入grub
显示minimal bash-like line editing is supported,不要灰心,胜利就在前方
此时的gurb可以观察到是重装过的,重复执行第一部分,insmod normal语句不会再报错,
于是进入系统!大功告成!
这玩意折腾了我一整天,差点给我整自闭,其间参考了arch wiki,manjaro论坛,ubuntu论坛等资料,写出来只是为了以后的同志们少走点弯路。