解决老主板(纯 BIOS )无法识别 ubuntu to go 系统 1 m bios_grub 引导问题

问题

同事让帮忙重装系统,抱过来主机,一看,是2010年的主机,联想家悦系列,纯 BIOS 主板,只有磁盘 IDE 选项,对装系统倒是无妨。通过 U 盘尝试进入 Windows PE 系统,发现错误,难道说无法通过GPT格式的U盘在这种主板上引导至 Grub 里面的 WindwosPE 系统?之前接触过的主机都是较新的主板,所以一直也没遇到过这种问题。经过询问 AI 得知,无法正确识别到 Grub 引导,问题根源就是 1 m bios_grub 分区没有被主板识别到。提示内容是:error invalid arch-independent ELF magic. Entering rescue mode... grub rescue

解决

原因是 1m bios_grub 分区没有处于整个 GPT 磁盘的开头,而是处于esp 分区的后面,移动分区到最开头即可识别出来。中间纠结过 34 - 2047 扇区,后来经过反复论证,无法安装到 2048 之前的扇区,因为默认是 2048 对齐到 4K 要求。直接用 GParted 图形交互程序,删除 bios_grub 所在分区,然后把 esp 分区移动到 1m 空闲磁盘的后面,预留出 1m 空间。然后新建分区,选择文件格式为“已清空”,不需要格式,管理标识选择 bios_grub ,最后重新安装 grub 到这个分区即可。有可能需要先安装 grub-pc-bin 组件。

注意

还需注意一点,由于移动了 EFI 所在的分区,之前 ubuntu to go 系统使用过的所有主机,都需要手动删除本地主板的 ubuntu 引导记录,然后会自动生成新的。如果不删除,会永远有两个一模一样的开机引导磁盘的选项。因为扇区记录不同,主板已经记录了旧的扇区位置。

 

THE END