我想从 Linux 重新启动到另一个系统(满足我当前需要的可启动 CD)。
我不想修改当前的引导加载程序,也不想修改 BIOS 设置。
某些 Linux CD 可以从 Windows 运行(Windows 停止,而 Linux 从 CD 运行)。
我怎样才能从 Linux 做同样的事情?
小智 8
您可以grub4dos使用kexec:
kexec -l grub.exe
kexec -e
Run Code Online (Sandbox Code Playgroud)
然后 Grub4dos 可以从 CD 启动:
cdrom --init
cdrom --hook
chainloader (cd0)
boot
Run Code Online (Sandbox Code Playgroud)
片段来自Grub4dos 教程。
您也许可以使用kexec.
是的,kexec旨在引导内核,但没有什么能阻止您kexec访问任何您想要的二进制文件(一个“静态链接”二进制文件,它不依赖于库或现有的运行操作系统,旨在在预启动条件下运行),无论引导加载程序甚至 memtest86 - 该页面讨论了您可能陷入的一些陷阱。例如,如果它是文本模式引导加载程序,您应该在发出kexec.
如果您使用的是 Debian kexec-tools,那么在发出kexec命令之前,它会执行所有正常的关闭步骤,包括切换回文本模式。
什么kexec也不会做的是引导磁盘或磁盘映像,但你可以从CD中提取引导程序,并把它传递给KEXEC。如果启动 CD 在驱动器中,我不明白为什么它不起作用,但我还没有尝试过。
在 RAM 中解压 .iso 并让 .iso 的引导加载程序从中运行,而引导加载程序不知道这种情况在技术上是可行的,但非常困难。我不知道有任何实用程序能够做到这一点,也不相信任何实用程序存在。