win10更新后导致manjaro的引导文件失效的解决
本文最后更新于:1 天前
windows bug 10, best windows 10!
前言
更新了 Windows10 2004 的更新后发现 manjaro 的系统进不去了。进去了是 grub rescue 救援模式。
参考了救援模式的解决,但好像只看到了/boot的挂载点,没看到/boot/efi的挂载点,更别提/的挂载点了。
所以没办法,就烧了个manjaro 的 livecd 进去修复 grub .其中也踩了几个坑,这里记一下,方便遇到相同问题的人解决。
正文
我的环境
这里我列一下我的文件目录的挂载点。之前出错就是因为这里有问题。
1 | |
这里我是因为用双硬盘装了Windows和Manjaro的双系统,所以看起来很麻烦。其实还好啦。
| 设备 | 挂载点 |
|---|---|
| /dev/sda2 | / |
| /dev/sdb6 | /boot |
| /dev/sdb2 | /boot/efi |
和表格中显示的一样,我是分了三个分区分别用来挂载不同的目录的。
原理
我们要做的,就是通过使用Manjaro的 livecd 来使用 manjaro-chroot进行 grub 的修复。
我的操作是
- 挂载
/dev/sda2到/mnt - 挂载
/dev/sdb6到/mnt/boot - 挂载
/dev/sdb2到/mnt/boot/efi
然后使用manjaro-chroot /mnt 进入系统进行修复。
所以对于挂载点的情况一定要记得清楚!我的操作是针对我这种 /boot 和 /boot/efi 挂载在不同分区上的情况。操作时要按照自己的实际情况改变命令。
下面就是具体的操作啦
具体操作
用 Manjaro 的 LiveCD 进入系统,然后在 root 用户中输入以下命令
- 查看硬盘的挂载情况
1
fdisk -l
用这个命令来查看你的文件系统的情况。如果你清楚了那就不用了。
挂载实际系统中的
/到/mnt
在这里我的硬盘是/dev/sda21
mount /dev/sda2 /mnt挂载实际系统中的
/boot到/mnt/boot
在这里我的硬盘是/dev/sdb61
mount /dev/sdb6 /mnt/boot挂载实际系统中的
/boot/efi到/mnt/boot/efi
在这里我的硬盘是/dev/sdb21
mount /dev/sdb2 /mnt/boot/efi进入
manjaro-chroot1
manjaro-chroot /mnt在EFI启动分区创建引导文件
1
grub-install --recheck /dev/sda --efi-directory=/boot/efi生成
grub的配置文件1
grub-mkconfig -o /boot/grub/grub.cfg重启试试能不能进入manjaro
1
2exit
reboot记得拔掉U盘!
总结
其实原理就是通过manjaro-chroot进入到实际的系统中,然后用grub-install修复引导文件。
因此我们挂载操作的主要目的就是为了让manjaro-chroot工作,和grub-install能够用正确的方式来生成引导文件。