ПРЕСС-ЦЕНТР

Создание в Windows XP Embedded загружаемого компакт-диска в формате El Torito

МКА 2/2006

С.В.Золотарёв

Что обозначает выражение El Torito применительно к стандарту загрузочных компакт-дисков? Как ни странно, ничего конкретного. Не пытайтесь перевести его буквально - это всего-навсего название мексиканского ресторана, в котором обедали разработчики данного стандарта

Windows XP Embedded поставляется со средствами и компонентами, которые позволяют создавать run-time образы, которые будут загружаться и работать с CD-ROM. Конфигурация должна включать возможности компонент Enhanced Write Filter и El Torito CD. Компонента El Torito CD реализует спецификацию, которая обеспечивает стандарт для создания загружаемых CD-ROM как образов жёсткого диска. Когда создается образ жёсткого диска, CD-ROM будет грузиться как C: и все буквы жёсткого диска будут сдвинуты на единицу. Дополнительную информацию о спецификации El Torito можно найти в документе "El Torito. Bootable CD-ROM Format Specification. Version 1.0" на сайте компании Phoenix: http://www.phoenix.com/resources/spec-cdrom.pdf.

В Windows Embedded Studio включено средство подготовки образов компакт-дисков в формате El Torito - Hd2iso.exe, которое находится в папке \Program Files\Windows Embedded\Utilities. Это средство конвертирует один или более разделов жёсткого диска в файл образа в формате ISO 9660/El Torito, который может быть прошит в CD, используя любое средство прожига. Формат ISO 9660 - это файловая система для CD-ROM. В образе ISO 9660 может быть до 4 разделов, но суммарный размер всех включённых разделов не может превышать размер компакт-диска, на который они прожигаются. Доступные размеры компакт-дисков равны 650 Мбайт (74 минуты) и 700 Мбайт (80 минут).

Перечислим основные шаги по созданию системы в формате El Torito:

  1. Построение исполняемого образа в формате El Torito.
  2. Передача образа в загрузочный FAT-раздел.
  3. Конвертирование раздела pre-FBA с исполняемым образом в образ в формате ISO и прошивка его на компакт-диск.
  4. Вставка компакт-диска с ISO-образом в устройство, но загрузка - с жёсткого диска, который содержит образ для того, чтобы выполнить FBA.
  5. Запуск средства etprep.exe.
  6. Конвертирование исполняемого образа post-FBA в образ ISO и прожиг его на компакт-диск.
  7. Загрузка исполняемого образа с компакт-диска в формате El Torito.

На каждом из этих шагов существует множество мелких деталей, которые могут вызвать проблемы, если на них не обратить внимание. Ниже будет рассмотрен сложный процесс создания загружаемого CD и объяснены основные действия и опции.

Для выполнения задачи потребуется дополнительное оборудование:

  • чистый жёсткий диск (он должен быть достаточно большим, чтобы хранить до 650 или 700 Мбайт; этот жёсткий диск мы будем называть целевым, так как на нем будет формироваться образ компакт-диска, в отличие от жёсткого диска, на котором находится среда разработки c Target Designer);
  • BIOS, который поддерживает загрузку с CD-ROM;
  • по крайней мере один CD-ROM-привод;
  • CD-writer и специальная программа для прожига CD в формате ISO-9660 из соответствующего файла;
  • 2 чистых компакт-диска.

