grubinst.exe 是一个控制台模式程序,用于将 GRUB4DOS 启动代码安装到 MBR 或分区启动扇区。
我从GRUB4DOS 项目页面grubinst_1.0.1_bin_win.zip,我认为它适用于 32 位 Windows。
但我可以在 64 位 ubuntu 中运行它
$ ./grubinst.exe --version
grubinst version : 1.0.1
答案1
Linux 上有所谓的binfmt
支持,允许将任意二进制文件(例如 Windows 可执行文件)执行传递给某些知道如何处理它的 Linux 应用程序(例如 wine)。
此外,bootlace.com 是一个特殊格式的二进制文件,它具有 ELF 标头以及 Linux 和 DOS 代码:ELF(Linux 可执行文件)标头必须放在文件的开头,而 DOS 代码必须从位置 0x100 开始(请记住,COM 不是 PE、NE 或 MZ 可执行文件,它只是一段代码),因此 ELF 标头将 Linux 文件加载器重定向到位于 DOS 之后的 Linux 代码。
答案2
您是否安装了 wine(或类似的东西)?那么就可以正常工作。尝试
sudo update-binfmts --display
答案3
也许是因为你已经安装了 wine。
Wine 运行后台守护程序,以允许 Windows .exe 文件以与普通 Linux 程序相同的方式运行。
然而,您可能会发现该程序仍然无法写入 MBR,这仅仅是因为 wine 没有实现这种功能。