经常用老毛桃装系统,也装过很多次Ubuntu+windows双系统,但是对系统启动的原理却一直没搞清楚。

这次就遇到了棘手的问题:装完Ubuntu之后,开机的引导选项里没有windows boot manager,直接就进了Ubuntu。

复盘一下安装过程

(1)我是双固态,一个装了win10,另一个装Ubuntu20.04的时候,选择了something else,也就是自己手动分区。参考的这篇文章:Windows + Ubuntu20.04双系统详细安装教程

(2)分区搞完之后,要在窗口最下面选择启动的分区,下图是从上面文件里截取的,其实这里默认选择的还是windows的启动盘或EFI分区(我的windows硬盘里有个50M的系统预留EFI分区)。

按照教程把Device for boot loader installation 这里改成了我在Ubuntu硬盘新建的EFI分区,结果安装后找不到windows系统了。

(3)其实我之前装过好几次Ubuntu20.04双系统,都没有改Device for boot loader installation,最后都能会出现双系统选择的页面,这个暂且不讨论。

windows无法启动现象

然后我现在就是无论如何都进不去windows了,直接在bios里设置windwos硬盘为启动第一优先级也不行,会出现下面的提示。

这里把报错文字敲出来,方便搜索:

(1)File:\Boot\BCD Status: 0xc000000f The Boot Configuration Data for your PC is missing or contains errors.

(2)Status: 0xc000000f A required device isn’t connected or can’t be accessed.

解决方法

网上搜索了很多方法,这篇文章讲的最为透彻:win10 bcdboot引导修复命令使用方法及一些BCD修复心得经验

(1)首先是使用系统win10安装U盘(官方装机盘,进去直接就装系统,不是老毛桃那种),选择修复系统,还试了高级设置里的命令行操作,也不行。

(2)我还有个老毛桃启动盘,进入PE系统后直接用桌面上的启动项修复,无效。

(3)最后是在PE里用命令行手动操作,通过DiskGenius,先找到自己windows安装的分区,盘符为I,然后是window硬盘下的EFI分区(50M那个),盘符为E。

然后在PE的命令行里输入

bcdboot I:\Windows /s E: /f uefi /l zh-cn

如果报错的话,可以把最后 /l zh-cn那句去掉,最终提示成功安装引导。

其实这句命令的作用,就是从你windows的安装目录里把保存的引导文件复制到EFI分区,执行完成后在PE中查看EFI分区的目录,发现多了BOOT/Microsoft/Boot/等文件。

重启电脑,windows安装盘选为启动项,就成功启动windows了。