Подготовительные шаги в среде разработки

  1. Присоедините дополнительный (целевой) жёсткий диск к компьютеру, на котором установлена среда разработки (Microsoft Windows Embedded Studio). Установка может отличаться для различных компьютеров. Например, если присоединять целевой жёсткий диск к одному и тому же кабелю IDE, к которому подключен ваш штатный жёсткий диск, необходимо установить на дополнительном жёстком диске jumper, чтобы конфигурировать диск как slave-устройство. Вы должны задать в BIOS e правильные установки так, чтобы он распознавал ваш дополнительный жёсткий диск. Среде разработки потребуется доступ к целевому диску.
  2. Загрузите машину с операционной системой для разработки (Windows 2000 или Windows XP Professional).
  3. Запустите Менеджер дисков, нажав правую кнопку мыши на My Computer в меню Start и выбрав Manage.
  4. Выберите Computer Management (local), затем Storage и, наконец, Disk Management.
  5. В правом нижнем окне появится целевой диск. Если на нём есть какие-либо разделы, то их необходимо удалить с помощью правой кнопки мыши и команды Delete Partition.
  6. Создайте новый раздел на целевом диске, нажав правую кнопку мыши в области Unallocated целевого жёсткого диска и выбрав затем из меню команды New Partition.
  7. Когда появится New Partition Wizard, нажмите кнопку Next.
  8. Убедитесь, что выбран вариант Primary Partition, после чего нажмите кнопку Next.
  9. Наберите число 600 в поле Partition size in MB и нажмите кнопку Next.
  10. Появившийся экран пригласит вас присвоить букву драйвера разделу, который будет использоваться операционной системой среды разработки для идентификации диска и работы с ним. Буква драйвера, которая присваивается в среде операционной системы разработки, никак не будет влиять на образ XP Embedded, существующий на диске, поэтому достаточно будет использовать значение по умолчанию. Итак, буква драйверу присвоена, для продолжения нажмите кнопку Next.
  11. Убедитесь, что выбран вариант Format this partition with the following settings, и установите следующие значения:

File System - FAT
Allocated unit size - Default
Volume label - (не имеет никакого значения, даже если это пустая строка)
Perform a quick format - выбрано.

  1. Нажмите кнопку Next.
  2. Нажмите кнопку Finish для завершения работы New Partition Wizard.
  3. Нажмите на правую кнопку мыши в новом разделе, который вы только что создали на целевом диске, и выберите Mark Partition as Active.
  4. Закройте Computer Management.

Другой вариант подготовительных шагов с использованием флоппи-диска и Windows PE можно найти на сайте Microsoft: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xpehelp/html/ xehowstep2formatpreparedeploymentharddisk.asp.

Построение исполняемого образа El Torito

  1. Откройте в Target Designer конфигурацию, которую планируется установить на компакт-диск, и сохраните её под именем CDImage.slx.
  2. В редакторе конфигураций раскройте корневой узел CDImage.slx и выберите Settings.
  3. В панели Details выберите Target Device Settings и затем Show под Target Device Settings.
  4. Установки в Target Device Settings должны выглядеть следующим образом:

Boot drive: C:
Windows Folder: C:\WINDOWS
Program Files folder: C:\Program Files
Documents and Settings folder: C:\Documents and Settings
Boot ARC path: multi(0)disk(0)rdisk(0)partition(1) (default)
Boot partition size (MB): 650
Partition cluster size (bytes) 4096 (default)

Замечание: Заданы драйвер C: и раздел 1, поэтому перед тем, как исполняемый образ будет готов к первой загрузке с жёсткого диска, необходимо будет отсоединить жёсткий диск, который содержит среду разработки, и установить перемычку на целевом жёстком диске как Master. Кроме того, после окончательного прожига образа на CD этот компакт-диск будет загружаться как диск C:.

  1. В редакторе конфигураций удалите из конфигурации компоненты NT Loader, NTFS, NTFS Format и Primitive:Untfs.

Замечание: Компоненты файловой системы FAT Format и FAT должны быть обязательно включены в конфигурацию.

  1. В Targer DEsigner добавьте компоненту EWF Manager Console application, которая находится в категории Software: Applications: Management.
  2. Добавьте компоненты El Torito CD, EWF NTLDR и Enhanced Write Filter, которые находятся в категории Software: System: System Services: Base.
  3. Для конфигурирования EWF раскройте компоненту Enhanced Write Filter в редакторе конфигураций и выберите Settings. После добавления компоненты Enhanced Write Filter надо будет отменить установку Start EWF Enabled. Установки Enhanced Write Filter должны быть следующими:

Maximum Number of Protected Volumes: 1
Maximum Number of Overlay Levels: 1
EWF Partition Size in Kbytes: 0
Start EWF Enabled - Unchecked
Enable Lazy Write - Unchecked
Disk Number: 0
Partition Number: 1
Disk Type: IDE
Overlay Type: RAM
Optimization Options: Optimal Performance

