技术解析

Windows 总是删除 GRUB 的引导项,怎么破?
0
2021-06-17 16:51:26
idczone

我用的是一台联想笔记本,通过 UEFI 方式启动。部署完 GRUB (当时我创建了两个 300MiB 的 FAT32 格式的分区,一个给 Windows,一个给 Linux )之后,会往 NVRAM 里写一个启动项。但是一旦我重启到 Windows,这个启动项就会被删除。我还以为是因为它们在同一块硬盘导致的,于是我格盘在内置硬盘里装了 Debian,把 Windows 以 WTG 方式安装至一个 CZ880 U 盘中。

用了一阵子之后我发现 Windows 依然会删 GRUB 的引导项,无奈之下只得在部署 GRUB 的时候加上--removable参数,这个参数可以写一个引导文件至EFI/BOOT/BOOTX64.EFI的位置,给可移动设备引导用的,没想到在这里用上了。

这下没什么问题了,也能正常启动,但总觉得有些膈应,有什么办法可以让 Windows 与别的系统和谐相处吗?

Windows 是必须得用的,偶尔会玩玩游戏,推推 GalGame 啥的。


没遇见这种情况,我是 win10 和 Ubuntu 双系统,也是用 grub2 引导,一直正常使用

联想笔记本...启动 windows 后出事...难道又是 WPBT?

UEFI 的部分设计是丑陋的,建议继续用 Legacy BIOS,现在一些引导器甚至可以做到 BIOS + GPT

EPS 分区有两个?

我这没问题 可能是笔记本的问题 有些笔记本会给自己定制东西 建议换台笔记本再试试

新版的 Windows 好像不会覆盖已有的 EFI 分区了。半个月前装黑苹果和 win10 双系统,先黑苹果后 win10,win10 只是在 EFI 分区下添加了自己的引导,对分区中已有的文件没有做任何改动。对了,win10 版本是 1903

再买一台电脑,windows 的归 windows,ubuntu 的归 ubuntu,mac 的归 mac 。
我是说真的。

用 Windows 的引导引导 GRUB 即可

不需要创建多个 EFI 分区的。。

单个 EFI 分区就可以,安装的时候把 EFI 分区挂载到 /boot/efi 就行,我一直是这么干的。

手动创建 EFI 分区,从 win10.iso 复制 \EFI 全部文件到此根目录下
然后进 PE 使用略过引导的(比如"不更新 bcd"之类的选项)安装
最后使用 bcd 工具手动设置引导记录

一个 EFI 分区,空间划大一点

我现在都不用 grub 了,mount 那个 efi 分区到 /boot,然后内核文件就会装到 efi 分区里,然后用 systemd-boot 创建 efi 条目,配置好就行了
grub 也可以用 efi 方式安装

不要把 win 的 efi 分区和 linux 的 efi 分区都装到一个区域,win 的 efi 一个分区,对于 Linux 的 grub 也单独开一个分区,只不过在 grub 利引导两个系统,就可以了
这样,基本上两个系统都算互补干预了,grub 可以引导双系统,win 的 efi 分区只可以引导它自己的 win 系统

efi 是给主板固件读的,当然可以放 linux 的 efi 启动器。grub 或者 systemd 都可以。一个 efi 分区就行了

我也是在同一块硬盘上安装的 Windows 和 Linux,EFI 引导 grub / Windows Boot Manager,没出现 grub 引导项被删除的情况。不过每次 Windows 更新的时候它都会把 Windows Boot Manager 的启动顺序改成第一位……

但总觉得 MBR 引导修改起来太麻烦了,得用特殊软件改扇区。UEFI 就方便许多,只要是 FAT 的分区,把 EFI 文件放到正确的位置,直接就可以引导起来。

MBR 不应该经常变动,把单步自举引导器 wee63 写入,以后再也不需要修改
在 wee63 当中,直接可以载入 bootmgr 或者 grldr 等链式引导,UEFI 模式中的 EFI 文件就是多余的

刚刚试了试 wee63,感觉还不错。在 BOOTICE 里看到个叫 Plop Boot Manager 的引导器,感觉界面更好看。
我有个问题,MBR 在不使用别的引导器的情况下是不是只能引导一个系统啊,以前我给一台老笔记本(在某个暑假被我拆了,装不回去了)装系统的时候都不知道有引导扇区这个东西,现在对于 MBR 的特性也是半懂不懂。

MBR 里总是有一个引导器的,这个引导器如果是单一引导器,那么确实只能引导其所指向的特定系统
不过部分多引导器有些特别的反向兼容设计,可以被其他单一引导器引导,比如 grub4dos 可以通过 grub4dos.mbr 扇区文件被 ntldr 载入,那么单一引导器就变相获得了多引导能力

我可能得到最优解了,我现在是在磁盘上使用 GPT 分区表,创建一个 FAT32 分区和一个 1MB 的未格式化分区,1MB 的分区打上 bios-boot 的 GUID,再把 GRUB2 按照 EFI 的方式和 MBR 的方式安装两遍就行了。这样可以同时兼容 UEFI 和 MBR 启动,也不会受到 MBR 蛋疼的四个主分区的限制。

应该不是 Windows 删的,Windows 10 只有在系统大版本升级的时候才会改引导。估计是联想的 BIOS 的坑。
目前市面上很多品牌台式机和笔记本,甚至是组装机主板的 UEFI BIOS 对于非 Windows 系统的引导都有很多坑,明面上支持按照标准 UEFI 的规格设置引导项,实际上只有 bootmgfw.efi 和 bootx64.efi 两个文件保证能用,其它都是 bug 。

前些日子做 win 和 deepin 的双系统 就失败了 折腾了两天哪

证实了,确实是 BIOS 的问题。折腾黑苹果的时候在 pcbeta 下载了一份别人的成品 Clover,那人没有把 Windows 的引导删掉,我直接扔到 EFI 里面去,结果被 UEFI 识别出引导项了。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服