You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从UEFI模式下通过GRUB引导BIOS分区

如何从UEFI模式下通过GRUB引导BIOS分区

嗨,这个问题我之前帮不少人踩过坑解决过——你说用chainloader只链得动UEFI系统,大概率是参数用错了方向!UEFI下的GRUB其实是可以引导MBR格式的BIOS分区系统的,核心是要让GRUB直接调用目标磁盘的MBR引导扇区,而不是去指向ESP分区里的EFI文件,具体操作可以按下面的步骤来:

临时引导(单次生效)

  • 开机启动到GRUB菜单时,按C键进入GRUB命令行模式
  • 先输入ls命令,列出当前识别到的所有磁盘和分区,比如会显示(hd0)(hd0,gpt1)(hd1,msdos1)这类标识,找到你要引导的BIOS系统所在的物理磁盘(比如(hd0),注意是整个磁盘,不是单个分区)
  • 依次输入以下命令:
    set root=(hd0)
    chainloader +1
    boot
    
    划重点: (hd0)替换成你实际的目标磁盘,+1代表该磁盘的第一个扇区(也就是MBR引导扇区),这才是BIOS系统的启动入口,而不是你之前可能指向的EFI文件。

永久添加到GRUB菜单(长期生效)

如果不想每次都手动输命令,可以把引导项加入GRUB菜单:

  • 打开终端,编辑GRUB自定义配置文件:
    sudo nano /etc/grub.d/40_custom
    
  • 在文件末尾添加以下内容(记得把(hd0)换成你的目标磁盘):
    menuentry "BIOS模式系统" {
        set root=(hd0)
        chainloader +1
    }
    
  • 保存退出后,更新GRUB配置:
    • Debian/Ubuntu系发行版:sudo update-grub
    • RHEL/CentOS/Fedora系发行版:sudo grub2-mkconfig -o /boot/grub2/grub.cfg

额外注意事项

  • 要确认目标磁盘是MBR分区表格式(BIOS系统通常用MBR);如果目标磁盘是GPT格式,那它必须有一个专门的BIOS Boot分区(大小约1MB,无盘符,类型标识为ef02),否则GRUB无法找到BIOS引导入口。
  • 如果上述方法还是不行,可以试试用GRUB的memdisk模块加载目标分区的引导扇区镜像,但这个场景下一般用前面的方法就足够了。

备注:内容来源于stack exchange,提问作者enigmaticPhysicist

火山引擎 最新活动