windows+linux 双启动 卸载linux,重建windows引导(UEFI)
以下内容操作具有风险,操作前请提前备份数据。建议由有丰富经验的人使用,需要掌握diskpart。
背景
使用ubuntu+win10 dual boot后,需要重置回纯净win10系统。
- BCD是Boot Config Data的缩写。
- UEFI模式安装win10 + Ubuntu双系统后,由于Ubuntu会使用grub2托管启动项,所以卸载最大的难点在于如何重建windows启动索引。
步骤
- 重建windows启动
- 删除ubuntu安装分区并归入windows磁盘
- 删除bios menu
- 删除efi/ubuntu
重建windows启动最简单的方式其实是使用EasyBCD,EasyBCD对个人用户是免费的,简单的填写邮箱即可下载,也不用验证邮箱。建议官网下载:https://neosmart.net/EasyBCD/
通过 “bcd备份/恢复 - 重新创建/修复引导文件 - 执行动作” 来修复引导文件,如下图:
使用EasyBCD重建引导后,开机启动恢复为windows启动。此后使用windows自带的磁盘管理工具(diskmgmt.msc)删除ubuntu的分区,并拓展windows分区即可。
卸载残留主要包括:
- bios的boot菜单,可以直接在bios的boot设置中,使用delete删除ubuntu启动项,
- efi/ubuntu中的残留文件。可通过DiskGenius图形化界面浏览分区中文件进行删除,
也可使用windows的diskpart挂载efi分区,删除efi/ubuntu目录,详细操作如下:
cmd #管理员权限运行,下同
diskpart
list volume
select volume x #选择efi对应卷,fat32的,x为卷id
assign letter=p
exit
p:
dir
cd efi
rd /s ubuntu
#去除efi分区加载点(不手动去除,重启后也会消失)
diskpart
list volume
select volume p
remove letter=p
进阶 (有风险,建议提前备份重要数据)
EasyBCD属于第三方软件,安全性低于微软的官方工具
因此重建引导推荐使用windows自带的命令行工具:bcdboot、bootrec。
bcdboot windows安装后都会携带,各类PE中也包含。使用也较为简单,但使用后高级启动选项中会丢失Windows RE(Recovery Environment,恢复环境)相关功能选项。
bootrec 恢复较为完整,不过必须进入完整的Windows RE才能使用。
UEFI引导方式,启动是由EFI分区控制的,EFI分区目录结构如下:
EFI
-Boot
--bootx64.efi
-Microsoft
-Ubuntu
-fedora
...
efi分区中的文件,可使用diskgenius工具直接管理,也可通过diskpart挂载管理。
bcdboot
bcdboot是重建 Windows 启动项的最简方式。找到windows安装卷,并在命令行中指定。即可重新生成 Boot 与 Microsoft 目录
diskpart
list volume
exit
#注意如果是PE启动,此处一般不是c盘而是d盘,需要使用list volume显示的系统分区所在盘符
bcdboot c:\windows
#完整命令,p:为efi分区盘符,需要使用diskpart挂载efi分区并分配盘符,在前文卸载残留内容中有命令行样例
bcdboot c:\windows /s p: /f UEFI
bcdboot执行后即可去除 Ubuntu 启动项,重启可通过Windows启动。
bootrec
进入Windows RE方法如下:
- shift+点击重启 或 设置-更新和安全-恢复-高级启动
- 通过高级选项进入命令行模式
电脑无法启动进入windows系统,或者没有命令行模式选项的,可使用Media Creation Tool制作win10启动盘启动后,进入命令行模式。
菜单路径为:修复此计算机->疑难解答(高级选项)->命令行模式,快捷键为shift+f10
重建efi/microsoft命令如下:
bootrec /rebuildbcd
上述命令,会重建efi/Microsoft,但不会重建efi/boot。需要通过启动修复选项恢复引导,菜单路径如下:
(windows光盘启动点击下一步->修复此计算机->)点击疑难解答(高级选项)->启动修复
等待恢复后,即可正常进入windows。此方式恢复比bcdboot更全面,会附带Windows RE环境。RE相关文件位于P:\EFI\Microsoft\Recovery
bootrec 的完整命令参数如下:
bootrec /fixboot # 提示access is denied,可尝试cd至p:\EFI\Microsoft\Boot再运行
bootrec /rebuildbcd #重建bcd
bootrec /scanos # 查找已安装系统的windows目录
bootrec /fixmbr # 非UEFI引导方式,修复mbr
参考:
https://askubuntu.com/questions/133533/how-to-remove-ubuntu-and-put-windows-back-on
https://askubuntu.com/questions/63610/how-do-i-remove-ubuntu-in-the-bios-boot-menu-uefi?newreg=11a19a9af4ea40ee8b2ec3d14be133a1
https://www.tenforums.com/installation-upgrade/73478-how-do-i-restore-w10-bootloader-dual-boot-ubuntu-separate-hdd-3.html#post901772
https://www.lifewire.com/how-to-rebuild-the-bcd-in-windows-2624508
https://itsfoss.com/install-ubuntu-dual-boot-mode-windows/
https://support.microsoft.com/en-us/help/927392/use-bootrec-exe-in-the-windows-re-to-troubleshoot-startup-issues
https://www.partitionwizard.com/clone-disk/bootrec-fixboot-access-is-denied.html
本文采用 知识共享署名 4.0 国际许可协议 进行许可