win10更新后导致manjaro的引导文件失效的解决

windows bug 10, best windows 10!

前言

更新了 Windows10 2004 的更新后发现 manjaro 的系统进不去了。进去了是 grub rescue 救援模式。
参考了救援模式的解决,但好像只看到了/boot的挂载点,没看到/boot/efi的挂载点,更别提/的挂载点了。

所以没办法,就烧了个manjaro 的 livecd 进去修复 grub .其中也踩了几个坑,这里记一下,方便遇到相同问题的人解决。

正文

我的环境

这里我列一下我的文件目录的挂载点。之前出错就是因为这里有问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
设备       启动       起点       末尾       扇区   大小 Id 类型
/dev/sda1 * 64 1848663470 1848663407 881.5G 7 HPFS/NTFS/exFAT
/dev/sda2 1848664064 1893720063 45056000 21.5G 83 Linux
/dev/sda3 1893720064 1934680063 40960000 19.5G 83 Linux
/dev/sda4 1934680064 1953520064 18840001 9G 82 Linux swap / Solaris

设备 起点 末尾 扇区 大小 类型
/dev/sdb1 2048 1085439 1083392 529M Windows 恢复环境
/dev/sdb2 1085440 1290239 204800 100M EFI 系统
/dev/sdb3 1290240 1323007 32768 16M Microsoft 保留
/dev/sdb4 1323008 244098048 242775041 115.8G Microsoft 基本数据
/dev/sdb5 244099072 245411839 1312768 641M Windows 恢复环境
/dev/sdb6 245413888 247463902 2050015 1001M Linux 文件系统

这里我是因为用双硬盘装了WindowsManjaro的双系统,所以看起来很麻烦。其实还好啦。

设备 挂载点
/dev/sda2 /
/dev/sdb6 /boot
/dev/sdb2 /boot/efi

和表格中显示的一样,我是分了三个分区分别用来挂载不同的目录的。

原理

我们要做的,就是通过使用Manjaro的 livecd 来使用 manjaro-chroot进行 grub 的修复。

我的操作是

  1. 挂载 /dev/sda2/mnt
  2. 挂载 /dev/sdb6/mnt/boot
  3. 挂载 /dev/sdb2/mnt/boot/efi

然后使用manjaro-chroot /mnt 进入系统进行修复。

所以对于挂载点的情况一定要记得清楚!我的操作是针对我这种 /boot/boot/efi 挂载在不同分区上的情况。操作时要按照自己的实际情况改变命令。

下面就是具体的操作啦

具体操作

Manjaro 的 LiveCD 进入系统,然后在 root 用户中输入以下命令

  1. 查看硬盘的挂载情况
    1
    fdisk -l

用这个命令来查看你的文件系统的情况。如果你清楚了那就不用了。

  1. 挂载实际系统中的 //mnt
    在这里我的硬盘是 /dev/sda2

    1
    mount /dev/sda2 /mnt
  2. 挂载实际系统中的 /boot/mnt/boot
    在这里我的硬盘是 /dev/sdb6

    1
    mount /dev/sdb6 /mnt/boot
  3. 挂载实际系统中的 /boot/efi/mnt/boot/efi
    在这里我的硬盘是 /dev/sdb2

    1
    mount /dev/sdb2 /mnt/boot/efi
  4. 进入 manjaro-chroot

    1
    manjaro-chroot /mnt
  5. 在EFI启动分区创建引导文件

    1
    grub-install --recheck /dev/sda --efi-directory=/boot/efi
  6. 生成grub的配置文件

    1
    grub-mkconfig -o /boot/grub/grub.cfg
  7. 重启试试能不能进入manjaro

    1
    2
    exit
    reboot

    记得拔掉U盘!

总结

其实原理就是通过manjaro-chroot进入到实际的系统中,然后用grub-install修复引导文件。

因此我们挂载操作的主要目的就是为了让manjaro-chroot工作,和grub-install能够用正确的方式来生成引导文件。

参考

Manjaro UEFI 启动修复 - 云酱的笔记本


win10更新后导致manjaro的引导文件失效的解决
https://www.yikakia.com/win10更新后导致manjaro的引导文件失效的解决/
作者
Yika
发布于
2020年8月7日
许可协议