我有几台测试服务器,用于对我公司生产的一些 PCI 和 PCIe 板执行单元测试和硬件测试。这些服务器具有多重启动功能,安装了多个不同的 Linux 发行版和 Windows 版本。我想自动化测试,但它们需要能够在测试套件完成后自动重新启动到下一个操作系统。有没有办法使用 bash/batch 脚本重新启动到特定的操作系统?
他们目前使用 GRUB,无论 Ubuntu 12.04 附带哪个版本,但如果有一个可以使这更容易的引导加载程序,我并不反对使用不同的引导加载程序。
答案1
您可以在每次测试后更改 grub 设置,并设置另一个(下一个)默认启动选项。
因此,每次测试后,您都需要修改 grub 配置,将默认启动选项设置为下一个操作系统安装,然后重新启动。这可以在 Linux 中简单地编写脚本,但似乎在 Windows 中也可以做到(关联)。
答案2
有风险,需要进行一些测试,但为什么不编写脚本呢?
通过 shell 脚本生成 grub.conf,并在启动时运行 shell 脚本(例如将其放在 rc.local 中)
将您的脚本放入 /root/grubscript
有一个名为 /root/grubscript/wrapper.sh 的包装器(由 rc.local 运行)
假设你有四个操作系统,你需要创建四个 grub 文件
/root/grubscript/grub.conf.1.txt
/root/grubscript/grub.conf.2.txt
/root/grubscript/grub.conf.3.txt
/root/grubscript/grub.conf.4.txt
您的包装脚本将执行此操作(假设 grub.conf 位于 /boot/grub/grub.conf)
#!/bin/bash
cp -p /root/grubscript/grub.conf.1.txt /boot/grub/grub.conf
mv /root/grubscript/grub.conf.1.txt /root/grubscript/grub.conf.5.txt
mv /root/grubscript/grub.conf.2.txt /root/grubscript/grub.conf.1.txt
mv /root/grubscript/grub.conf.3.txt /root/grubscript/grub.conf.2.txt
mv /root/grubscript/grub.conf.4.txt /root/grubscript/grub.conf.3.txt
mv /root/grubscript/grub.conf.5.txt /root/grubscript/grub.conf.4.txt
你明白了。首先通过命令行运行它来手动测试它,并检查 /boot/grub/grub.conf 是否正确旋转
最后,为了以防万一,首先备份当前的 grub.conf
cp -p /boot/grub/grub.conf /boot/grub/grub.conf.ORIGINAL
准备一张安装 DVD,如果在重启过程中某个 grub 文件无法正常工作,可以启动到救援模式
这有帮助吗?