我可以让 Grub2 像这样启动到 DOS 吗?

我可以让 Grub2 像这样启动到 DOS 吗?

我有一台笔记本电脑,它具有双启动系统,第一个主分区(另一个主分区)上装有 Windows NT4,扩展分区上装有 Lubuntu Linux,使用 grub2 作为 MBR 中的启动管理器。我希望在此磁盘的第二个主分区 [编辑:FAT16] 上添加第三个启动选项 ms-dos。

到目前为止,我已经在 /etc/grub.d/40_custom 中添加了以下脚本

menuentry 'DOS' {
    parttool(hd0,msdos1) hidden+
    parttool(hd0,msdos3) hidden-
    set root=(hd0,msdos3)
    chainloader +1
    parttool ${root} boot+
    boot
}

第二个主分区包含旧的 dos 启动盘的内容,其中包括以下文件:(command.com、autoexec.bat、ibmbio.com、ibmdos.com)等等。

当我运行 update-grub 时,os_prober 无法识别 dos 分区,我的自定义脚本被忽略,没有添加任何菜单项。如果我使用Grub 定制器覆盖 grub.cfg,添加了菜单项,但在尝试从该选项启动时,出现以下错误,我相信这是由 BIOS 报告的:“这不是可启动磁盘。请插入可启动软盘并按下任意键重试...”...此时按下一个键将立即返回到 grub 启动菜单。

所以我的问题是:1. 我能用这个系统配置在第二个主分区上启动到 ms-dos 吗?2. 我的 dos 分区是否需要一些额外的东西才能使其可启动?3. 我是否需要以某种方式在 grub2 之后和 dos 之前将 grub4dos 之类的东西添加到链中?(如果 1 和 2 可行,我想避免)4. 这个请求根本不可能吗?(此时我想我必须用这个刻录一张 CD老的我们要运行的 dos 程序)

答案1

回答我的问题,感谢 Dennis 的提示,我可以确认:

  1. 可以使用上面引用的脚本,使用 grub2 在第二个主分区上启动到 ms-dos(请参阅GNU GRUB 手册),但由于 update-grub/os_prober 无法自动获取系统,因此需要手动编辑 grub.cfg。
  2. 需要额外的文件才能实现这一点:仅仅复制软盘启动盘的内容是不够的。“sys c:”报告了有关磁盘空间不足的虚假错误,可能是由于 Dennis 上面提到的特殊扇区要求。我不得不使用 MS-DOS 6 启动盘执行“format c: /s” - 然后创建一个如上所述的可正确启动分区(仍然没有被 os_prober 拾取)。注意:dos 启动盘将字母 C: 分配给我的第二个主分区,因为它根本没有拾取 Windows NT4 分区。
  3. 我不需要在问题中引用的 grub2 脚本后添加任何其他启动管理器来执行此操作。
  4. 我的要求已经满足,但是我可能无意中导致 Windows NT4 引导加载程序在此过程中失败。我将把它作为单独的问题处理。

相关内容