win10 UEFI引导恢复

记一次弱智操作,自己玩坏windows自己修。

一直想在本本上装个双系统(win + linux(deepin))。结果呢?到处碰壁,虽然安装完毕但是启动不了(找不到启动项)。上网一查,发现对于efi什么的完全不懂啊,百度一下教程,下载了easybcd这个软件用来编辑启动项(PS:这软件神坑,打死我也不用了)。结果一不小心手滑,给win10启动引导给删了,情急之中尝试用这个软件重新添加了一个win10的启动引导,蜜汁自信的重启,GG

DNMD,这可咋整linux没装成,windows也没了。这时,万能的百度他又来了,可以各种国产PE恢复,也可以用windows启动盘恢复。刚好手里有个win启动盘(随便找个中文瘟10镜像,用ultraiso和一个8GU盘就可以制作),而且国产pe你懂的,我就直接用靠谱的windows原厂的镜像帮忙恢复啦。

首先保证你的bios里的启动模式是UEFI模式(这不是废话么),插入U盘启动后手动选择启动项,选择你的win10启动U盘。顺利进入windows安装界面

选择好语言之后点击“修复计算机”,然后在出线的页面中依次选择 疑难解答->高级工具->命令提示符 然后就可以在管理员的模式下进入console啦(讲道理这是不是一个安全漏洞呢,我发现好像可以通过启动U盘随意拷贝别人电脑里的东西了)。

修复启动引导需要用到bcdboot命令以及diskpart工具,关于这两个命令具体是干什么的,我建议百度。

在这里科普一下UEFI引导系统的工作原理

  • 首先什么是efi引导分区(esp或简称引导分区)

该分区必须存在GPT磁盘中,用来存储efi引导文件,它采用fat32文件系统。

  • efi长啥样(windows下)

主要文件的结构是这样的:

efi\boot\bootx64.efi

efi\microsoft\boot\bcd

  • efi工作流程? (windows下)

uefi bios启动时,自动查找硬盘下引导分区的bootx64.efi,然后由bootx64.efi引导efi下的bcd文件,由bcd引导指定系统文件(一般为c:\windows\system32\winload.efi)

ok,既然是要修复启动引导,那么说明他以前是可以用的!因此需要找到以前的引导存放的位置(windows的efi分区),这里我使用diskpart工具。

用到的命令是list和sel,分别是列出和选择

list disk

列出所有挂载磁盘

list par

列出当前磁盘分区

sel disk n

选择磁盘 n是编号

sel par n

同理

找windows的引导分区,大小一般都是一两百MB,找到之后选择它。我电脑是双硬盘,一块256GSSD一块1THDD,系统是装在SSD上的,同时这块SSD也是GPT磁盘,因此EFI分区肯定在它上面,然后列出它的分区,找到引导分区位置。

找到之后用assign命令给这个分区分配一个盘符,以便修复它,我这里给他一个o,然后就可以退出diskpart工具啦。

引导的本质就是告诉电脑,要启动的系统在哪。修复它,要把启动需要的引导文件写到efi分区。前面已经知道efi分区的位置了,还给他分配了盘符o,因此要修复它还需要知道windows的系统在哪里,通常是c盘,也就是c:\windows

现在需要用bcdboot命令来修复这个分区

尝试复制启动文件失败?这又是怎么回事,命令执行出现了问题,开始排查。

首先假设我们的windows系统没有问题,u盘镜像也没有问题,那么bcdboot也没有问题。问题应该是在我给的参数上

首先第一个参数,难道系统位置不对?c盘难道不是我的系统盘?用dir命令看看里面有啥

嗯……..嗯!??? 这不是我的“D盘”么,那d盘有啥?

What the f**k?这不是我的“C盘”么?

破案了,凶手就是——不知道是什么原因,我的系统盘在这里的盘符其实是D而不是C

现在修改系统位置参数,重新执行一下看看

执行之后,提示 “成功创建启动文件” 就表示引导添加成功了,exit退出命令行,随后点击退出并继续。

重新开启,熟悉的画面~

到这里就结束修复啦,以后再编辑启动项的时候一定要先备份好啊!!!

参考博客:http://www.cnblogs.com/exmyth/p/4069117.html

(0)

相关推荐