win10更新后导致manjaro的引导文件失效的解决
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/sda2
1
mount /dev/sda2 /mnt
挂载实际系统中的
/boot
到/mnt/boot
在这里我的硬盘是/dev/sdb6
1
mount /dev/sdb6 /mnt/boot
挂载实际系统中的
/boot/efi
到/mnt/boot/efi
在这里我的硬盘是/dev/sdb2
1
mount /dev/sdb2 /mnt/boot/efi
进入
manjaro-chroot
1
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
能够用正确的方式来生成引导文件。