使用 ssh 替换引导加载程序

使用 ssh 替换引导加载程序

我们的服务器机房中有一台 PC,可以双启动 Windows 和 Linux。

显然,当我们需要重新启动机器时,我们可以进入它正在运行的系统并重新启动。

但是,由于显而易见的原因,我无法选择在引导加载程序上启动的操作系统。

除了安装 KVM 之外,还有其他方法吗?我们可以用可以接受 ssh 连接并允许我相应启动的东西来替换引导加载程序。

我不敢相信我是唯一一个认为这有用的人。

问候马克。

答案1

大多数 Linux 引导加载程序都提供了一种在下次重启时选择特定引导菜单项的方法:

  • lilo -R cmdline — 对于 LILO;
  • echo "savedefault --default=2 --once" | grub --batch — 适用于 GRUB Legacy;
  • grub-editenv可以用于 GRUB 2(这里您应该设置prev_saved_entry为您的正常默认值,并设置saved_entry为需要启动一次的系统,但这一切都取决于中的代码grub.cfg)。

您可以保留默认选择的 Linux,并在需要时使用这种一次启动机制启动 Windows。当您需要多次重新启动 Windows 时,这可能不太方便,但如果没有一次启动,当系统卡在默认启动 Windows 时,更改引导加载程序配置可能会很困难。但是,如果您添加另一个非常小的 Linux 安装,它会默认启动,监听 SSH 连接一分钟,然后指定在某个文件中配置的一次启动选择并重新启动,您甚至可以拥有持久的 Windows 重新启动配置,并能够在该延迟期间重新配置它。

如果您使用的是 Vista/2008 之前的 Windows(例如,仍在使用 NTLDR 和boot.ini),则另一个选择是使用 NTLDR 作为主引导管理器,并通过加载保存在文件中的引导扇区链接到 Linux 引导加载程序。然后,您就可以boot.ini从 Windows 和 Linux 进行编辑(如果您不害怕使用 ntfs-3g 从 Linux 访问 Windows 系统磁盘)。但是,这种方案更容易被破坏(尤其是当使用 LILO 作为 Linux 引导加载程序时,每次重新配置后都需要更新引导扇区文件)。

另一个选择是使用 PXE 远程启动与 PXELINUX 和 chain.c32 从特定的 HDD 分区继续启动,然后可以通过更改 TFTP 服务器上的配置文件进行切换 - 但是,这需要机器和启动服务器(DHCP 和 TFTP)之间的明文流量。

答案2

您可能还对硬件解决方案感兴趣,请参阅以太网串行终端

答案3

根据http://en.wikipedia.org/wiki/Comparison_of_boot_loaders#Technical_information http://kboot.sourceforge.net/接受 SSH 连接。

免责声明:我之前没有使用过 kboot,对它也不太了解。

相关内容