ubuntu下 修复win10引导

您所在的位置:网站首页 win10引导linux启动 ubuntu下 修复win10引导

ubuntu下 修复win10引导

2023-09-17 21:16| 来源: 网络整理| 查看: 265

本文转自: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,gpt2 和 913B-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

全文完,参考资料:

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)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3