当前位置:首页 > 问答 > 正文

解决双系统切换问题:专注于恢复Windows启动的实用方法

我是如何把Windows从Linux手里"抢"回来的

前几天手贱,在已经装了Windows 10的笔记本上又装了个Ubuntu,结果开机直接给我整不会了——GRUB(Linux那个启动管理器)直接把Windows的启动项吞了,连个影子都没留😅,作为一个常年游走在"技术小白"和"伪极客"边缘的人,我开始了长达三小时的"抢救Windows"大作战……

第一步:别慌,先骂两句

发现Windows启动项消失的瞬间,我第一反应是:"完了,数据不会没了吧?"(后来证明纯属想太多),然后本能地掏出手机开始疯狂搜索"双系统 Windows不见了",结果跳出来的全是那种"三步解决"的营销号文章,点进去一看全是废话文学🤦‍♂️。

解决双系统切换问题:专注于恢复Windows启动的实用方法

这时候千万别乱操作!尤其是别听某些教程说的"重装系统就行"——你数据不要啦?

第二步:掏出U盘,但别急着插

我翻出之前做的Windows安装U盘,准备用"修复启动"功能,但插上去之前突然想到:万一修复完Linux也挂了怎么办? 毕竟我还挺喜欢那个花里胡哨的Ubuntu桌面的……

于是决定先试试更温和的方法——手动在GRUB里添加Windows启动项

GRUB急救小课堂

  1. 开机时狂按Shift(或者Esc,取决于你的电脑)进GRUB菜单。
  2. 选"高级选项",找个能进"root shell"的模式(不同系统可能叫法不一样)。
  3. 输入以下命令更新GRUB配置:
    sudo update-grub

    理论上它会自动扫描所有系统并添加启动项……但我的电脑偏不!

第三步:当GRUB不给面子时

上面那招没用?那就得手动编辑GRUB配置文件了。

  1. 在终端输入:

    sudo nano /etc/grub.d/40_custom
  2. 在文件末尾加上Windows的启动项(假设你的Windows在/dev/nvme0n1p1):

    menuentry "Windows 10" {
        insmod ntfs
        set root=(hd0,1)
        chainloader +1
    }

    (注意:hd0,1这部分得根据你的硬盘实际情况改,别照抄!)

  3. 保存后再次sudo update-grub,重启看看Windows回来了没。

    解决双系统切换问题:专注于恢复Windows启动的实用方法

…我的情况更复杂,因为我的Windows是UEFI启动,而GRUB死活不认,这时候只能祭出终极大招——用Windows安装盘修复引导

第四步:Windows安装盘,真香!

  1. 插上U盘,从它启动,选"修复计算机" > "疑难解答" > "命令提示符"。

  2. 输入:

    bootrec /fixmbr
    bootrec /fixboot
    bootrec /scanos
    bootrec /rebuildbcd

    这几个命令相当于让Windows重新"宣誓主权",把启动控制权抢回来。

  3. 重启后,Windows终于回来了! 🎉 但……GRUB又不见了😑。

第五步:平衡的艺术

现在的问题是:要么只能进Windows,要么只能进Linux,怎么让它们和平共处?

答案是:在Windows里装个EasyBCD,手动添加Linux的启动项,或者更硬核一点——回到Linux,重装GRUB

我选了后者,因为……折腾使我快乐?(并不)

sudo grub-install /dev/sda
sudo update-grub

重启后,终于! GRUB菜单里同时出现了Windows和Linux,泪目……

血泪教训

  1. 装双系统前先备份EFI分区(别学我头铁)。
  2. GRUB有时候很倔,别指望update-grub万能
  3. Windows的bootrec命令是救命稻草,但用多了Linux可能又得重装GRUB
  4. EasyBCD是个好东西,适合不想碰命令行的懒人。

现在我的电脑终于能自由切换了,虽然过程堪比"系统界的离婚官司"……但至少没数据损失,算是不幸中的万幸吧!💻🔥

(PS:如果你也遇到类似问题,欢迎评论区交流——毕竟,踩坑的路上不能只有我一个人😭)