UEFI下win10+Ubuntu双启动后完全纯净卸载Ubuntu,重建BCD
以下内容操作具有风险,操作前请提前备份数据。建议由有丰富经验的人使用,需要掌握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 2.3+。直接重建引导文件。

EasyBCD对个人用户是免费的,简单的填写邮箱即可下载,也不用验证邮箱。建议官网下载:https://neosmart.net/EasyBCD/
使用EasyBCD后,开机应该可以进入win10。此后使用windows自带的磁盘管理工具删除ubuntu的分区,拓展windows分区即可。
接下来我们需要删除boot menu启动项,删除efi/ubuntu文件夹。
你可以直接在bios的boot设置中,使用delete删除ubuntu启动项,然后使用windows diskpart挂载efi分区,删除ubuntu目录
cmd #管理员权限运行,下同
diskpart
list volume
select volume x #选择efi对应卷,fat32的,x为卷id
assigin letter=p
exit
p:
dir
cd efi
rmdir /s ubuntu
去除efi分区加载点(不手动去除,重启后也会消失)
diskpart
list volume
select volume p
remove letter=p
至此其实所有问题都已经解决了。
进阶
可是,EasyBCD毕竟属于第三方软件,用起来始终不太放心。或者你可能玩着玩着,发现把启动项玩崩了。不要怕,继续看下去吧。
如何不使用第三方软件,修复启动呢?
首先我们进入recovery模式,有三种方法(推荐使用第三种):
- shift+点击重启
- 设置-更新和安全-恢复-高级启动进入
- 使用win10安装盘启动。可使用Media Creation Tool下载镜像,然后将光盘内的文件拷贝到U盘根目录。U盘需要FAT32格式。UEFI可以自动识别。无需使用ultraiso一类的工具。
进入命令行模式后可使用diskpart命令格式化efi分区。(有风险,建议提前备份重要数据)
diskpart
list volume
select volume x
format fs=fat32 quick
exit
然后重建bcd,有两种方法,bootrec或者bcdboot
bootrec /rebuildbcd
bootrec /rebuildbcd重建后会建立efi/microsoft,而不会建立efi/boot,此时只需在recovery模式中(windows光盘启动点击下一步->修复此计算机->)点击疑难解答->高级选项->启动修复。即可恢复启动项,正常进入windows。
update:可以尝试依次输入:
# bootrec /fixmbr
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd
也可通过bcdboot命令重建BCD。找到windows安装卷后,指定bcdboot为该盘的windows目录,此方法能同时创建eft\boot与eft\microsoft,只是存在一个问题:重置后,会导致 recovery模式->疑难解答->高级选项 功能减少。建议优先使用 bootrec + 启动修复 的方式。
diskpart
list volume
exit
bcdboot d:\windows #注意此处一般不是c盘,应为list volume显示的系统所在盘符
拓展阅读:
使用微软光盘启动,可通过shift+f10快捷键快速进入命令行
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/
UEFI下win10+Ubuntu双启动后完全纯净卸载Ubuntu,重建BCD的更多相关文章
- win10 ubuntu双系统安装后无法引导进入ubuntu
之前按照先装windows后装ubuntu的方式装的系统,都可以引导到ubuntu,无论是将ubuntu挂在到/boot在windows用easy BCD建立ubuntu引导,还是将ubuntu挂在到 ...
- Win10开启快速启动后关机变重启
同样可以用来解决,“msconfig引导为空”,“默认操作系统为空”,“win10改为uefi启动后关机变重启”,“legacy转uefi后无法关机” 问题起因 换完主板和cpu后,新的主板在开机时总 ...
- 【原】安装Win7和Ubuntu双系统后,Win7耳机无声音的解决办法
最近安装了Ubuntu的桌面版,作成了双系统,可是发现了一个问题:进入Win7后有时插耳机会没有声音,外放有声音.后来更新驱动也没有解决问题,最后在网上查到了解决办法. 产生原因:进入Ubuntu后, ...
- 安装windows7和ubuntu双系统后引导项设置
win7系统,U盘安装ubuntu,在选择[安装启动引导器的设备]时,1.如果你选择的是/dev/sda,即整个硬盘,他会将启动引导器使用grub进行系统引导,而不再使用windows loader, ...
- win7/ubuntu双系统下,如何恢复成win7引导及卸载ubuntu
电脑原来是win7系统,后来通过硬盘安装了Ubuntu,同时把Ubuntu设置成了开机引导项(开机时选择操作系统的界面成了紫色背景白色字体的界面),ubuntu引导开机的缺点是将来要卸载Ubuntu时 ...
- uefi模式下win10安装双系统ubuntu18.04LTS
自己折腾了半天,血与泪啊(难得一个可爱的周末 wwww我一定要写下来 跟这个博客几乎一模一样了 https://blog.csdn.net/xrinosvip/article/details/8042 ...
- uefi安装win7,deepin15双系统后grub没有windows选项
本帖最后由 873792861 于 2015-12-23 16:17 编辑 如题,首先电脑是GPT+uefi的,电脑上安装有64位的win7.用U盘工具制造好驱动U盘后,在安装时选择 专家模式 ,选择 ...
- Ubuntu双系统后时间不对解决方案
先在ubuntu下更新一下时间,确保时间无误 sudo apt install ntpdate sudo ntpdate time.windows.com 然后将时间更新到硬件上 sudo hwclo ...
- win7下装ubuntu双系统后无法进入win7的解决方法
本来电脑的系统是win7,然后用u盘装了ubuntu之后可能会出现开机没有引导界面而直接进入ubuntu系统的情况. 原因:没有设置gurb引导 解决方法:需要更新gurb来使ubuntu识别出win ...
随机推荐
- js 理解闭包
学习Javascript闭包(Closure) 引用: 阮一峰 http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures. ...
- JDBC--数据库链接及相关方法的封装
使用的是MySQL数据库,首先导入驱动类,然后根据数据库URL和用户名密码获得数据的链接.由于使用的是MySQL数据库,它的URL一般为,jdbc:mysql://主机地址:端口号/库名. 下面是封装 ...
- css移除a标签及map、area(图片热区映射)点击过后的边框
默认a标签及其包含的html元素和map中的area(图片热区映射)在点击过后留有默认的蓝色边框,如下图 可以看到,蓝色的边框破坏了页面的整体美感,很多时候我们都是不需要的.通过设置相应的css可以去 ...
- MySQL Connector/NET 使用小结(踩坑之路)
背景描述 根据项目的需要,需连接MySQL获取数据. 首先,先了解一下项目的情况: 之前的代码是C#编写的的, 运行时:.NETFramework3.5. 由于项目已经部署上线,因此不能升级运行时,这 ...
- 阶段性总结(PHP-JSON)
PHP JSON 本节我们将为大家介绍如何使用 PHP 语言来编码和解码 JSON 对象. 在没有json编码和解码之前,我们 html前台 和 PHP后台 之间的数据传输只能用字符串的方式传输. 但 ...
- java.lang.ArrayIndexOutOfBoundsException异常分析及解决
这是一个非常常见的异常,从名字上看是数组下标越界错误,解决方法就是查看为什么下标越界. 下面是一个错误示例: Exception in thread "main" java.lan ...
- 给iOS开发新手送点福利,简述UILabel的属性和用法
UILabel属性 1.text:设置标签显示文本. label.text = @"我是Label"; 2.attributedText:设置标签属性文本. NSString *t ...
- Python小知识点(4)--模块相关
1.模块: 定义:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是以.py结尾的python文件(文件名:test.py,对应的模块名:test). 包:用来从逻辑上组 ...
- stm32通信概述
本文提到的内容有以下几个方面: 通信概述 串口通信 I2C通信 CAN通信 SPI通信 I2S通信 USB通信 其他通信 一.通信概述 按照数据传送方式分: 串行通信(一条数据线.适合远距离传输.控制 ...
- clipboard使用总结
官方网站:https://clipboardjs.com/ 使用总结:http://blog.csdn.net/hry2015/article/details/70941912