Замечание: Компонента El Torito CD имеет установки для изменения сигнатуры диска. Это число отображается в десятичном виде. По умолчанию значение равно 1330924613, а в шестнадцатиричном виде - 0x4F544C45. Следовательно, сигнатура диска ELTO: 0x45, 0x4C, 0x54, 0x4F. Если надо изменить установки в Target Designer, то необходимо ввести то же самое число в утилите Hd2iso (только не в шестнадцатиричном виде). Если оставить значение по умолчанию, то все будет работать замечательно. Единственный случай, когда следует изменить эту установку - если планируется иметь другой диск на этой же системе с той же сигнатурой диска.

  1. В компоненте User Interface Core выберите Settings.
  2. В панели Details Pane установите галочку в поле, помеченном Show Run on Start Menu, так, чтобы появилась отметка.
  3. Убедитесь, что разрешена возможность Auto-resolve dependencies, и затем выполните проверку зависимостей путем выбора Check Dependencies из меню Configuration.
  4. Исправьте (resolve) все ошибки зависимостей, если они существуют.

Замечание: Поскольку возможность Auto-resolve dependencies разрешена, то, скорее всего, никаких ошибок не возникнет.

  1. Постройте исполняемый образ, нажав Build Target Image в меню Configuration. Нажмите кнопку Close после успешного завершения процесса.
  2. Сохраните конфигурацию и закройте Target Designer.
  3. Откройте My Computer из меню Start и скопируйте всё содержимое папки с построенной системой (по умолчанию C:\Windows Embedded Images) в раздел целевого жёсткого диска.

Создание образа в формате ISO 9660 с помощью утилиты Hd2iso.exe

  1. Откройте командное окно путем выбора Run из меню Start и ввода cmd.
  2. Наберите cd\Program Files\Windows Embedded\Utilities и нажмите клавишу Enter.
  3. Запустите утилиту Hd2iso, набрав hd2iso.
  4. Из Main Menu выберите опцию 1. Create an ISO-9660/ELTORITO bootable image file.
  5. Из Iso Image Menu выберите 2. Set physical drive.
  6. Выберите целевой жёсткий диск из меню Set Physical Drive. Если вы присоединили жёсткий диск как primary slave, необходимо выбрать 1\\.\PhysicalDrive1.
  7. Из меню Iso Image Menu выберите 3. Select partition(s).
  8. Из меню Select Partitions выберите номер, который соответствует разделу, созданному на целевом жёстком диске. Если на нём есть ещё разделы, которые хотелось бы включить в ISO-образ, то можно выбрать номер, соответствующий каждому разделу. Суммарный размер выбранных разделов не может превышать ёмкость компакт-диска, который будет прожигаться на CD. Нажмите клавишу P после того, как выбор разделов для включения в ISO-образ выполнен.
  9. Из меню Iso Image Menu выберите 4. Set image file path.
  10. Наберите полный путь и имя файла с образом ISO, C:\osboot.iso. Это результирующий файл, получаемый с помощью утилиты hd2iso, который будет использоваться для создания загружаемого компакт-диска. Этот файл будет по размеру соответствовать разделам, выбранным на шаге 8.
  11. Из меню Iso Image Menu выберите 5. Advanced Options.

