背景
本人manjaro和windows双系统,但不是一个ssd的双系统,win系统装在系统盘SSD(这里简称
nvme1
),manjaro安装在另一块SSD中(这里简称nvmw0
),由于突发原因,nvme1
中的win系统坏掉了,于是迫不得已在nvme1
中重装了win10,然而,由于安装时不小心把挂载着manjaro的/boot/efi
的win分区给格式化了,导致重装系统后,manjaro系统/boot/efi
分区消失,开机bios引导中也没有了manjaro的引导,无论如何都进不去manjaro系统中了,由于对grub本身不熟悉,在千难万险的多方搜集之后,终于找到解决办法(google 永远的神!!!),特此记录,踩坑实录
在这里重点强调一下,我的由于是两个系统在两个盘,为了manjaro
的grub开机引导,能够检测到我的win,我必须将win的EFI分区和manjaro
的/boot/efi
放在一个分区内才行,在这里我选择了将manjaro
的/boot/efi
挂载到了win安装后所自动分出的EFI分区,如下图,我的window系统盘分区:
可以看到,有个100MB的EFI系统分区,这是我安装win10 之后系统的自动分区。
上图是我的最后大概系统位置。
问题
如何在没有系统引导的情况下,进入manjaro系统,并重新挂载/boot/efi
到我的win的EFI分区?
解决
1 进入manjaro
在这里我唯一能够想到的办法是使用Live CD的模式,换个名字,我想安装过manjaro的大家都知道,U盘启动!。对!manjaro的U盘启动,类似win PE,就是可以在U盘启动一个简单的manjaro 系统,然后去挂载我们磁盘上的manjaro系统,然后对其进行操作。
具体步骤如下:
-
第一步:制作Manjaro引导盘,安装过manjaro,这个大家都知道。
-
第二步:U盘启动电脑,具体流程和安装manjaro类似,选择语言,选择驱动方式(这里驱动无所谓,能成功进入即可)
-
第三步:成功进入后,接下来进行操作:
-
首先运行
sudo fdisk -l
,查看自己manjaro主分区(/)所在硬盘位置,在这里我的是/dev/nvme0n1p2
,然后运行如下命令sudo mount /dev/nvme0n1p2 /mnt # 或许chroot 需要sudo,视情况而定 manjaro-chroot /mnt
上面运行成功后,就能够看到命令行前面的提示符变成了你的
bash
版本,这个时候就成功进入到了我们的硬盘中的manjaro系统中了。
-
2 操作
接下来是如何重新生成我们的
/boot/efi
分区,并挂载在win的分区下
首先还是要运行sudo fdisk -l
,查看自己想要挂载分区的位置,在这里我查看到我的win EFI分区位置为/dev/nvme1n1p1
,看你自己的位置,然后修改下面的mount的位置(把/dev/nvme1n1p1
,替换为你的win EFI分区位置)
运行如下命令:
(提示没有权限的就在前面增加sudo)
sudo mount -t vfat /dev/nvme1n1p1 /boot/efi
grub-install --recheck --no-rs-codes --target="x86_64-efi" --modules="part_msdos part_gpt" --efi-directory="/boot/efi"
update-grub
接下来这里运行成功后,你需要查看一下你的win EFI分区的UUID值,在Live CD的系统工具中有一个软件叫做manjaro 分区管理器(manjaro partition manager),打开之后,页面和安装manjaro时类似,找到你的win EFI分区,然后双击分区,查看UUID,
接下来仍在上述的终端内运行sudo vim /etc/fstab
,也即在这里我们使用vim
更改 /etc/fstab
中的内容,在这个文件里面你可能会看到很多分区,由于我的manjaro安装时,并未手动分区,所以我这里只有两个分区,一个是我的/
分区,一个是刚刚生成的 /boot/efi
分区,然后将/boot/efi
分区的UUID替换为刚刚在分区管理器中查到的UUID值,然后保存,退出编辑。
在这里0E85-FA56
即为图5红框所标注的UUID
3 结束
接下来接着上述终端操作,输入exit退出我们的manjaro系统,然后重启电脑,打开bios,你就可以在bios中看到manjaro启动引导了!~~~
不过这里可能还没法进行选择系统,重启进去manjaro后,重新运行一下 update-grub
,更新一下grub引导选项,没什么问题那么就大功告成了!!
参考
有时候baidu真的没什么参考资料,不如用英文在google搜索
这里参考了forum上的资料