Создание загрузочных дисков Windows XP

Данная статья описывает особенности создания и записи загрузочных дисков, предназначенных для установки на компьютер ОС Windows XP, а также могущих включать в себя дополнительные сервисные ф

Данная статья описывает особенности создания и записи загрузочных дисков, предназначенных для установки на компьютер ОС Windows XP, а также могущих включать в себя дополнительные сервисные функции.
=====================================
В настоящее время в продаже можно встретить довольно большое количество различных дисков с Windows XP. Подавляющее большинство из них содержат саму систему, иногда с добавлением папки «Crack», содержащей инструкции и инструменты для взлома пиратской копии через замену некоторых системных файлов. Реже встречаются комбинированные диски, которые помимо Window XP включают в себя также некоторые офисные программы и утилиты. В последнее время также стали появляться диски, содержащие Windows XP с включённым Service Pack 1, а также «продвинутые» варианты, вроде Windows XP en SP1 + MUI ru. Между тем, имея на руках дистрибутив Windows XP и CD-recorder довольно просто самостоятельно создать свой вариант дистрибутива, включающий, помимо прочего, ваши любимые утилиты и сервисные средства. Для этого не нужно иметь никаких особых знаний — всё, что нужно, уже достаточно хорошо задокументировано и не представляет никакого секрета. Однако… лень-матушка! Сама необходимость в чём-то разбираться и искать необходимую информацию уже отпугивает многих… А потому основной целью данной статьи является не выдумывание каких-то новых методов, а сведение воедино основных общеизвестных фактов и методик, позволяющих эффективно и быстро создавать свои дистрибутивы.
====================================
Как устроен загрузочный диск?

Спецификация (описание) загрузочных 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.
===================================
Загрузочные диски Windows

Возможность установки системы путём загрузки непосредсвенно с «системного» CD-ROM появилась, если мне не изменяет память, в Window 98. Там используется вариант эмуляции гибкого диска — т.е. при загрузки с CD-ROM система ведёт себя так же, как при загрузке с дискеты. При этом загрузчик выполняет довольно внушительную часть действий по взаимодействию с пользователем и подготовке системы к работе. Например, именно через загрузчик вы выбираете, собственно, вариант загрузки — работать с CD-Rom, скопировать нужные файлы на Ram-диск, либо просто запустить систему без поддержки CD-ROM. Затем, опять же, именно загрузчик выполняет указанный вами вариант. И только если вы выбираете в качестве варианта «Установку Windows 98», загрузчик обращается к данным на CD-Rom и запускает setup.exe, который находится уже вне его самого. Иначе говоря, если у вас будет «голый» загрузочный CD-ROM Windows 98, не содержащий никаких файлов, то единственное, что вы НЕ сможете сделать с этим диском — это установить Windows 98, в то время, как все остальные функции (помощь по установке, форматирование и разбиение диска и прочие функции) будут доступны и работоспособны.

В Windows 2000 и XP метод загрузки изменился. Теперь там используется режим «без эмуляции». Сам по себе загрузчик очень мал. Его единственная функция — вывод на экран фразы «Press any key to run from CD…», после чего загрузчик ждёт некоторое время, и, если пользователь нажал кнопку, то с CD-rom загружается файл %Platform%SetupLdr.Bin (для PC это будет i386setupldr.bin), и ему передаётся управление. Если пользователь проигнорировал приглашение загрузчика, то спустя несколько секунд управление будет передано обратно в BIOS, загрузка с CD-Rom будет воспринята как неудачная, и BIOS выполнит следующие предписанные в её настройках действия (попытается загрузиться с дискеты, жёсткого диска и пр.). Таким образом, все действия по подготовке и установке Windows в данном случае выполняются непосредственно средствами установки Windows, вне зависимости от загрузчика. «Голый» загрузочный диск такого вида совершенно бесполезен и никаких действий, кроме вывода на экран строки приглашения и некоторой паузы ожидания выполнить не может. С другой стороны, столь простой загрузчик может быть легко создан средствами пользователя, или же вообще проигнорирован без ущерба для установки.
=====================================
Как делаются загрузочные диски Windows XP?

