У меня есть несколько тестовых серверов, которые выполняют модульные тесты и тесты оборудования на некоторых платах PCI и PCIe, которые производит моя компания. Эти серверы являются мультизагрузочными, на них установлено несколько различных дистрибутивов Linux и редакций Windows. Я хотел бы автоматизировать тестирование, однако они должны иметь возможность автоматически перезагружаться в следующую операционную систему после завершения набора тестов. Есть ли способ перезагрузиться в конкретной операционной системе с помощью сценариев bash / batch?
В настоящее время они используют GRUB, независимо от версии, поставляемой с Ubuntu 12.04, но я не против использования другого загрузчика, если есть тот, который упростит это.
Вы можете изменить настройку grub после каждого теста и установить другой (следующий) вариант загрузки по умолчанию.
Поэтому после каждого теста вы должны изменить конфигурацию grub, установить параметр загрузки по умолчанию для следующей установки ОС и перезагрузиться. Это можно просто написать в Linux, но похоже, что это возможно и в Windows (ссылка на сайт).
Рискованно и потребует некоторого тестирования, но почему бы вам не написать сценарий?
Создайте свой grub.conf через сценарий оболочки и запустите сценарий оболочки при загрузке (например, поместите его в 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 не работает.
Это помогает?