Назад | Перейти на главную страницу

Автоматическая ротация ОС с помощью GRUB

У меня есть несколько тестовых серверов, которые выполняют модульные тесты и тесты оборудования на некоторых платах 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 не работает.

Это помогает?