Замечание: Вам может не потребоваться конфигурировать никакие опции в Advanced Options. Ниже дано описание каждой опции:

  • Select target media разрешает выбрать размер CD, на который будет клонирован ISO-образ либо как 74-минутный (650 Мбайт), либо как 80-минутный (700 Мбайт);
  • Specify disk signature позволяет изменить сигнатуру диска, но она должна соответствовать сигнатуре диска, которая была установлена в исполняемом образе в установках компоненты El Torito CD. По умолчанию эти установки соответствуют утилите hd2iso и установкам компоненты El Torito CD в Target Designer, поэтому нет необходимости в каких-то изменениях;
  • Specify volume ID разрешает поименовать том. Метка тома будет появляться в My Computer следом за буквой CD, но это свойство не оказывает влияния на функциональность;
  • Specify a binary file for inclusion in the System Data Area разрешает указать двоичный файл, чьё содержимое будет копироваться в System Data Area образа. Тип данных или использование этих данных не определяются, но обычно инженеры применяют их для хранения собственной информации для специфических целей BIOS, такой как контрольные суммы;
  • Select partition to boot позволяет указать один из других разделов для загрузки вместо первого раздела. Это помечает раздел как загружаемый. Необходимо указать первый раздел в образе для поддержания работоспособности, но можно изменить этот флаг с помощью данной опции. Если раздел, с которого вы хотите грузиться, уже помечен как загружаемый, то здесь ничего изменять не надо.
  1. Когда конфигурирование в Advanced Options выполнено, нажмите P для возврата в Iso Image Menu.
  2. Из меню Iso Image Menu выберите 6. Create image для создания образа в формате ISO 9660.
  3. После того как образ создан, нажмите любую клавишу для возврата в меню Iso Image Menu и затем нажмите клавишу Q для выхода из утилиты Hd2iso. Для закрытия командного окна наберите exit.
  4. Прожгите образ ISO 9660 на компакт-диск. Для прожига выберите файл C:\osboot.iso. Программное обеcпечение, используемое для прожига, должно уметь читать образ компакт-диска из файла и создавать CD из содержимого такого файла. Обычно ПО для прожига имеет флаг в опциях или же спросит вас о желании создавать CD из файла. Одним из вариантов такого ПО является программа Adaptec EZ-CD Pro.

Загрузка системы с целевого жёсткого диска для выполнения FBA (First Boot Agent)

  1. После того как создан pre-FBA ISO CD, вставьте его в CD-привод, который будет использоваться для загрузки ISO CD.
  2. Выйдите из Windows и отсоедините шнур питания.
  3. Удалите жёсткий диск, который содержит среду разработки.
  4. Установите jumper на целевом жёстком диске, который должен быть сконфигурирован как Master.
  5. Вновь присоедините шнур питания и включите систему.
  6. Войдите в настройки BIOS a и убедитесь, что система будет пытаться грузиться с жёсткого диска перед загрузкой с CD.
  7. Выйдите из настроек BIOS и загрузите Windows XP Embedded с жёсткого диска для того, чтобы выполнить FBA. Во время выполнения FBA система будет перезагружаться 2 раза.
  8. Проверьте, что Enhanced Write Filter правильно сконфигурирован путем использования консоли приложения EWF Manager. Для этого, после того как FBA успешно завершится, откройте окно командной строки, выбрав Run из меню Start, затем введите cmd и запустите ewfmgr c:.
  9. В этом месте можно изменить некоторые установки на вашем конечном CD, например фон рабочего стола. Кроме того, можно модифицировать файл boot.ini для установки возможности дуальной загрузки, если планируется иметь жёсткий диск, присоединяемый к машине, использующей El Torito CD.
  10. Когда вы готовы закончить работу над исполняемым образом, запустите утилиту подготовки El Torito. В командной строке наберите etprep/all. Система должна быть немедленно перезагружена после выполнения etprep.exe. Встраиваемый раздел не будет больше загружаться после выполнения etprep.exe. При успешном выполнении etprep должна отображаться следующая информация:

Deleted EWFPartitions = 1
Swapped ELTorito volume drive E: with Boot volume C:

Замечание: Утилита etprep служит двум целям:

  • удаляет том EWF;
  • переставляет буквы устройств диска El Torito и начального исходного раздела таким образом, чтобы компакт-диск El Torito появлялся как диск C:.
  1. После того как система выключена, выдерните шнур питания, сконфигурируйте jumper на целевом жёстком диске как slave-устройство, присоедините среду разработки и загрузите ОС со средой разработки.
  2. Повторите процедуру предыдущего раздела (Создание образа в формате ISO 9660 с помощью утилиты Hd2iso.exe) для создания окончательной версии El Torito CD. Вам понадобится другой чистый CD.
  3. Для тестирования El Torito CD перезагрузите систему с компакт-диском, вставленным в привод. Предварительно нужно будет зайти в установку параметров BIOS и установить порядок загрузки таким образом, чтобы система грузилась вначале с CD.

Описанная выше процедура создания загружаемого компакт-диска в формате El Torito опирается на данные с сайта компании Microsoft: (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xpehelp/html/xehowtutorialcreatingbootablecd-rom.asp) и на материал из книги"Windows XP Embedded. Step by Step" (автор James Beau Cseri).