我正在尝试使所有操作系统可启动 (Ubuntu + Windows XP + FreeDOS 1.2)。FreeDOS 无法启动,它提示缺少 NTLDR 并挂起系统。
启动信息:
我尝试在 XP 之前和 XP 之后安装 FreeDOS 1.2。都没有帮助。
安装 XP 后,我将 XP 的启动文件从 sdc1 移至 sdc2(XP 在 sdc2 上,FD 在 sdc1 上,Ubuntu 在 sdc3 上)并重新安装了 GRUB。XP 启动正常,但 FDOS 启动不正常。
如何使 FreeDOS 1.2 可启动?
答案1
我找到了解决办法。
我发现,当引导加载程序位于与操作系统文件所在的分区不同的分区时,Windows XP 可以加载。我以为 FreeDOS 能够做同样的事,但它做不到。
换句话说,ntldr 应该位于两个分区上,并且 boot.ini 的内容在不同分区上不能相同。sdc1 上的“boot.ini”可以加载两个操作系统,而 sdc2 上的 ntldr 只能加载 XP,因为 FD 不允许这样的调用链。
为了不过度依赖 GRUB,我创建了两个加载文件实例。sdc1 和 sdc2 均具有以下文件集:
boot.ini,
Bootfont.bin,
NTDETECT.COM,
ntldr.
/dev/sdc1 上的“boot.ini”内容如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect
C:\="FreeDOS 1.2"
/dev/sdc2 上的“boot.ini”内容如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect