Я пытаюсь выработать некоторые детали для двойной загрузки, публичного использования (т.е. контекст публичной библиотеки), который работает под управлением Windows 7 и Linux.
Я использую Windows 7 и Linux Mint. Windows 7 работает на VHD-файле (образ файловой системы, такой как squashfs в Linux). Мне нужен grub для копирования различных файлов BCD и VHD на место до того, как он загрузит Windows.
Стратегия заключается в том, чтобы скопировать другой BCD-файл на место, чтобы изменить загрузку по умолчанию с WinPE (используется для загрузки Windows в режиме обслуживания), чтобы загрузить VHD-файл, который загружает снимок (т. Е. Базовую конфигурацию Windows), и если бы я мог сделать что в загрузчике grub2 это было бы идеально.
Я использую бесплатное "Steadier State" (http://www.steadierstate.com/) в качестве основы для загрузки с VHD. Требуется 2 цикла загрузки, чтобы гарантировать, что каждый перезапуск системы загружает согласованную базовую линию.
Хотя из коробки SS не предоставляет способ каждой базовой перезагрузке запускать базовую систему, я добавил скрипт завершения работы системы, который использует bcdedit для переключения ОС по умолчанию для загрузки. Он переключает его с загрузки VHD-файла на загрузку WinPE, которая оценивает условия и, если они верны, удаляет, затем воссоздает дочерний файл «snapshot.vhd», затем изменяет загрузку по умолчанию обратно на snapshot.vhd и затем завершает работу, вызывая базовую версию Windows. ОС для загрузки.
Если бы grub2 мог копировать файлы, я мог бы избавиться от необходимости загружать WinPE просто для того, чтобы заново создать snapshot.vhd и переключить ОС по умолчанию для загрузки.
Кстати, grub2 всегда загружает bootmgr, если выбрана "Windows 7". Файл /boot /BCD сообщает bootmgr, что загружать. В этом BCD есть только 2 загрузочных записи, одна для "Windows 7" (т.е. она загружает snapshot.vhd) или «Только для администраторов!", который загружает WinPE. Время ожидания в BCD всегда равно нулю, поэтому вы никогда не увидите меню bootmgr.
Техническое обслуживание выполняется путем вставки USB-накопителя, который (при обнаружении) меняет bootmgr на загрузочный WinPE, чтобы можно было объединить обновления базовой линии.