Windows 10 + Ubuntu双系统EFI引导修复

    双系统不论是重装还是新装都有可能导致双系统只能引导进入一个系统,这里记录一种简单修复双系统引导方法。

一、当只能引导进入Win 10系统时,可利用windows系统bcdedit工具进行引导修复。

修复步骤如下:

1.以管理员身份启动powershell(Win+X)。修改BCD文件前可以先备份一下:

 bcdedit /export D:backup.bcd

 2. 通过复制当前引导配置来创建ubuntu引导配置,执行命令:

bcdedit /copy "{bootmgr}" /d "Ubuntu"

3.查看启动配置可以看到复制的ubuntu启动配置:

C:\Windows\system32> bcdedit /enum firmware

固件启动管理器
---------------------
标识符                  {fwbootmgr}
displayorder            {bootmgr}
                        {2d1cd890-c02e-11ef-b243-d86807feaf75}
                        {2d1cd883-c02e-11ef-b243-d86807feaf75}
                        {2d1cd880-c02e-11ef-b243-d86807feaf75}
                        {2d1cd881-c02e-11ef-b243-d86807feaf75}
                        {2d1cd87d-c02e-11ef-b243-d86807feaf75}
                        {2d1cd87e-c02e-11ef-b243-d86807feaf75}
                        {2d1cd87f-c02e-11ef-b243-d86807feaf75}
                        {2d1cd882-c02e-11ef-b243-d86807feaf75}
                        {2d1cd884-c02e-11ef-b243-d86807feaf75}
timeout                 2

Windows 启动管理器
--------------------
标识符                  {2d1cd890-c02e-11ef-b243-d86807feaf75}
device                  partition=\Device\HarddiskVolume7
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Ubuntu
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {2d1cd88c-c02e-11ef-b243-d86807feaf75}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=\Device\HarddiskVolume7
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {2d1cd88c-c02e-11ef-b243-d86807feaf75}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

4.可以看到新创建的启动项为:{2d1cd890-c02e-11ef-b243-d86807feaf75}。新建的“Windows 启动管理器”的“description”显示为“Ubuntu”,但是仔细看“path”显示的和{bootmgr}相同,这里需要使用下面命令修改为Ubuntu系统的的启动grub文件路径:

bcdedit  /set "{2d1cd890-c02e-11ef-b243-d86807feaf75}" path \EFI\ubuntu\grubx64.efi

也可以将timeou改小一点,比如:

bcdedit  /set "{2d1cd890-c02e-11ef-b243-d86807feaf75}" timeout 5

再次查看一下修改后的启动配置:

C:\Windows\system32> bcdedit /enum firmware

固件启动管理器
---------------------
标识符                  {fwbootmgr}
displayorder            {bootmgr}
                        {2d1cd890-c02e-11ef-b243-d86807feaf75}
                        {2d1cd883-c02e-11ef-b243-d86807feaf75}
                        {2d1cd880-c02e-11ef-b243-d86807feaf75}
                        {2d1cd881-c02e-11ef-b243-d86807feaf75}
                        {2d1cd87d-c02e-11ef-b243-d86807feaf75}
                        {2d1cd87e-c02e-11ef-b243-d86807feaf75}
                        {2d1cd87f-c02e-11ef-b243-d86807feaf75}
                        {2d1cd882-c02e-11ef-b243-d86807feaf75}
                        {2d1cd884-c02e-11ef-b243-d86807feaf75}
timeout                 2

Windows 启动管理器
--------------------
标识符                  {2d1cd890-c02e-11ef-b243-d86807feaf75}
device                  partition=\Device\HarddiskVolume7
path                    \EFI\ubuntu\grubx64.efi
description             Ubuntu
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {2d1cd88c-c02e-11ef-b243-d86807feaf75}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 5

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=\Device\HarddiskVolume7
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {2d1cd88c-c02e-11ef-b243-d86807feaf75}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

到这里ubuntu启动配置修复完成了,重启进入BIOS看看是不是多了一个"Ubuntu"启动选项。如果上述步骤搞错需要删除启动项执行下面命令:

bcdedit /delete "{2d1cd890-c02e-11ef-b243-d86807feaf75}"

二、启动只能进入ubuntu系统修复方法

1.通过向grub中添加windows 10启动项,修改/boot/efi/grab.cfg:

## Windows Boot Manager 
menuentry 'Windowns 10' -class windows --class os $menuentry_id_option 'osprober-efi-DA18-EBFA' {
	insmod part_gpt
	insmod fat
	search --no-floppy --fs-uuid --set=root BFD0-9CFE
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

2.通过还原EFI分区中Microsofe文件夹:

a) 首先安装efi工具:

sudo apt install efibootmgr

b) 挂载EFI分区到/mnt目录(这里以我的第二块硬盘的第一个分区为例,一般情况下EFI分区都在硬盘的第一个分区):

sudo mount /dev/sdb1 /mnt

c) 到其他正常电脑里复制一份到/mnt/EFI/目录中, 找不到的话通知我上传一份

d) 使用efiboot将/EFI/Microsoft/Boot/bootmgfw.efi文件添加到系统启动项中。

efibootmgr -c -d /dev/sdb -p 1 -L "Windows Boot Manager" -l \EFI\Microsoft\Boot\bootmgfw.efi

三、双系统都不能正常启动

这里需要用的U盘启动盘方法修复。首先利用大白菜或者其他U盘PE工具制成U盘启动盘,然后通过U盘启动进入PE系统来重新创建EFI分区,然后把里面/EFI目录还原进入,具体细节这里不写了,网上资料比较多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值