惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
GbyAI
GbyAI
WordPress大学
WordPress大学
小众软件
小众软件
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
A
About on SuperTechFans
月光博客
月光博客
F
Fortinet All Blogs
宝玉的分享
宝玉的分享
Microsoft Security Blog
Microsoft Security Blog
大猫的无限游戏
大猫的无限游戏
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
Jina AI
Jina AI
博客园 - 聂微东
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
N
News | PayPal Newsroom
PCI Perspectives
PCI Perspectives
Last Week in AI
Last Week in AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
Hacker News: Ask HN
Hacker News: Ask HN
B
Blog
aimingoo的专栏
aimingoo的专栏
P
Privacy International News Feed
Martin Fowler
Martin Fowler
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
NISL@THU
NISL@THU
Know Your Adversary
Know Your Adversary
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - 叶小钗
N
News and Events Feed by Topic
T
The Exploit Database - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
S
Security @ Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threatpost
IT之家
IT之家
B
Blog RSS Feed

251 的魔法实验室

通过 Ansible 给各个 Server 做自动化升级 我的 2025 离线更新 Home Assistant 2025.02 日本游记 Vol. 2 JetKVM 初上手体验 2025.02 日本游记 Vol. 1 我的 2024 Fedora 41 下面安装 fcitx5 w/ RIME 我的 5.10.1 代 homelab
记从 Windows 启动 Linux 的心得
251 的魔法实验室 · 2025-02-15 · via 251 的魔法实验室

坑,都是坑

0x00 前言

最近主要是装了一台新的测试机器,在测试工作用东西的同时想把这台机器拿来当串流游戏的体验机,故孪生了 Windows 和 Linux 双系统启动的想法,没想到这却是几个小时的坑。我的想法其实很简单:

因为这台电脑没有 PiKVM 这种设备(我 12 月买的 JetKVM 到现在都没发货,垃圾),也没有 IPMI 管理界面,并且因为是 headless 没有显示器和键盘接入。 已经在测试主板好坏的时候关闭了 Secure Boot。 我想在电脑上安装 Windows 和某为的 Linux 发行版,Windows 先 Linux 后。 我希望默认每次开机冷启动都自动进入 Windows。 如果需要进入 Linux 发行版,需要在别的电脑上 RDP 到 Windows 环境内,然后通过做某些操作,可以让重启之后临时进入 Linux 发行版。但下一次冷启动或者在 Linux 内 reboot 又会进入 Windows。

那我该怎么做呢?

0x01 失败的解决方法

假设两个系统都已经安装好了。那么可以先在 Windows 下使用 bcdedit /enum firmware 查看所有 UEFI 的启动项,然后记下 Linux 启动项的那个 identifier,随后执行 bcdedit /bootsequence "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}",这样就可以在下次开机的时候进入 Linux,而在 Linux 内重启之后就生效。

...你以为这么简单就错了。我在执行之后重启发现了这个错误:

File: \EFI\openEuler\shimx64.efi
Status: 0xc000007b
Info: The application or operation system couldn't be loaded because a required file is missing or contains errors.

一开始我以为是 efi 文件可能有问题,需要使用 grubx64.efi,所以我进入了 Linux 发行版后用 efibootmgr 来新增了一个启动项:

# 可以先用 fdisk -l 看一下哪个是 EFI 的盘
sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L "openEuler-win" -l '\EFI\openEuler\grubx64.efi'
# 然后查看是否有新增了引导项
sudo efibootmgr
# 如果要删除的话,假设新增到第二个引导项了,那么删除的话使用下面这个命令
sudo efibootmgr -b 2 -B

随后,我重新进入 Windows 用这个新的引导项去引导,未果。Google 了半天,也没有任何一个 guide。

当时满头雾水的我大概在 EasyBCD 的 Wiki 里面找到了原因

...It abides by the restrictions Microsoft has placed on the bootloader that will block any attempts to load non-Microsoft-signed kernels (including chainloaders) from the top-level BCD menu...

原来是这样的吗?(剧透:并不是)

0x02 换个方法

那这样的话,换个方法总行了吧!我们每次开机冷启动进入 Linux,然后进入 Linux 后再通过某种方法来进入 Windows 吧!

这种解决方法倒是很简单,只需要运行这个就可以了:

# 这里的 2 代表是开机的 grub 启动项内第二个,最上面那个为第零个。
# 部分发行版可能程序名为 grub-reboot
sudo grub2-reboot 2

随后重启就能进入 Windows 了,而再次重启或冷启动依然会进入 Windows。

不过我不死心!

0x03 意外发现

继续偶然搜索发现了一个叫做 efinextboot 的妙妙小工具,号称能在 Windows 下启动 Linux。我试了一下还真的可以(虽然自动重启不工作),但我看了 README 感觉跟我的解决思路一样,我错在哪里了呢?


如果喜欢本文,欢迎点击下方的「鼓掌」按钮!

如果上面没有加载出任何东西,可以点击这里