ubuntu下 修复win10引导

本文转自:http://blog.csdn.net/aaazz47/article/details/78643355

不得不感叹一下,双系统下不能轻易升级更新啊 TT !继上次更新win10 1709导致引导问题之后《修复GRUB:win10 1709 秋季创意者更新导致Linux双系统无法引导》今天又出现了因为更新 Linux 内核导致了GRUB 引导选择中的 Windows 启动项消失不见了…

哎~开始折腾吧。


一条命令修复启动项


我的硬盘分区是 gpt 分区,包括 win10 1709 秋季更新版和 Manjaro Linux 系统。

其实就修复之后的情况来看,造成启动项丢失主要是 GRUB 的启动配置文件发生的变动,而解决办法很简单重新生成配置文件就好了,命令如下:


sudo grub-mkconfig -o /boot/efi/EFI/GRUB/grub.cfg
# 或者下面这条命令,具体根据grub.cfg文件的位置来确定就好
sudo grub-mkconfig -o /boot/grub/grub.cfg
  • 1
  • 2
  • 3
  • 4

一般情况下系统会自动找到之前的 Windows 分区,然后全部重新创建启动项。


手动创建 Windows 启动项


博主我开始不知道一条命令就好,所以还尝试手动编辑了 Windows 启动配置信息,详情记录如下


1. 编辑 Windows 启动配置文件

/etc/grub.d/40_custom 增加下面的内容 (注意不要删除 exec tail 行的内容)


menuentry “启动 Windows 10” {
echo “正在启动 Windows 10…”
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search —fs-uuid —no-floppy —set=root —hint-bios=hd0,gpt2 —hint-efi=hd0,gpt2 —hint-baremetal=ahci0,gpt2 913B-D0CD
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

其中 —hint-bios=hd0,gpt2 —hint-efi=hd0,gpt2 —hint-baremetal=ahci0,gpt2913B-D0CD 需要根据本地具体情况获取。方法如下

获取uuid


sudo grub-probe —target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
# bootmgfw.efi 的路径根据具体情况填写,获得uuid:
913B-D0CD
  • 1
  • 2
  • 3

获取hint-string


sudo grub-probe —target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
# 路径同上,得到的信息如下:
—hint-bios=hd0,gpt2 —hint-efi=hd0,gpt2 —hint-baremetal=ahci0,gpt2
  • 1
  • 2
  • 3

2. 重新生成配置文件


sudo grub-mkconfig -o /boot/efi/EFI/GRUB/grub.cfg
# 或者下面这条命令,具体根据grub.cfg文件的位置来确定就好
sudo grub-mkconfig -o /boot/grub/grub.cfg
  • 1
  • 2
  • 3
  • 4

全文完,参考资料:

(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)” rel=”nofollow” target=”blank”>https://wiki.archlinux.org/index.php/GRUB(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)


不得不感叹一下,双系统下不能轻易升级更新啊 TT !继上次更新win10 1709导致引导问题之后《修复GRUB:win10 1709 秋季创意者更新导致Linux双系统无法引导》今天又出现了因为更新 Linux 内核导致了GRUB 引导选择中的 Windows 启动项消失不见了… 

哎~开始折腾吧。

一条命令修复启动项

我的硬盘分区是 gpt 分区,包括 win10 1709 秋季更新版和 Manjaro Linux 系统。 

其实就修复之后的情况来看,造成启动项丢失主要是 GRUB 的启动配置文件发生的变动,而解决办法很简单重新生成配置文件就好了,命令如下:

sudogrub-mkconfig -o /boot/efi/EFI/GRUB/grub.cfg

# 或者下面这条命令,具体根据grub.cfg文件的位置来确定就好

sudogrub-mkconfig -o /boot/grub/grub.cfg

1

2

3

4

一般情况下系统会自动找到之前的 Windows 分区,然后全部重新创建启动项。

手动创建 Windows 启动项

博主我开始不知道一条命令就好,所以还尝试手动编辑了 Windows 启动配置信息,详情记录如下

1. 编辑 Windows 启动配置文件 

/etc/grub.d/40_custom 增加下面的内容 (注意不要删除 exec tail 行的内容)

menuentry“启动 Windows 10”{

echo“正在启动 Windows 10…”

insmod part_gpt

insmod fat

insmod search_fs_uuid

insmod chain

search —fs-uuid —no-floppy —set=root —hint-bios=hd0,gpt2 —hint-efi=hd0,gpt2 —hint-baremetal=ahci0,gpt2913B-D0CD

chainloader /EFI/Microsoft/Boot/bootmgfw.efi

}

1

2

3

4

5

6

7

8

9

其中 —hint-bios=hd0,gpt2 —hint-efi=hd0,gpt2 —hint-baremetal=ahci0,gpt2 和 913B-D0CD 需要根据本地具体情况获取。方法如下 

获取uuid

sudogrub-probe —target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

# bootmgfw.efi 的路径根据具体情况填写,获得uuid:

913B-D0CD

1

2

3

获取hint-string

sudogrub-probe —target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

# 路径同上,得到的信息如下:

—hint-bios=hd0,gpt2 —hint-efi=hd0,gpt2 —hint-baremetal=ahci0,gpt2

1

2

3

2. 重新生成配置文件

sudogrub-mkconfig -o /boot/efi/EFI/GRUB/grub.cfg

# 或者下面这条命令,具体根据grub.cfg文件的位置来确定就好

sudogrub-mkconfig -o /boot/grub/grub.cfg

1

2

3

4

全文完,参考资料: 

https://wiki.archlinux.org/index.php/GRUB

(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)” rel=”nofollow” target=”blank”>https://wiki.archlinux.org/index.php/GRUB(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

你可能感兴趣的:(ubuntu下 修复win10引导)