如何修复因安装Linux导致的GRUB引导覆盖Windows引导问题【引导修复】
技术百科
煙雲
发布时间:2026-01-20
浏览: 次 Windows引导修复有五种方法:一、用Windows安装介质自动修复;二、手动重建EFI引导项;三、用EasyBCD添加引导条目;四、从Linux卸载GRUB并恢复Windows启动顺序;五、用Boot-Repair-Disk一键修复。
如果您在安装Linux后发现计算机启动时直接进入GRUB菜单,而无法正常加载Windows引导程序,则说明Linux安装过程中GRUB已覆盖原Windows的UEFI或Legacy BIOS引导记录。以下是修复此问题的多种方法:
一、使用Windows安装介质执行自动修复
该方法适用于Windows仍完整安装且UEFI/BIOS中保留Windows Boot Manager条目的情况,通过Windows自带的启动修复工具重写引导扇区并恢复BCD。
1、准备一个与当前Windows版本匹配的Windows安装U盘或光盘,并从该介质启

2、在安装界面选择“修复计算机”而非“现在安装”。
3、依次进入“疑难解答”→“高级选项”→“命令提示符”。
4、在命令提示符中依次输入以下命令(每行输入后按回车):
diskpart
list disk
select disk 0
list partition
select partition X(X为EFI系统分区编号,通常为100MB FAT32分区)
assign letter=S
exit
bcboot S:\Windows /s S: /f UEFI(若为UEFI模式)
或
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd(若为Legacy BIOS模式)
5、执行完成后输入exit退出命令提示符,重启并断开安装介质。
二、手动重建Windows EFI引导项
该方法适用于UEFI系统中EFI系统分区(ESP)未被格式化、Windows目录结构完整的场景,通过mount ESP并调用bcdboot命令重新注册Windows引导入口。
1、从Windows安装介质启动,进入“命令提示符”。
2、运行diskpart,执行list volume识别出标记为“System”的FAT32分区(即EFI系统分区)及Windows所在卷(如C:)。
3、假设EFI分区被分配为S:,Windows安装在C:,则执行:
bcdboot C:\Windows /s S: /f UEFI
4、若提示“找不到指定路径”,请确认C:\Windows\Boot\EFI\bootmgfw.efi存在;若不存在,需从另一台同版本Windows复制该文件至对应路径。
5、执行exit退出diskpart,关闭命令提示符,重启系统。
三、使用EasyBCD工具添加Windows引导项
该方法适用于已安装Linux且GRUB仍在运行、但Windows引导文件完好,仅需在GRUB中显式添加Windows启动选项的情形。
1、在Windows系统中下载并安装EasyBCD 2.4或更高版本(注意:仅支持Windows宿主环境运行)。
2、以管理员身份运行EasyBCD,点击“添加新条目”。
3、在“操作系统”选项卡中选择“Windows Bootloader”,类型设为“Windows 10/8/7/Vista”。
4、点击“添加条目”,随后转至“BCD部署”选项卡,点击“写入MBR”(Legacy)或“部署BCD”(UEFI)。
5、重启后若仍进入GRUB,需进入GRUB编辑模式(按c键),输入ls查看各磁盘分区,确认Windows EFI目录位置,再手动追加menuentry。
四、从Linux环境卸载GRUB并还原Windows引导
该方法适用于能正常进入Linux系统、且确认Windows引导文件未被删除的情况,通过Linux终端操作直接清除GRUB并调用efibootmgr恢复Windows启动管理器优先级。
1、在Linux中打开终端,执行sudo apt install efibootmgr(Ubuntu/Debian)或sudo dnf install efibootmgr(Fedora/RHEL)。
2、运行sudo efibootmgr -v列出所有EFI启动项,找到含“Windows”字样的启动项编号(如Boot0003)。
3、执行sudo efibootmgr --bootorder XXXX,YYYY(将Windows项编号置于最前,例如--bootorder 0003,0002)。
4、若GRUB仍强制接管,可卸载grub-efi-amd64-bin及相关包,并删除/boot/efi/EFI/ubuntu/目录(备份前确认/boot/efi/EFI/Microsoft/完整存在)。
5、执行sudo update-grub后重启,观察是否跳过GRUB直接进入Windows Boot Manager。
五、使用Boot-Repair-Disk专用修复盘
该方法适用于不熟悉命令行操作、希望一键恢复双系统引导的用户,Boot-Repair-Disk基于Ubuntu Live环境,内置自动化检测与修复逻辑,支持UEFI和Legacy混合场景。
1、从另一台电脑下载Boot-Repair-Disk ISO镜像,使用Rufus或dd写入U盘制作可启动盘。
2、从该U盘启动目标机器,选择“Boot-Repair”进入图形界面。
3、点击“Recommended repair”按钮,工具将自动扫描磁盘、识别Windows与Linux分区、重建GRUB配置并确保Windows条目可选。
4、修复完成后提示“Please reboot now”,此时拔掉U盘并重启。
5、若启动菜单中仍无Windows选项,可在Boot-Repair界面选择“Advanced options”→勾选“Restore the Windows bootloader as default OS”后再次执行修复。
# 自动化
# ai
# 操作系统
# windows
# 电脑
# 重启
# 适用于
# 未被
# 启动项
# 直接进入
# 计算机
# 工具
# win
# microsoft
# 命令提示符
# 选项卡
# linux
# ubuntu
# default
# debian
# u盘
# amd
# ios
# bios
# 若为
# 自动修复
# 另一台
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win11相机打不开提示错误怎么修_相机权限开启与
- Linux如何挂载新硬盘_Linux磁盘分区格式化
- Python多线程使用规范_线程安全解析【教程】
- Win11怎么关闭任务栏小图标_Windows11
- windows如何修改文件默认打开方式_windo
- Win11怎么开启游戏工具栏_Windows11
- Windows10电脑怎么设置电源按钮_Win10
- Win11怎么设置环境变量_Win11配置Path
- 如何在 Windows 11 中使用 AlomWa
- 如何在包含多值的列中精准搜索指定演员?
- Win11怎么关闭搜索历史_Win11清除设备上的
- PHP 中如何在函数内持久修改引用变量所指向的目标
- LINUX怎么查看进程_LINUX ps命令查看运
- 如何正确访问 Laravel 模型或对象的属性而非
- Ajax提交表单PHP怎么接收_处理Ajax发送的
- Win11怎么关闭触摸键盘图标_Windows11
- Win11怎么快速锁屏_Win11一键锁屏快捷键W
- Windows10如何删除Windows.old_
- Win11怎么设置任务栏图标大小_Windows1
- 如何在Golang中操作嵌套切片指针_Golang
- Python文件管理规范_工程实践说明【指导】
- Win10如何卸载Skype_Win10卸载Sky
- PHP cURL GET请求:正确设置认证与自定义
- C++中的std::shared_from_thi
- c# await 一个已经完成的Task会发生什么
- 如何解决Windows字体显示模糊的问题?(Cle
- Win11怎么更改默认打开方式_Win11关联文件
- Win10怎么设置开机密码_Windows10账户
- Win11如何关闭小娜Cortana Win11禁
- MAC如何快速搜索大文件_MAC磁盘空间分析与冗余
- Python生成器表达式内存优化_惰性计算说明【指
- 如何使用Golang template生成文本模板
- Golang如何避免指针逃逸_Golang逃逸分析
- Win11怎么更改输入法顺序_Win11调整语言首
- Windows的便笺功能如何使用?(桌面备忘技巧)
- PHP主流架构怎么处理表单验证_规则与自定义【技巧
- Win11怎么自动隐藏任务栏_Win11全屏显示设
- Go语言中CookieJar的持久化机制解析:内存
- 如何使用Golang实现错误包装与传递_Golan
- Win11怎么设置鼠标宏_Win11鼠标按键自定义
- Win11怎么更改系统语言_Win11中文语言包下
- Win10怎么卸载金山毒霸_Win10彻底卸载金山
- 如何使用Golang reflect检查方法数量_
- 如何在Golang中使用闭包_封装变量与函数作用域
- Mac如何修复应用程序权限问题_Mac磁盘工具修复
- 如何自定义Windows终端的默认配置文件?(Po
- PyTorch DDP 多进程训练在 Kaggle
- Win11系统更新后黑屏怎么办 Win11更新黑屏
- Mac怎么进行语音输入_Mac听写功能设置与使用【
- Windows10如何更改桌面背景_Win10个性

QQ客服