Linux娘救援行动
Linux娘救援行动
前言
和Linux娘相处的日子久了,你就会发现一件事——
她其实很少真正闹情绪。
终端里那刺眼的红色报错、突然拒绝服务的SSH连接、启动时漆黑的GRUB命令行……在初遇时,它们像是一连串坏脾气,让你手足无措,甚至想拔电源逃跑。但请相信我,每一次看似不讲道理的“罢工”,背后都藏着一个清晰的原因,和一条通往救赎的明确路径。
和现实中的人相比。Linux娘不是任性,她只是太诚实了。
她的每一个报错信息,每一行日志,都是她在用自己独有的语言向你描述问题所在。
她不会像现实世界里的某些存在那样,明明心里有气却不告诉你为什么。她总是把原因清清楚楚地写给你看,用 error、用 warning、用 permission denied——只要你愿意听,她就愿意讲。
正因为如此,我把自己这些翻车、救急的经历收集起来,开辟了《Linux娘救援行动》这个小系列。它不是一本高高在上的故障手册,而是一本急诊室的便签集,记录着我在与Linux娘朝夕相处中遇到的那些奇奇怪怪的状况,以及最后是怎么把她哄好的。
你可能会发现,很多真正的解决方法并不复杂,只是需要看懂她的那些报错到底指的是什么。
一旦理解了她的语言,你就能从一个慌乱的新手,慢慢变成能和她从容对话的伙伴。
双系统翻车救援全记录——从手抖删分区到徒手战GRUB
幻影忍者前情提要:
给笔记本装上Windows+Linux双系统,是很多技术爱好者迈出舒适区的第一步。然而,上得山多终遇虎——我就在一次头脑发热后,亲手删了Linux分区,却忘了清理引导,重启瞬间面对漆黑屏幕上冰冷的grub>提示符……
本篇踩坑实录,将完整记录这次翻车从懵圈到救援的全过程,顺便帮你理解开机引导的逻辑。
起因:一场注定翻车的双系统实验
前段时间,我突然萌生了一个想法:让我的爱机(一台ROG笔记本本)同时跑Windows 10和Ubuntu 24.04。在服务器上与Linux娘相处多日,我想试试在笔记本上也给她安个家。
安装过程倒还算顺利——做U盘启动盘、磁盘压缩、开机狂按ESC进启动菜单……Ubuntu娘顺利入住了我为她准备的100GB分区。
然而现实很快给了我沉重一击:无论如何调整驱动和传感器配置,就是没办法完美控制笔记本的风扇转速。风扇要么不转,要么飞机起飞,CPU温度像过山车一样。经过将近一周的折腾,我疲惫地得出一个结论:
“果然Linux娘这种存在,还是该老老实实地呆在服务器机架上口牙!”
于是一个风和日丽的下午,我打开Windows 10的磁盘管理,选中Ubuntu所在的分区,右键——删除卷。分区瞬间变回未分配空间。看着清爽的磁盘布局,我心满意足地点下了“重新启动”。
这一下,出事了。
翻车现场:漆黑的GRUB界面
重启后我等着Windows标志的亮起,然而屏幕只吐出了一行冰凉的文字:
GNU GRUB version 2.12
Minimal BASH-like line editing is supported...
grub>
一瞬间,我仿佛听到了灵魂出窍的声音。对,我删了Linux的分区,但是 GRUB引导程序 我还牢牢装在硬盘EFI分区里呢!系统按照开机顺序找到GRUB,GRUB却找不到它依赖的配置文件(/boot/grub/grub.cfg已经在刚才被删掉了),于是它只能卑微地缩成一个命令行。
如果你是第一次见到这个界面,可能会慌。但别怕,跟着我走,有两种方式把它捋顺。
救援方案一:通过BIOS硬切换启动项
这个方法适用于 能正常进入固件设置(BIOS/UEFI) 的情况。
-
重启,狂按进入BIOS的快捷键
不同品牌的主板快捷键不同,常见的有:- 华硕/ROG:
Delete或F2 - 联想:
F2或Fn+F2 - 戴尔:
F2 - 惠普:
F10 - 宏碁:
F2 - 台机主板多为
Del
如果你实在抓不准,可以开机时看屏幕底部提示(一般只有短短一秒),或者直接每个键都试试。
- 华硕/ROG:
-
在BIOS里找到启动顺序设置
切换到Boot选项卡,在启动顺序列表中找到Windows Boot Manager,把它调整到第一位。如果有多个硬盘,注意选对安装Windows的那块盘。 -
保存并退出
按F10保存配置并重启。顺利的话,可爱的Windows锁定界面就会出现。 -
进系统后,彻底移除Linux引导项
为了避免以后GRUB又偷偷跑回来,建议使用 EasyUEFI 这个Windows小工具。打开后,找到标签为ubuntu或Linux的启动项,直接删掉。至此,引导区干干净净。
这个方法最简单,但前提是你能进BIOS——可惜我并没有那么顺利。
救援方案二:快速启动开着的绝望与GRUB命令行自救
“平滑关机”听着美妙,但 快速启动 这玩意儿有个著名副作用:它会跳过完整的POST(硬件自检),导致你狂按BIOS快捷键根本没反应,电脑直接一头扎进GRUB。
此时你面对的就是那个黑底白字的 grub> 命令行。别慌,它是可以手撸出Windows来的。
核心思路
GRUB是一个微型操作系统选择器,它有自己的一套命令可以浏览磁盘分区、找到并加载Windows的引导文件(bootmgfw.efi)。我们只需要告诉它:哪个分区、哪个文件、然后启动。
实操记录
在 grub> 提示符下,一步一步来:
# 1. 查看GRUB能看到的所有磁盘和分区
ls
输出类似:
(hd0) (hd0,gpt1) (hd0,gpt2) (hd0,gpt3) (hd0,gpt4)
hd0 代表第一块硬盘,gpt1 代表GPT分区表下的第1个分区。大部分笔记本只有一块硬盘,所以我们就在 hd0 上找。
2. 寻找Windows引导文件
Windows的UEFI引导文件路径比较固定:/efi/microsoft/boot/bootmgfw.efi。我们可以逐个分区尝试加载:
ls (hd0,gpt1)/efi/microsoft/boot/bootmgfw.efi
如果回显直接显示了文件路径,比如:
(hd0,gpt1)/efi/microsoft/boot/bootmgfw.efi
那就找到了!如果返回 error: file not found,没关系,换一个分区号继续试(gpt2、gpt3……)。通常第一个分区就是EFI系统分区(ESP),但保险起见我们逐区检查。
3. 设置根分区并加载引导
找到文件所在分区(假设是 hd0,gpt1)后,执行:
set root=(hd0,gpt1)
chainloader /efi/microsoft/boot/bootmgfw.efi
set root告诉GRUB之后的操作以这个分区为根目录。chainloader表示把启动指挥权“链接”给另一个引导器(这里是Windows的引导器)。
4. 启动
boot
输入完这三个字母,按下回车,一股清风拂面——屏幕闪动间,Windows加载圈转了起来。救活了!
5. 善后:别再留隐患
进系统后和方案一一样,记得用 EasyUEFI 把残留的Linux启动项删干净,以免下次开机又出乱子。
如果你不想装第三方工具,也可以用Windows自带的 bcdedit,但EasyUEFI对新手更直观,搜一下就能下载。
复盘:为什么会这样?
UEFI启动流程简析:
- 开机 → UEFI固件读取EFI系统分区里的启动项列表。
- 每个操作系统在安装时会在EFI分区里写入一个引导器(比如
\EFI\ubuntu\grubx64.efi或\EFI\Microsoft\Boot\bootmgfw.efi)。 - 启动顺序按BIOS里的设置挨个尝试,谁排在前面就引导谁。
我在装Ubuntu时,它很“贴心”地把自己的 ubuntu 启动项排到了最前面。删掉Linux分区后,/boot 目录没了,GRUB无法加载配置,于是就成了无头苍蝇,但它的引导二进制文件还在EFI分区里,所以开机的第一棒还是交到了GRUB手里。
教训:删除双系统中的任何系统前,一定先进BIOS把启动顺序调整好,或者干脆先删除启动项再删分区。
彩蛋:进不去BIOS的另一种解法(适用于Windows可启动但快速启动锁死)
有些电脑即使快速启动开着,也可以强制进BIOS。在还能启动Windows时:
- 按住
Shift键点击“重启”,会进入高级启动选项。 - 选择 疑难解答 → 高级选项 → UEFI固件设置,点“重启”就会自动跳进BIOS。
这也是一个免快捷键进BIOS的保底技巧。
总结
| 情况 | 解决方案 |
|---|---|
| 能进BIOS | 调启动顺序把Windows Boot Manager放首位,进系统后删Linux启动项 |
| 进不去BIOS(快速启动) | 在GRUB命令行手动查找并链式加载Windows引导文件 |
| 预防措施 | 删双系统前先调整启动顺序+删除启动项,或直接用EasyUEFI清理 |
| 通用省心技巧 | 开启快速启动时留意“Shift+重启”进UEFI设置的功能 |
这次翻车虽然让人一身冷汗,但也亲手摸了一遍UEFI引导的脉络