引导Linux之后无需重新启动就可以“返回”到GRUB


21

我在SSD上同时启动Windows和Linux,发现自己经常在两个操作系统之间切换。SSD非常快,一旦在GRUB中选择,两个操作系统都将在大约3秒钟内启动。但是,在我最终进入GRUB之前,BIOS,RAID和第二个SATA控制器的初始化需要花费永久的时间(约30秒)。

因此,我想知道是否有可能跳过这些初始化并在启动Linux后仅“返回” GRUB。理想情况下,我也可以在Windows中执行相同的操作,但我的希望不是很高:)

我在网上做了一些搜索,发现除了一个过时的linux加载程序-loadlin.exe,它可以在Dos或Windows 95/98中运行以启动Linux。因此,至少在不重新引导的情况下切换操作系统的概念并不是什么新鲜事物。任何人都知道当前的工具可以执行此操作吗?

如果不是,是否有技术问题阻止我们编写此类程序,或者仅仅是需求不足?

更新:我的一个朋友刚刚告诉我有关Kexec的信息。使用它似乎可以从正在运行的内核中启动不同的Linux内核,但是是否可以返回GRUB或直接启动Windows安装?


4
有趣的问题。我之所以对此兴趣不大的原因之一是,虚拟机最近得到了改进。大多数人只是在主虚拟机上的虚拟机中运行辅助操作系统,而不是双重引导。
Noufal Ibrahim 2011年

我也在考虑使用VM,但是我需要快速的图形性能,到目前为止,VM不能提供令人满意的性能。既然Xen(及以后的其他产品)已经为图形卡提供了完整的直通选项,则情况可能会改变。不过,看看是否有一种快速切换的方法仍然很有趣。关于第二条评论,我实际上并不了解unix.stackexchange.com。我一定会看一下,或者如果我不首先得到答案的话,可能会发布在那里。谢谢你的建议。

1
30秒 ?我认为在ibm服务器上大约5分钟。
Sirex

1
使用EFI引导加载程序应该可以(不知道如何)。对于MBR而言,要难一些,因为它们希望以16位实模式启动并自行设置所有内容,这在系统初始化一次后可能无法实现。
grawity 2011年

@Sirex:但是谁双重引导IBM服务器?:)
grawity 2011年

Answers:


6

使用kexec可以解决问题。无需参与GRUB。您可以使用kexec-loader从Linux内部直接引导到不同的操作系统。(确保将kexec支持编译到内核中。)


1
据我所知,kexec_load()syscall仅用于加载Linux内核。您链接的工具kexec-loader似乎也仅支持Linux内核。---可以启动例如memtest86,但我从未见过有人使用kexec机制直接启动Windows,但是可以通过GRUB进行如何从kexec + Grub4DOS直接启动到Windows
pabouk 2014年


2

检查是否有UEFI支持。这样可以大大提高启动速度。


这不能为问题提供答案。要批评或要求作者澄清,请在其帖子下方发表评论。
贾瓦

1
@Jawa OP遇到了问题,因为他的POST花费了无法接受的长时间。UEFI无疑缩短了这次时间:这是创建它的目的。
Milind R 2014年

2
这里有两件事:1)问题不是“我如何更快启动”,而是“启动后如何返回GRUB?” 2)最好将一行答案作为注释。
凯文·潘科2014年

谢谢你的建议。自从我发布原始问题以来,我已经更改了硬盘配置,而现在,我优化了BIOS中的某些设置以缩短启动时间。本质上,我可以禁用与RAID相关的功能(不再需要),还可以启用EFI引导。总体效果是启动速度更快。但是,最初的问题对我来说仍然很有趣,到目前为止,我还没有找到可靠的解决方案。
Dimitar Asenov

1

长话短说,而不是现在的工作方式。更好的方法可能是找出BIOS / RAID / SATA控制器花费这么长时间的原因。可能存在可用的BIOS更新,以及RAID控制器的固件更新。


POST缓慢的一种可能原因是您已将HDD控制器配置为自动检测BIOS中不存在的驱动器。如果您只有一个HDD和一个CD / DVD,则没有必要尝试自动检测其他2个(或4个)插槽,这些测试必须超时,并且可能需要一些时间。
哈卡2011年

1

否。除非您的BIOS具有特定的设置选项(在重新引导过程中跳过POST)(我见过一次),但自Windows 98 / ME(快速重新引导技巧实际上仅重新加载Windows)以来就不存在。

也许有足够时间启动黑客的人可以重现该错误并重新加载GRUB,但是它必须更改INIT重新启动系统的方式。


0

如果找不到按照Zeroedout建议的更新,则可能要在虚拟机中运行主机系统,因此重新引导几乎是免费的。

另外,某些系统具有快速/快速启动模式,其中省略了某些检查。您可能要检查一下。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.