Моя команда разрабатывает приложение, которое должно работать на нескольких платформах (linux [32/64], windows [32/64]) и включает 3D-рендеринг (OpenGL). Мы хотим автоматизировать наши тесты, используя сервер с платой nvidia.
Мы пытались использовать Xen Server (Free Edition) для виртуализации всех платформ, которые мы хотим протестировать, но нам не удалось заставить виртуальные серверы работать с платой nvidia. Затем мы провели несколько тестов с VirtualBox, но его 3D-ускорение не подошло для наших целей.
Теперь мы думаем об установке всех ОС на сервер в качестве конфигурации с несколькими загрузками. Кто-нибудь знает какое-то решение, которое позволяет удаленно управлять этим сервером, чтобы мы могли удаленно загружать и перезагружать его с выбранной нами ОС? Таким образом, можно было бы легко автоматизировать процесс тестирования на всех платформах.
Я также открыт для других возможных решений.
Если вы используете grub в качестве загрузчика, когда вы будете готовы переключиться на следующую ОС, вы можете изменить grub.conf, чтобы иметь другой загрузочный раздел по умолчанию, а затем при перезагрузке он перейдет к следующей ОС. В Windows вам нужно будет установить драйвер ext2, но это не так уж сложно.
Использование grub и изменение ОС по умолчанию в grub.conf, как предлагает @Dan, неплохой вариант, но вместо этого я бы предложил IP KVM, что позволит вам удаленно управлять своим компьютером, включая операции BIOS и загрузчика, буквально из любого места, где есть подключение к Интернету.
Если вы пойдете по этому пути, я рекомендую установить длительную задержку автоматической загрузки, чтобы компенсировать неизбежную задержку в сети, или, возможно, даже полностью отключить автоматическую загрузку, чтобы каждый раз вручную выбирать ОС для загрузки. Сама по себе она не «автоматизирована», но дает вам полный контроль над загрузкой удаленной системы и не требует внесения каких-либо изменений в какую-либо из основных операционных систем.
Помимо предложения Дэна (которое, вероятно, является лучшим выбором, если вы используете GRUB), единственное, что я могу придумать для «автоматизации» загрузчика, - это подключить последовательную консоль к отдельной машине и использовать Ожидать или что-то подобное для взаимодействия с загрузчиком.
Общее предположение о загрузчиках: либо (а) никого не будет рядом, и в этом случае должна быть запущена «стандартная» ОС, либо (б) кто-то будет у консоли, чтобы выбрать нужную ОС. Это не похоже на область, которая привлекает много внимания специалистов по автоматизации ...
С одной машиной это может быть больше проблем, чем она того стоит, но если у вас было несколько машин, которые должны были загружать различные конфигурации, вы можете рассмотреть возможность использования GRUB-PXE чтобы загрузить конфигурацию загрузки по сети. Это позволит вам изменить значения того, что будет загружаться в одном месте, без зависимости от загружаемого блока и доступной файловой системы.
В Windows, iReboot будет делать то, что вам нужно, позволяя вам выбрать ОС для перезагрузки вашего ПК (только один раз или несколько раз) из среды, в которой вы вошли в систему. Однако вам нужно будет настроить разные операционные системы для мультизагрузки под управлением BOOTMGR / BCD, а не GRUB / GRUB2.
Я знаю, что это старый поток, но я нашел решение своей проблемы.
Я использую Win7 только для запуска EasyBCD и iReboot. У меня также есть несколько вариантов Linux и все, что я могу найти для тестирования. Для удаленного управления моей машиной я использую Teamviewer.
Я создал отдельную папку для каждой ОС, которую я хотел загрузить, в папке «boot», содержащей файл bcd.
Затем я использую EasyBCD, чтобы изменить значение по умолчанию для каждой ОС и сохранить этот файл bcd в соответствующей папке.
Когда я использую вариант Linux или другую ОС, помимо Win7, я просто копирую и вставляю желаемый файл bcd в папку «boot» и перезаписываю существующий.