Как устроен загрузочный диск?
Спецификация (описание) загрузочных CD-дисков El-Torito открыта и может быть легко найдена в интернете через любой поисковик (если повезёт — то даже на русском языке). Эта спецификация достаточно подробна и широка. Она, в частности, позволяет создавать множество вариантов загрузки для разных платформ. С другой стороны, поддержка этой спецификации зависит от конкретного компьютера, а точнее — от возможностей BIOS. То, что работает на одном компьютере вовсе не обязательно будет работать на другом. Более-менее определённо можно говорить о поддержке трёх вариантов загрузки El-Torito, поддерживаемых практически всеми современными компьютерами — это эмуляция гибкого диска, эмуляция жёсткого диска и отсутствие эмуляции. Во всех этих вариантах, помимо основной файловой структуры, на CD-ROM создаётся непрерывный блок данных, называемый также загрузочным образом, который считывается в память и выполняется, согласно выбранному варианту эмуляции.
При эмуляции гибкого диска загрузочный образ интерпретируется как гибкий диск "A", при этом фактический дисковод (если таковой имеется) перемещается на следующую букву ("B"). Размер загрузочного образа равен размеру дискеты — 720кб, 1.44мБ, 2.88мБ и пр. Сам образ представляет собой точный (побайтовый) образ обычного (гибкого) загрузочного диска, и если, например, взять такой образ и записать его на дискету, то он будет работать в точности так же, как если бы находился на CD-Rom. Точно также можно взять любую загрузочную дискету и, считав с неё образ, использовать его как загрузочный образ для собственного загрузочного CD. Для обращения с загрузочного образа к остальной части CD-Rom необходимы драйвера, так же, как и при работе с обычной дискеты (например, через mscdex). Если забыть об этом, то возможна неприятная ситуация, когда загрузившись с CD-rom выяснится, что сам CD-Rom при этом недоступен! Загрузочные образы для эмуляции гибкого диска можно создавать, непосредственно считывая побайтно образ с заранее подготовленной и отлаженной дискеты, либо воспользовашись специальными программами для работы с образами дискет — например, WinImage (ссылку на неё можно найти в предыдущей статье). Последний вариант не требует использования дискеты и позволяет создавать образы размером до 2,88мБ.
При эмуляции жёсткого диска загрузочный образ интерпретируется как жёсткий диск "C", при этом вся логическая структура жёстких дисков перемещается на одну букву вверх ("C" становится "D", "D" — "E" и пр.). Размер загрузочного образа ограничен лишь размером носителя, т.е. вы можете создать загрузочный образ размером с целый компакт-диск (правда, при этом уже не сможете записать на него никакие другие данные). В остальном эмуляция жёсткого диска эквивалентна эмуляции дисковода. Загрузочный образ для эмуляции жёсткого диска можно создать, например, создав на (физическом) жёстком диске загрузочный раздел нужного размера и настроив его для нормальной работы, а затем скопировав образ при помощи какой-нибудь программы копирования образов дисков.
Наконец, третий режим — без эмуляции. В этом случае загрузочный образ считывается в память и выполняется, при этом не подменяя собой ни дисковода, ни жёсткого диска. В связи с этим выполняемый загрузочный образ не имеет возможности (тривиальной) обратиться к самому себе или своим частям. Этот вариант чаще всего используется при создании небольших загрузчиков, которые запускают какую-нибудь программу непосредственно с CD-Rom.