news 2026/8/18 13:09:26

Windows + Ubuntu 双系统开机直接进 Windows 的解决记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows + Ubuntu 双系统开机直接进 Windows 的解决记录

Windows + Ubuntu 双系统开机直接进 Windows 的解决记录

问题

安装 Ubuntu + Windows 双系统后:

  • F12可以手动选择 Ubuntu
  • 选择 Ubuntu 后,GRUB 可以正常显示 Ubuntu 和 Windows
  • 但如果开机不操作,就会直接进入 Windows

说明:

Ubuntu 正常 GRUB 正常 Windows 正常

真正的问题是:

BIOS/UEFI 每次重启都会把 Windows Boot Manager 放到第一启动项。


尝试过的方法

1. 修改 GRUB 菜单

编辑:

sudonano/etc/default/grub

修改:

GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=10

然后:

sudoupdate-grub

这一步成功,GRUB 可以显示 Ubuntu 和 Windows。


2. Ubuntu 中修改启动顺序

查看:

sudoefibootmgr

修改 Ubuntu 为第一启动项:

sudoefibootmgr-o0003,0000,0001

虽然当时修改成功,但重启后又变成 Windows 第一。

所以失败原因是:

BIOS 重启后又把 Windows Boot Manager 调回第一位

3. Windows 中修改 UEFI 启动顺序

管理员 CMD:

bcdedit /enum firmware

然后把 Ubuntu 调到第一位。

修改成功,但重启后还是被恢复成:

Windows Boot Manager 第一

所以再次确认:

这台电脑的 BIOS 会自动优先 Windows Boot Manager。


最终成功的方法

既然 BIOS 一定要启动 Windows Boot Manager,那就不再修改“谁排第一”。

而是修改 Windows Boot Manager 实际加载的 EFI 文件。

修改前先备份:

bcdedit /export C:\bcd-backup

然后执行:

bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi

检查:

bcdedit /enum {bootmgr}

看到:

path \EFI\ubuntu\shimx64.efi

修改成功。


原理

原来的启动过程:

BIOS ↓ Windows Boot Manager ↓ Windows

修改后:

BIOS ↓ Windows Boot Manager 入口 ↓ Ubuntu shim ↓ GRUB ↓ 选择 Ubuntu / Windows

也就是说:

BIOS 还是认为自己在启动 Windows Boot Manager,但实际上这个入口被改成先加载 Ubuntu 的 GRUB。

这样就绕过了 BIOS 强制 Windows 第一的问题。


目前的小问题

进入 GRUB 前会短暂出现类似:

Invalid Parameter falling back to default loader

停留几秒后仍然可以正常进入 GRUB。

目前不影响正常使用,所以暂时不继续修改。


恢复方法

如果以后想恢复成开机直接进入 Windows,在 Windows 管理员 CMD 执行:

bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi

然后检查:

bcdedit /enum {bootmgr}

看到:

path \EFI\Microsoft\Boot\bootmgfw.efi

就恢复完成。


总结

这次问题的核心:

BIOS 总是自动把 Windows Boot Manager 放第一

普通修改启动顺序的方法都会被恢复。

最终解决思路:

不再改启动顺序 而是让 Windows Boot Manager 入口先加载 Ubuntu GRUB

最终实现:

开机 ↓ GRUB ↓ 选择 Ubuntu / Windows
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/18 13:05:56

Boost.Statechart:C++中构建类型安全层次化状态机的完整指南

1. 为什么我们需要一个“正经”的状态机库? 在软件开发的日常里,尤其是涉及复杂业务流程、设备控制、协议交互或者游戏逻辑时,“状态”和“状态转移”这两个概念几乎无处不在。你可能随手就用 enum 加一堆 if-else 或者 switch-case 撸…

作者头像 李华
网站建设 2026/8/18 13:04:01

深入解析端口复用:从TCP/UDP基础到SO_REUSEADDR/SO_REUSEPORT实战

1. 先搞清楚“端口独占”到底在说什么“同一个端口能不能被多个进程监听?” 这个问题,我见过太多人栽跟头,尤其是在面试和实际部署时。很多人被“端口独占”这个词骗了,以为只要端口被占用,其他进程就绝对碰不得。其实…

作者头像 李华
网站建设 2026/8/18 13:01:02

TopoClaw:构建以人为中心、拓扑感知的下一代智能体操作系统

1. 项目概述:从“工具”到“伙伴”的智能体操作系统 在人工智能领域,我们正站在一个关键的转折点上。过去几年,我们见证了从单一任务模型到通用大语言模型的飞跃,但这些强大的模型在真正融入我们的日常工作流时,常常显…

作者头像 李华
网站建设 2026/8/18 13:00:27

三步驯服Mac菜单栏:Ice如何把20个乱窜图标收进一个可控区域

三步驯服Mac菜单栏:Ice如何把20个乱窜图标收进一个可控区域 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 你的菜单栏真的还属于你吗?随便数一数:Wi-Fi、电池、输…

作者头像 李华
网站建设 2026/8/18 13:00:08

嵌入式RTOS选型指南:KT决策矩阵构建与实战应用

1. 项目概述:为什么需要一个RTOS选型决策矩阵?在嵌入式开发领域,选择一个合适的实时操作系统(RTOS)从来都不是一件简单的事。这不像选一个开发板或者一个编译器,有明确的性能指标可以对比。RTOS的选择&…

作者头像 李华