Каталог статей
Главная » Статьи » ПК и ОС » Общие сведения о ПК и ОС |
Загрузочные диски 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 это будет i386\setupldr.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, командой i386\winnt, либо из другой Windows, командой i386\winnt32. Помимо указанных, на оригинальном дистрибутиве содержатся также следующие объекты: файлы 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 Это дистрибутивная папка. Она может включать следующий файл: файл $$Rename.txt Этот файл содержит список файлов, имена которых программа установки должна преобразовать из коротких в длинные (помните об ограничении 8.3 для ISO9660?). Такой файл должен находиться в каждой папке дистрибутива, включающий файлы, имена которых нужно преобразовать в длинные. \$OEM$ Эта папка, которая должна быть создана в CD-дистрибутиве на одном уровне с папкой \i386, и содержать дополнительные файлы, необходимые для завершения установки. Если вы используете файл ответов с ключом OemFilesPath в разделе [Unattended], то эту папку вы можете создать в любом месте, в т.ч. и вне дистрибутивной папки. ПРИМЕЧАНИЕ: обратите внимание, что для создания загрузочного дистрибутива Windows на компакт-диске эта папка должна лежать на одном уровне с папкой i386 (обычно обе папки кладутся в корень диска). Если же вы создаёте дистрибутив для установки из другого места (например, по сети), то папка $OEM$ должна располагаться ВНУТРИ папки i386. Один из дополнительных файлов, который вы можете добавить в папку \$OEM$ это Cmdlines.txt. Этот файл содержит список команд, которые программа установки выполнит во время графической фазы установки. Эти команды могут, к примеру, запустить INF файл, программу установки приложения, команду Sysdiff.exe или другой исполняемый файл. Каждый раз, когда программа установки находит подпапку \$OEM$ в корне дистрибутивной папки, она копирует всё её содержимое во временную папку, создаваемую во время текстовой фазы установки. \$OEM$\Textmode Эта папка содержит аппаратно-зависимые файлы, которые загрузчик программы установки и программа установки в текстовой фазе устанавливает на компьютер. Это могут быть, например, HAL от производителя компьютера, драйвера нестандартных накопителей, а также файл Txtsetup.oem, содержащий директивы о загрузке и установке этих компонентов. Удостоверьтесь, что файл Txtsetup.oem и все файлы, помещённые в эту папку (HAL и драйверы) перечислены в разделе [OEMBootFiles] файла ответов. \$OEM$\$$ Папка $OEM$\$$ эквивалентра переменной окружения %systemroot% или %windir%. Она содержит дополнительные файлы, которые вы хотите скопировать в папку с установленной системой (для Windows XP по умолчанию это \Windows). Структура этой папки должна соответствовать структуре системной папки, где $OEM$\$$ означает %systemroot% или %windir% (например, C:\windows), $OEM$\$$\System32 означает %windir%\System32, и так далее. Каждая подпапка должна содержать файлы, которые необходимо скопировать в соответствующую системную папку на компьютере назначения. \$OEM$\$$\Help Эта папка содержит файлы справки, которые будут скопированы в папку C:\Windows\Help во время установки. \$OEM$\$$\System32 Эта папка содержит файлы, которые будут скопированы во время установки в папку C:\Winnt\System32. \$OEM$\$1 Эта папка эквивалентна переменной окружения SystemDrive. Например, если операционная система установлена на диск C, то \$OEM$\$1 ссылается на диск C. Использование переменной делает возможным изменение буквы диска без возникновения ошибок в приложениях, явно указывающих букву диска. \$OEM$\$1\PnPdrvrs Эта папка содержит дополнительные драйвера Plug and Play, не включённые в оригинальный дистрибутив Windows. Вы можете заменить PnPdrvrs любым именем по вашему выбору, состоящим из восьми и менее символов. \$OEM$\Drive_letter Каждая из таких папок содержит структуру файлов и подпапок, которая будет скопирована в корень соответствующего диска на компьютере назначения во время текстовой фазы установки. Например, файлы, находящиеся в папке \$OEM$\C будут скопированы в корень диска C. Вы можете также создавать таким образом вложенные папки. Например, \$OEM$\D\Misc создаст папку \Misc на диске D. Файлы, которые нужно переименовать, должны быть перечислены в файле $$Rename.txt. Заметьте, что файлы в этих папках должны иметь короткие имена. Этот файл имеет следующую структуру: [имя_секции_1] короткое_имя_1 = "длинное_имя_1" короткое_имя_2 = "длинное_имя_2" короткое_имя_х = "длинное_имя_х" [имя_секции_2] короткое_имя_1 = "длинное_имя_1" короткое_имя_2 = "длинное_имя_2" короткое_имя_х = "длинное_имя_х" Где: Смысл ключей следующий: ECHO LOADING Partition Magic 8.0 Professional... Набор утилит восстановления для восстановления потерянных EasyRecovery поможет вам восстановить файлы, которые было © 2002 Ontrack Data International, Inc. | |
Просмотров: 4850
| Теги: |
Всего комментариев: 0 | |