Создание мультиустановочного DVD с дистрибутивами Windows в среде GRUB4DOS

OSzone.net » Microsoft » Автоматическая установка » Автоматическая установка Windows XP » Создание мультиустановочного DVD с дистрибутивами Windows в среде GRUB4DOS
Автор: truvo
Иcточник: www.oszone.net
Опубликована: 31.07.2012

На oszone.net описана подготовка мультиустановочных компакт-дисков с помощью Bootable CD Wizard (BCDW). С той же целью можно использовать и среду GRUB4DOS. Основное назначение GRUB4DOS — выборочная загрузка операционных систем при мультисистемной конфигурации компьютера, но в целом возможности этого загрузчика на порядок шире возможностей BCDW. Большее количество разновидностей загружаемых образов, корректное взаимодействие с другими загрузчиками (ISOLINUX, SYSLINUX) — эти и другие качества обеспечили широкое применение GRUB4DOS при сборке LiveCD и аварийно-спасательных комплектов.

А вот для установки операционных систем GRUB4DOS применяют значительно реже. При этом в большинстве случаев дистрибутивы Windows находятся на носителе в виде ISO. Это упрощает сборочные работы, но увеличивает требования к оперативной памяти и несколько замедляет установку ОС. Если для вас эти параметры не критичны, вы можете найти на тематических форумах соответствующие инструкции.

Здесь же мы рассмотрим объединение на одном носителе (DVD) нескольких дистрибутивов Windows с самой обычной структурой. Предлагаемый способ основан на материалах конференции www.911cd.net и статьи Совмещение нескольких ОС семейства NT на одном диске. Замечу, что в моих экспериментах рецепты, данные по первой ссылке, не привели к желаемому результату, и помогло только скрещивание двух методик — «нашей» и «чужой». Ниже приводится последовательность действий по самостоятельной сборке мультиустановочного DVD, затем для самых любознательных будут даны некоторые пояснения.

Формирование структуры мультиустановочного DVD

  1. Создайте рабочую папку проекта — пусть это будет папка C:\bootcd. Учтите, что в именах папок, используемых в проекте, не должно быть дефисов: версия GRUB4DOS, которую мы будем использовать, реагирует на такие имена неадекватно. В рабочую папку будет складываться всё то, что впоследствии должно оказаться в корне DVD.
  2. Создайте в папке bootcd две папки XP_1 и XP_2 для дистрибутивов Windows XP. Предположим, например, что у вас имеется чистый дистрибутив и дистрибутив с дополнениями и интегрированными драйверами, или же — русская и украинская локализованные версии системы.
  3. Скопируйте в папки XP_1 и XP_2 содержимое дистрибутивов (можно исключить только известные папки, которые безболезненно удаляются при урезании дистрибутивов).
  4. Создайте в папке bootcd папки 1WXP и 2WXP, в которых будут находиться загрузочные файлы для дистрибутивов XP_1 и XP_2. Имена загрузочных папок должны состоять из 4 символов и начинаться с цифры или с буквы, максимально близкой к началу латинского алфавита.
  5. Поместите в папку bootcd файл MAKE_BOOT_FOLDER.EXE (всё, что понадобится при сборке, прилагается в файловом архиве).
  6. Запустите этот GUI-скрипт, укажите в его полях (см. рисунок 1) для первого дистрибутива исходную папку XP_1 и папку назначения 1 WXP . Имена папок можно вводить с клавиатуры или выбирать в проводнике (для чего имеется кнопка «Выбрать»). Затем нажмите кнопку «Старт». Через несколько секунд вы увидите сообщение «Подготовка дистрибутива окончена». Это означает, что загрузочная папка сформирована, а в папку дистрибутива также внесены необходимые изменения. После этого файл MAKE_BOOT_FOLDER.EXE можно удалить из папки bootcd (именно поэтому его и нет на рисунке 3). Замечу, что в статье Совмещение нескольких ОС семейства NT на одном диске загрузочные папки формируются иначе — с помощью команды winnt32.exe /noreboot, но наш метод гораздо удобнее: результат достигается за несколько секунд (в прежнем случае — больше минуты); рабочий стол не закрывается окном установки Windows; не требуется вводить ключ, и все операции копирования и переименования папок, удаления определенных файлов, обработки дистрибутива и корректировки путей в файлах, описанные в статье Совмещение нескольких ОС... теперь проводятся не вручную, а одним нажатием кнопки. Кроме того, отпадает необходимость в резервном копировании и последующем восстановлении файлов boot.ini и ntldr установленной ОС, так как наш метод эти файлы не затрагивает. И, наконец, ещё один плюс: поскольку уже нет необходимости в запуске (следовательно, и в наличии) файла winnt32.exe, можно не задумываясь удалять из дистрибутива элементы, предназначенные для обновления ОС с более ранних версий.

    *
    Рисунок 1 – Окно GUI-скрипта для создания загрузочных папок Windows XP
  7. Повторите действия, описанные в предыдущем пункте, для второго дистрибутива Windows XP.
  8. Если планируете автоматическую установку с файлом ответов, скопируйте в соответствующую загрузочную папку подготовленный файл winnt.sif. Замечу, что при запуске скрипта MAKE_BOOT_FOLDER.EXE указанная папка назначения (т. е. загрузочная папка) автоматически очищается от прежнего содержимого, однако для файла ответов в скрипте сделано исключение: файл winnt.sif не удаляется вместе со всеми. Это удобно при пересборке диска: если вы не планируете изменять содержание файла ответов, то помещаете sif-файл в загрузочную папку только один раз и с легкостью забываете об этом.
  9. Скопируйте в папку bootcd все маркерные файлы обоих дистрибутивов XP и файлы bootfont.bin (таким образом, эти файлы будут фигурировать на вашем носителе дважды — и в папках дистрибутивов, и в корне DVD). Если вы объединяете Windows разных локализаций, то в корневой папке придется переименовать один из файлов шрифта в bootfon1.bin, чтобы уйти от совпадения имен. Соответственно, в загрузочной папке этого дистрибутива в файле setupldr.bin придется заменить все значения bootfont.bin на bootfon1.bin. Это можно сделать в любом HEX-редакторе или с помощью GUI-скрипта PATCH_SETUPLDR.EXE из файлового архива (рисунок 2). Успешное завершение работы скрипта будет отмечено сообщением «Обработка окончена»; присваивать новое имя правленому файлу setupldr.bin не следует, что и показано на рисунке 2.

    *
    Рисунок 2 – Пример использования скрипта PATCH_SETUPLDR.EXE
  10. Скопируйте в корень папки bootcd файлы GRUBLDR, MENU.LST, TEXTFONT и 8X16_866.PSF из файлового архива. На этом комплектация DVD, обеспечивающего два варианта установки  Windows XP, завершена (рисунок 3, изображение слева).
  11. Для добавления в сборку дистрибутива Windows 7 достаточно скопировать в папку bootcd все файлы и папки установочного диска «семерки» (рисунок 3 – изображение справа).

