我有几台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文件不起作用
这有帮助吗?