Программный способ выбора загрузочной ОС?

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

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

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

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


person Community    schedule 08.05.2009    source источник


Ответы (1)


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

На каждом из ваших разделов Windows необходимо установить драйвер Ext2 IFS и смонтировать созданный вами раздел 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 во время работы этой ОС.

person Ben Straub    schedule 13.07.2010