*

Рисунок 3 – Слева: структура компакт-диска с GRUB 4DOS , содержащего два дистрибутива Windows XP . Справа: файлы и папки установки Windows 7, которые также можно включить в комплект

Запись DVD

Перед созданием ISO для записи на DVD необходимо учесть следующее: все файлы и папки, указанные в файле MENU.LST, должны иметь имена из прописных букв. Такова особенность используемой в данном проекте версии GRUB4DOS. В дальнейшем, вполне вероятно, вам не раз придется редактировать файл MENU.LST (ниже я поясню, почему), поэтому будет удобно заранее перевести в верхний регистр все имена, которые найдутся в папке bootcd. Для этого можно использовать утилиту FILECASE.EXE, запуская ее командным файлом FILECASE.CMD.  Оба файла находятся в файловом архиве и распаковываются в любую папку, совсем не обязательно в рабочую.

Далее всё стандартно: копируете из файлового архива (тоже в любую папку) файлы OSCDIMG.EXE, OSCDIMG.CMD и загрузочный сектор GRUB_B, запускаете командный файл OSCDIMG.CMD и получаете ISO. (Подробнее об использовании утилиты CDIMAGE (OSDIMG) — в статье Создание загрузочного ISO/DVD). Записываете образ на носитель, выставляете в BIOS загрузку с компакт-диска, загружаетесь и — мои поздравления! — видите на экране компьютера целый набор возможностей (рисунок 4).

*
Увеличить рисунок

Рисунок 4 – Так может выглядеть меню загрузки с компакт-диска в среде GRUB 4DOS

Вам осталось выбрать желаемое действие. Вторая и третья строки меню означают в данном случае установку операционной системы из папки XP_1 или из папки XP_2 соответственно. Очевидно, что вам захочется обозначить свои дистрибутивы в меню как-то иначе, предположим, что вас не устраивает мое слово «навороты» и вы хотите его как-то конкретизировать. Нет ничего проще: все экранные формулировки записаны в текстовом файле MENU.LST, и вам остается отредактировать этот файл. Но открыв файл на редактирование, вы обнаружите там ещё немало загадочного. Даже в нашем простом случае. И тут уже возникает необходимость в некоторых пояснениях, обещанных в начале статьи.

Как это работает? Краткое содержание файла MENU.LST

Начнем, в двух словах, с того, как работает созданный вами диск. Из загрузочного сектора GRUB_B вызывается менеджер загрузки (GRUBLDR) и на экран выводится список дальнейших возможных действий. Этот список и стоящие за ним команды задаются в текстовом конфигурационном файле MENU.LST. Для понимания содержания этого файла вам понадобится изучить язык GRUB4DOS, но некоторые строки в файле, в ознакомительных целях, можно прокомментировать здесь.

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

Благодарности


Ссылка: http://www.oszone.net/18565/multiboot_grub4dos