Создавать загрузочные диски сейчас умеет практически любая программа для записи CD-дисков (Easy CD Creator, Nero, WinOnCD, CD-Mate и пр.). Метод работы примерно одинаков во всех из них — в свойствах готового проекта, содержащего дистрибутив Windows, указывается путь к файлу, содержащему загрузочный образ и указывается тип эмуляции. После чего проект записывается на «болванку». Поэтому любую из этих программ, в принципе, возможно использовать для записи загрузочного диска Windows. Однако в самой Мiсrоsоft для этого используется другой инструмент, а именно — утилита CDImage. Это небольшая консольная программа (размер 47-110кб в зависимости от версии), при запуске выводящая предупреждающую фразу, что она «for Microsort internal use only» (только для внутренного использования в Microsoft). Данная утилита используется для подготовки образа диска из заданной дистрибутивной папки и с заданным загрузочным образом El-Torito. Программа работает только в Windows 2000/XP. К тому же она не умеет сама записывать диски, поэтому получаемый в результате образ диска придётся записывать на «болванку» при помощи какой-нибудь другой программы. Однако у этой утилиты есть, по крайней мере, одна возможность, которой нет ни в одной другой программе подобного рода. А именно — возможность создавать т.н. «hardlinks» («жёсткие ссылки»). Те, кто знаком с файловой системой EXT, знают, о чём здесь речь. Суть жёстких ссылок состоит в том, что если в образе находятся несколько одинаковых (по содержимому) файлов, то они не записываются многократно, но записывается лишь одна копия, для которой создаются ссылки во всех нужных каталогах с соответствующими именами (теоретически такое можно создать вручную и на FAT32, но это будет работать только до первого запуска ScanDisk, который при этом будет жутко ругаться). Иначе говоря, если вы записываете на диск 100 одинаковых файлов с разными именами размером по 500мб, то в результате создания HardLinks размер полученного образа будет не 50гБ, а всё те же 500мб (плюс ещё незначительное место для хранения заголовков файлов). Это позволит, например, без значительного увеличения размера образа добавить к дистрибутиву Windows со внедрённым Service Pack сам Service Pack в отдельной папке — все дублирующиеся файлы будут сокращены за счёт hardliks, а диск станет более универсальным в использовании — поскольку можно будет не только устанавливать Windows с Service Pack с этого диска, но ставить с помощью него же Service Pack на уже установленную Windows. Другая особенность CDImage — возможность создавать и комбириновать разные файловые системы. В распространённых программах записи можно, обычно, создавать систему ISO9660 и Joliet. В CDImage можно создавать эти файловые системы в любых сочетаниях, а также ещё и UDF. Если посмотреть на стандартный дистрибутив Windows XP в отличие от «самопального», то зачастую можно заметить, что в стандартном дистрибутиве отсутствует вообще система joliet, но лишь ISO9660, и притом не совсем стандартная — она может содержать длинные имена файлов (хотя по стандарту такого быть не может). В принципе, наличие или отсутствие Joliet значения не имеет, поскольку програме установки он не нужен, но разница всё же очевидна. Можно также создать диск с одной лишь системой joliet или udf БЕЗ ISO9660. В этом случае при открытии такого диска, скажем, из под MS-DOS в корне диска будет находиться один единственный текстовый файл, с информацией о том, что диск нельзя прочитать в операционной системе, не совместимой с соответствующим форматом (Joliet или UDF). «Стандартные» дистрибутивные диски Windows XP, сделанные при помощи CDImage содержат hardlinks и единственную файловую систему ISO9660. Однако замечу, что ни hardlinks ни уникальная ISO9660 не являются обязательными условиями для работы дистрибутива.
=====================================
Информация для создания своего дистрибутива Windows XP

Минимальный РАБОЧИЙ дистрибутив Windows XP для 32-разрядной платформы PC состоит из папки i386 (о её содержимом будет сказано ниже) и нескольких т.н. «маркерных» файлов. В оригинальной версии таких файлов два: «Win51» и «Win51ip» (без расширения). Содержимое и регистр названия файлов значения не имеют (как правило это обычные текстовые файлы размером в несколько байт, содержащие одно единственное слово, например «Windows» или «Sp1». Регистр не имеет значения, поскольку в системе ISO9660 все имена приводятся к верхнему регистру). Все остальные файлы и папки содержат дополнительные сервисные возможности и, в принципе, для установки системы не нужны. Если в дистрибутив внедрён пакет обновления (для Windows XP он на момент написания статьи всего один), то в корень диска добавляется ещё один маркерный файл, соответствующий этому пакету (в случае с Service Pack 1 это «Win51ip.sp1»). Итак, минимум, что нужно сделать, чтобы получить рабочий дистрибутив Windows XP, это скопировать с оригинального дистрибутива папку i386 и все маркерные файлы. Если записать такой компакт-диск, то с него можно будет установить Windows XP либо из msdos, командой i386winnt, либо из другой Windows, командой i386winnt32.

Помимо указанных, на оригинальном дистрибутиве содержатся также следующие объекты: файлы autorun.inf и setup.exe — для автоматического запуска установки Windows при вставке диска в CD-ROM при работающей Windows со включенным автозапуском; папка docs, содержащая различные документы в текстовом формате; папка valueadd, содержащая некоторые дополнительные сервисы и утилиты, предназначенные, главным образом, для системных администраторов, которые могут быть отдельно установлены на уже работающей системе; папка support, содержащая средства для создания систем автоматического развёртывания, что может быть полезно для производителей и поставщиков компьютеров для продажи компьютеров с предустановленной системой. Кроме «минимально необходимых», а также (хотя и необязательно) autorun.inf и setup.exe, остальные объекты на оригинальном дистрибутиве не являются «жизненно необходимыми», и вы можете сами решить, стоит ли включать их в свой вариант дистрибутива. Никаких ограничений по поводу наличия каких-либо других папок или файлов на диске не существует, т.е. вы можете добавлять туда всё, что посчитаете нужным. Например, если у вас имеется дистрибутив-обновление (т.е. дистрибутив, установить Windows с которого можно только при наличии инсталляции или дистрибутива предыдущей версии Windows), то вы можете добавить в корень своего дистрибутива две пустые (можно даже сказать, «маркерные») папки «Win98» и «Drivers». Тогда при установке, когда программа установки попросит у вас подтвердить законность обновления, вставив оригинальный диск с дистрибутивом предыдущей версии Windows, вы можете, не заменяя диска, нажать «Enter», и установка, найдя на диске эти «маркерные» папки решит, что всё в порядке 🙂.

