Программный способ выбора загрузочной ОС? - PullRequest
0 голосов
/ 08 мая 2009

Я устанавливаю тестовый стенд, на котором я тестирую соединение устройства в нескольких ОС Windows. Я не могу сделать это на виртуальной машине (не могу виртуализировать доступ к устройству), поэтому у меня довольно многозагрузочная система. У меня есть скрипт для автоматизации процесса, но я хочу, чтобы он продолжался и закончился, выбрав следующую ОС для загрузки и запуска ее теста.

Одна проблема заключается в том, что XP / 2K3 использует boot.ini, а Vista и более поздние версии используют BCDEdit. Я мог бы вручную иметь два сценария ... один для каждого XP / 2K3 для редактирования boot.ini. А затем в BCDEdit для систем Vista. Хотя я бы не хотел жестко кодировать каждую из них, особенно если мне нужно изменить порядок и / или отключить определенные ОС в зависимости от условий тестирования.

BCDEdit также использует GUID для своих записей, что означает, что настройка на разных машинах будет означать, какой GUID перейти к следующему.

Есть мысли или намеки? Существуют ли какие-либо утилиты, которые помогают автоматизировать это?

1 Ответ

1 голос
/ 14 июля 2010

Я предполагаю, что ваши различные версии Windows размещены на разных разделах. Используйте Ubuntu LiveCD для установки GRUB и записи нескольких файлов конфигурации, в каждом из которых по умолчанию выбрана одна ОС. Создайте раздел HD для / boot и сохраните конфиги GRUB в том же месте.

Для каждого из ваших разделов Windows потребуется установить драйвер IFS Ext2 и смонтировать ранее созданный раздел EXT2 как z: или что-то в этом роде. Тогда ваш тестовый скрипт может сделать что-то вроде:

mountvol z: %bootvolname%
copy /y boot_to_vista_64.lst z:\boot\grub\menu.lst
shutdown -r -f -t 0 

%bootvolname% немного сложнее и зависит от ОС. Вам нужно будет хранить его с каждым разделом ОС, и вы можете получить его, выполнив mountvol z: /l во время работы этой ОС.

...