使用GRUB自动执行操作系统循环

我有几台testing服务器在我公司生产的一些PCI和PCIe板上执行unit testing和硬件testing。 这些服务器与多种不同的Linux发行版和Windows版本进行多重引导。 我想自动化testing,但是testing套件完成后,他们需要能够自动重启到下一个操作系统。 有没有办法重新启动到特定的操作系统,使用bash /批处理脚本?

他们目前使用GRUB,无论Ubuntu 12.04是什么版本,但我不反对使用不同的引导加载程序,如果有更容易的。

您可以在每次testing后更改grub设置,并设置另一个(下一个)默认引导选项。

因此,在每次testing之后,您将修改grubconfiguration,将默认引导选项设置为下一个操作系统安装,然后重新引导。 这可以简单地在Linux脚本,但似乎也可以在Windows( 链接 )。

危险的,需要一些testing,但你为什么不脚本呢?
通过shell脚本生成你的grub.conf,让你的shell脚本在启动时运行(例如把它放在rc.local中)

把你的脚本放在/ root / grubscript中

有一个名为/root/grubscript/wrapper.sh的包装器(由rc.local运行)

假设您有四个操作系统,您将创build四个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 

你明白了。 首先通过从命令行运行来手动testing,并检查/boot/grub/grub.conf是否正确旋转

最后,为了应急,先备份你当前的grub.conf

 cp -p /boot/grub/grub.conf /boot/grub/grub.conf.ORIGINAL 

如果在重新启动的时候有一个安装dvd方便启动进入救援模式,你的一个grub文件不起作用

这有帮助吗?