Что из «своего» можно добавить на диск?

Как я сказал, на это нет ограничений, однако стоит описать несколько возможностей, дабы направить возникающую в таких случаях безудержную фантазию в нужное русло 🙂

Во-первых, программу для работы с разделами, вроде Partition Magic, или какую-нибудь другую (например, Paragon partition manager/explorer). Тогда прямо с CD-Rom вы сможете без лишних усилий изменять структуру разделов жёсткого диска — например, создать раздел для установки или отформатировать существующий.

Во-вторых, программу для офф-лайн доступа к NTFS-разделу диска. Она может оказаться полезной, если система вдруг перестанет работать. Очень хорошим, на мой взгляд, вариантом, является «Универсальный загрузочный диск» (скопируйте последнюю фразу вместе с кавычками в поле поиска «Яндекса», и через несколько секунд вы узнаете, где можно его скачать).

В-третьих, программу (и не одну!) для восстановления повреждённых файлов/дисков/разделов. Для восстановления файлов подойдёт OnTrack Easy Recovery, а для доступа к операционной системе — ERD Commander 2002 или Windows Portable Environment.

«Вооружив» свой дистрибутив этими программами, вы сможете не только установить Windows, но и эффективно восстанавливать и администрировать её в случае каких-либо повреждений. О том, как именно это сделать, я расскажу чуть ниже…

Как устроена и что можно сделать с папкой i386?

Как я уже сказал, эта папка является основной установочной папкой Windows. Она содержит в себе, собственно, дистрибутив. Внутри этой папки: папки win9xmig, win9xupg, winntupg — содержат информацию, необходимую в случае, если вы выполняете не «чистую» установку, а обновление уже установленной системы до Windows XP. Если вы собираетесь только устанавливать «чистую» Windows c вашего дистрибутива и не заниматься обновлением других систем до ХРюши, то эти папки можно смело удалить. В таком случае вы освободите дополнительно около 37,5 мб места. Кроме того, в этом случае вы также можете смело удалить папку Compdata, которая содержит описание особенностей обновления некоторых компонентов из предыдущих версий Windows. Эта папка «подарит» вам ещё примерно 735кб. Далее. Папка Lang содержит поддержку дополнительных языков (ну, вроде как чтобы писать на китайском иероглифами, а на иврите — справа налево). Если вам этого не надо — удаляйте и эту папку. Вы получите ещё +100мб! (только потом не удивляйтесь, почему ХРюша перестала поддерживать «великий и могучий»…) Остальные три папки — system32, drw, asms — лучше не трогать :).

Из файлов, уже находящихся в этой папке, внимания заслуживают два файла: TXTSETUP.SIF — содержит основной скрипт установки Windows. Если вы предполагаете разместить дистрибутив в папке, отличной от i386, то новый путь нужно будет прописать в этот файл.

Второй файл, который может заслужить ваше внимание: SETUPP.INI. Он очень маленький и содержит два числа. Он определяет, какая именно версия Windows находится в дистрибутиве: OEM, Upgrade или Volume Edition. (конкретных значений сейчас под рукой нет. Добавлю их позже).

Это то, что касается файлов, УЖЕ содержащихся в I386. Однако это не означает, что в неё нельзя ничего добавлять!

Куда в i386 можно добавить свои компоненты?

Для добавления своих компонентов (например, драйверов или программ) можно воспользоваться несколькими способами. Первый способ предназначен для автоматического обновления Windows при установке — он применяет все нужные Post-service packs (хотфиксы). Он хорошо документирован для Windows 2000 — смотри предыдущую статью, либо статью Q296723 в базе знаний Microsoft. О том, работает ли он для Windows XP — пока неизвестно. К тому же он не может ничего, кроме применения хотфиксов, поскольку в обязательном порядке использует каталог цифровых подписей от Microsoft, и, следовательно, вы не сможете таким образом установить никакой «чужой» файл помимо подписанных Microsoft.

Второй способ заключается в использовании папки $OEM$. Папку с таким именем необходимо создать в корне диска, на одном уровне с папкой i386. Об этом также подробно рассказано на сайте Microsoft. Я приведу перевод части этой статьи, описывающий назначение и смысл отдельных папок дистрибутива:

Папка i386

Это дистрибутивная папка. Она может включать следующий файл:

Оцените пользу
( Пока оценок нет )
Поделитесь с друзьями
Добавить комментарий