Загрузочные экраны (Boot Screens)

Автор: первая часть - YuriPet; вторая часть - D@nil (перевод с англ.), desperate (расширенная редакция)
Иcточник: unattended.oszone.net
Опубликована: 17.03.2005

Данная статья теперь состоит из двух частей. Первая часть, представленная на этой странице, является совершенно новым материалом, который написал для вас участник конференции OSZone YuriPet. В ней рассматривается работа с программой TuneUp Styler. Вторая часть - это римейк старой статьи (где описана работа с программой Boot Editor), которую для вас отредактировал, расширил и снабдил новыми скриншотами участник конференции OSZone desperate.


Что такое Boot Screen? Когда вы запускаете Windows XP, вы видите полноэкранное изображение с эмблемой Windows. Снизу этого изображения имеется анимированная область, иллюстрирующая продвижение процесса загрузки, а также надписи, содержащие информацию об авторских правах компании Microsoft. Вот это изображение и называют Boot Screen (загрузочный экран).

В настоящее время существует целый ряд программ, позволяющих "оперативно" заменять стандартный загрузочный экран Windows default одним из множества созданных различными авторами, а также создавать свои собственные экраны.

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

Собственно изображение содержится в файле ядра Windows ntoskrnl.exe. Следует отметить, что в зависимости от конкретной конфигурации оборудования, Windows использует один из четырех уникальных файлов ядра:

Данная статья расскажет вам о том, как создать собственный загрузочный экран с использованием программы TuneUp Styler из комплекта TuneUp Utilities 2006, а также о способах сохранения и использования созданных файлов ядра Windows.

Выбор (подготовка) изображения для загрузочного экрана

По техническим причинам загрузочный экран Windows XP должен иметь размер 640 x 480 пикселей и состоять только из 16 цветов. Некоторые из этих цветов (например, черный) предписаны операционной системой. Программа TuneUp Styler преобразует ваше исходное изображение в необходимый формат, используя собственный алгоритм автоматического определения лучших 16 цветов. Если изображение состоит из мелких деталей и содержит оттенки многих цветов, результат этого преобразования может оказаться слишком далек от ожидаемого.

Опыт показал, что для создания загрузочных экранов следует использовать изображения только с небольшим количеством различных цветов. Например, изображение, в котором преобладают синие оттенки, и только несколько контрастирующих цветов. Также, по возможности, следует избегать телесных цветов, поскольку они обычно не могут быть правильно отображены 16 цветами. Конечно, вам может повезти. Так что лучше всего – пробовать!

А еще лучше – попытаться преобразовать ваше исходное изображение в необходимый формат самостоятельно с использованием любой программы, позволяющей осуществлять такие преобразования с наименьшей потерей качества. Я обычно пользуюсь бесплатным IrfanView. Таким образом вы сможете избежать неприятных неожиданностей и разочарований в ходе непосредственного создания своего экрана загрузки.

И еще одно замечание. Постарайтесь, чтобы левая верхняя часть вашего изображения была более однотонной. Зачем? Поймете из дальнейшего изложения.

Создание загрузочного экрана

Установите TuneUp Utilities 2006. При запуске оболочки комплекта вы увидите:

Boot Screens
Увеличить

То есть, производитель предоставляет 30-дневный период для тестирования программного обеспечения. Нажмите Keep Testing.

В главном окне оболочки комплекта Вы увидите такую картину:

Boot Screens
Увеличить

Нажав TuneUp Styler 2 и ознакомившись с содержанием промежуточного окна "Welcom to TuneUp Styler 2 " (не приводится), вы оказываетесь в необходимой нам программе:

Boot Screens
Увеличить

Теперь, щелкнув соответствующий пункт на панели задач или выбрав соответствующее задание из списка, вы попадаете в основное окно Boot Screen, где видите, что активным в данный момент является до боли знакомый загрузочный экран Windows default от Microsoft Corporation.

Boot Screens
Увеличить

Но мы будем создавать собственный загрузочный экран. Щелкните кнопку New Screen на панели Boot Screens.

Boot Screens
Увеличить

Щелкнув пункт Search local drives на панели задач, выберите ваше изображение, которое вы хотите использовать в качестве нового загрузочного экрана (лучше – уже преобразованное в формат 4 бит 640 x 480 пикселей).

Загрузив выбранное вами изображение, программа предупредит вас о том, что участок в левом верхнем углу экрана всегда заполняется цветом, выбранным в качестве фона, и предложит назначить этот цвет автоматически.

Boot Screens

Согласитесь с предложением, щелкнув Suggest background color.

Если вы не учли рекомендации, изложенные в первой части этой статьи, то очень вероятно, что получите предупреждение:

Boot Screens
Увеличить

То есть вам предлагается или самостоятельно подбирать цвет фона с тем, чтобы сделать этот участок менее заметным, или (что желательнее) выбрать другое изображение. Если вы все же пойдете по первому пути, то рекомендую следовать изложенному немного дальше совету по выбору (изменению) цвета для фона.

Если же вы следовали всем изложенным в первой части этой статьи рекомендациям, то увидите сообщение:

Boot Screens
Увеличить

и изменившееся изображение:

Boot Screens
Увеличить

Теперь вы можете оптимизировать вид вашего изображения.

Обратите внимание, что доступные варианты выравнивания с использованием функции Alignment будут действовать только тогда, когда ваше исходное изображение не соответствует размеру 640 x 480 пикселей.

Если вам не нравится выбранное программой сочетание цветов фона , который будет использоваться как для областей, которые не закрыты вашим изображением, так и в качестве фона области продвижения процесса, и окружающего эту область изображения, можно попробовать установить другой цвет фона , используя функцию Background.

Участок в левом верхнем углу экрана можно зрительно скрыть, используя функцию Borders.

Если вы следовали всем изложенным в первой части этой статьи рекомендациям, и у вас уже имеется файл, содержащий 16-цветный вариант вашего исходного изображения, то аналогичного эффекта можно достигнуть, если заранее заполнить этот участок необходимым цветом. Растянув это заполнение на всю ширину картинки, его можно использовать для нанесения, например, дополнительной текстовой информации.

Кроме того, используя функцию Position можно определить положение области продвижения процесса по вертикали (переместить ее по горизонтали нельзя) и изменить цвета рамки ( Frame) и "бегунка" (Foreground).

При изменении или выборе любых цветов по возможности используйте только те 16 цветов, из которых может состоять ваше основное изображение. Так вам удастся сохранить в неприкосновенности этот скудный набор, то есть избежать дальнейшего искажения исходной картинки.

Не обольщайтесь богатством цветов, которые вы видите сейчас на экране! Это пока еще – ваше полноцветное исходное изображение! Как узнать, из каких 16 цветов оно может состоять?

Вам снова пригодится 16-цветный вариант вашего исходного изображения – просто откройте его в графическом редакторе и определите параметры любого имеющегося цвета. Например, если вы использовать стандартный Paint, то воспользуйтесь инструментом Выбор цветов (Пипетка), а затем щелкните ПалитраИзменить палитру…Определить цвет >>. Запишите значения параметров Красный, Зеленый и Синий, а вернувшись в программу TuneUp Styler , щелкните необходимый пункт Change color, и в открывшемся окне введите точно такие же значения.

Если вы не создавали 16-цветное изображение предварительно с помощью других программ, то, к сожалению – никак, так как окончательное изображение, созданное с помощью TuneUp Styler будет обязательно содержать все три упомянутых цвета и для отображения вашей картинки останутся только 13 цветов. Чтобы все же уменьшить возможные искажения, советую выбирать хотя бы зрительно похожие цвета.

Проект вашего экрана загрузки завершен:

Boot Screens
Увеличить

Давайте сохраним то, что у нас уже получилось. Щелкните пункт Save boot screen и сохраните результат, задав имя экрана загрузки и указав (при желании) свое авторство.

Boot Screens
Увеличить

Boot Screens
Увеличить

Созданный вами экран загрузки сохранен в файле %USERPROFILE%\Application Data\TuneUp Software\TuneUp Utilities\WinStyler\BootScreens\Royal.tbs. Файл представляет собой специфический ZIP-архив, содержащий три файла: bg.bmp, pb.bmp и index.ini. Этот файл можно сохранить для последующего использования.

Только теперь, щелкнув пункт Show large preview на панели задач, вы увидите в натуральную величину то, что у вас получилось. Если вы довольны результатом, можете щелкнуть кнопку Install Boot Screen и установить новый экран загрузки для системы, в которой вы сейчас работаете. Если нет – смело выбирайте пункт Delete boot screen и пробуйте еще!

Создание и сохранение исполняемых файлов ядра Windows

Теперь надо создать новые файлы ядра Windows. Где же искать "сырье" для работы (файлы ntoskrnl.exe, ntkrnlmp.exe, ntkrnlpa.exe, ntkrpamp.exe)?

Со времени выхода в свет Windows XP, компания Microsoft выпустила несколько обновлений, подменяющих эти файлы их более новыми версиями. На момент написания этой статьи последней публичной версией является 5.1.2600.2622 (KB890859). Также существует версия 5.1.2600.2868 (KB910623). Поэтому источник "сырья", в зависимости от того, каким способом вы интегрируете обновления в дистрибутив, на каком этапе создания собственного инсталляционного диска вы занимаетесь всем тем, о чем мы здесь говорим, а также от многих других факторов, может быть самым разнообразным.

Я использую Набор обновлений для русской Windows XP Professional SP2, автором которого является участник конференции OSZone Petya V4sechkin, и другими способами практически не пользовался, поэтому дальнейший рассказ будет основан на предположении, что наши вкусы совпадают.

Если вы предпочитаете другие способы, то могу подсказать только одно. В полностью "готовом" дистрибутиве Windows XP Professional SP2 все четыре файла ядра находятся в архиве \I386\SP2.CAB. Кроме того, в каталоге \I386 находятся файлы ntoskrnl.ex_ и ntkrnlmp.ex_ (также являющиеся CAB-архивами, содержащими одноименные файлы).

В нашем случае все интересующих нас файлы находятся в каталоге Files , который, в свою очередь, находится в папке, куда вы распаковали архив UpdatePack-XPSP2-Rus.7z.

Одним из этих файлов нам нужно будет на время подменять системный файл %SystemRoot%\SYSTEM 32\ntoskrnl.exe (если у вас однопроцессорная система с менее чем 3 ГБ оперативной памяти). Как правило, произвести такую подмену на обычной Windows XP вам не удастся, так как включенное в ее состав свойство Windows File Protection (WFP) зорко стоит на страже целостности системы. Методов отключения (обхода) WFP существует много, и здесь мы их рассматривать не будем. Воспользуемся самым простым и не требующим никакого дополнительного программного обеспечения способом.

Внимание! Невнимательное или неправильное выполнение дальнейших инструкций может привести к возникновению серьезных проблем, вплоть до необходимости переустановки системы! К таким же последствиям может привести внезапное отключение электропитания вашего компьютера!

  1. Войдите в каталог %SystemRoot%\system32 и скопируйте файл ntoskrnl.exe в ntoskrnl.temp.
  2. Войдите в каталог %SystemRoot%\Driver Cache\i386 и переименуйте файл sp2.cab в sp2.temp.
  3. Войдите в каталог %SystemRoot%\SYSTEM32\dllcache и переименуйте файл ntoskrnl.exe в ntoskrnl.temp.
  4. Скопируйте один из файлов ядра из каталога Files набора обновлений в каталог %SystemRoot%\system32 под именем ntoskrnl.exe.
  5. Сработает WFP и вы увидите сообщение:

    Boot Screens

  6. Нажмите Отмена и ответьте Да на последующий запрос:

    Boot Screens
    Увеличить

  7. Создайте в удобном для вас месте каталог, например, C:\MyKRNL для будущих "новых" файлов ядра, снова запустите программу TuneUp Styler и пройдите в основное окно Boot Screen.

  8. Boot Screens
    Увеличить

  9. Выберете ваш загрузочный экран и щелкните кнопку Install Boot Screen.
  10. Теперь снова войдите в каталог %SystemRoot%\system32 и скопируйте файл TUKernel.exe в каталог C:\MyKRNL под тем же именем, с которым хранится исходный файл в каталоге Files набора обновлений.

Повторив перечисленные операции (начиная с копирования одного из файлов в каталог %SystemRoot%\system32 под именем ntoskrnl.exe) для остальных трех файлов ядра, вы снова получите их полный набор, но теперь уже с вашим загрузочным экраном.

Не забудьте вернуть систему в исходное состояние!

Для этого:

  1. Войдите в каталог %SystemRoot%\system32 и переименуйте файл ntoskrnl.temp в ntoskrnl.exe;
  2. Войдите в каталог %SystemRoot%\Driver Cache\i386 и переименуйте файл sp2.temp в sp2.cab;
  3. Войдите в каталог %SystemRoot%\SYSTEM32\dllcache и переименуйте файл ntoskrnl.temp в ntoskrnl.exe.

Способы использования модифицированных файлов ядра

Использовать полученный набор файлов ядра можно разными способами:

Создание пакетного файла для выбора ядра

Следующий пакетный файл, является простым сценарием, который считывает параметр NUMBER_OF_PROCESSORS из системного реестра, а затем выбирает соответствующий файл ядра.

FOR /F "tokens=3 delims= " %%A IN (`REG QUERY "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v NUMBER_OF_PROCESSORS`) DO SET NUMBER_OF_PROCESSORS=%%A
bootcfg /copy /D "Windows XP Professional" /ID 1
if %NUMBER_OF_PROCESSORS% GEQ 2 goto DUAL
REM ----For Single proc
bootcfg /RAW "/Kernel=singkrnl.exe" /A /ID 2
goto End
:DUAL
REM ----For Multiprocess/Hyperthread proc
bootcfg /RAW "/Kernel=dualkrnl.exe" /A /ID 2
:End
bootcfg /Timeout 2
bootcfg /Default /ID 2

Этот сценарий делает копию оригинальных параметров входа в систему, находящихся в boot.ini, и озаглавливает их как "Windows XP Professional". Затем добавляет в конец /kernel, чтобы использовать другой файл ядра, затем устанавливает задержку на 2 секунды, и, наконец, устанавливает новое ядро по умолчанию.

Если вы хотите использовать другие названия для ваших файлов ядра, я уверен, что вы сообразите, где изменить их. Если вы хотите установить другую задержку, только измените число после ключа /Timeout. Если вам не нужна задержка времени, введите 0.

Сохраните этот пакетный файл как bootscreen.cmd, скажем, в $ОЕМ$ директории. И, если хотите, чтобы bootscreen.cmd сработал при первом входе в систему, то запускайте его из GuiRunOnce.

Подмена оригинальных файлов ядра в дистрибутиве

Если вы хотите "навсегда" расстаться с оригинальным загрузочным экраном Windows default, можете подменить оригинальные файлы ядра в дистрибутиве своими.

Сделать это можно, или самостоятельно перепаковав архивы SP2.CAB, ntoskrnl.ex_ и ntkrnlmp.ex_ в каталоге \I386\ вашего дистрибутива с заменой соответствующих файлов, или воспользоваться моим дополнением (предварительно заменив имеющиеся в нем файлы ядра своими) для автоматического внедрения при использовании UpdatePack-XPSP2-Rus.

Наш загрузочный экран

Автор статьи YuriPet создал изображение для загрузочного экрана с символикой нашего сайта автоустановки, за что ему большое спасибо!

Boot Screens
Увеличить

Вы можете загрузить архив, содержащий данное изображение в форматах BMP и TBS (для работы в программе TuneUp Styler).



К сожалению, приведенный ниже метод не работает для Windows 2000. Данный метод тестировался на ОС Windows XP и Windows 2003 Server. Принцип создания один и тот же, но если на Windows XP все работает на 100%, то при использовании данного подхода на Windows 2003 Server EN возможны проблемы с отображением экрана приветствия (черный фон вместо картинки).

Boot Screen - это экран, который вы видите при загрузке системы. Непосредственно изображение содержится в файле ядра Windows ntoskrnl.exe. Вообще, Windows использует четыре уникальных файла ядра:

На сегодняшний момент процессоры как от AMD, так и от Intel могут быть одноядерными или двуядерными, так что настоятельно рекомендую вам создавать Boot Screen для двух типов процессоров, чтобы избежать дальнейших ошибок и проблем при установке на другие компьютеры.

Данная статья рассказывает как об одно-, так и о мультипроцессорных системах. Для работы вам понадобится:

  1. Файлы ntoskrnl.ex_ и ntkrnlmp.ex_ (находятся в корне папки i386 установочного  дистрибутива, если вы обнаружили эти файлы в директории, отличной от данной,  то настоятельно рекомендую Вам обзавестись другим дистрибутивом, обо к этому  уже была приложена чья-то рука)
  2. BootEditor - программа для создания и редактирования Ваших собственных загрузочных экранов

Подготовка к созданию файла ядра

Распакуйте BootEditor и запустите его. Если появится ошибка об отсутствующем файле, то скорее всего вам нужны msvbvm60.zip и comctl32.zip. Распакуйте их в ту же папку, что и BootEditor.

После первого запуска вы увидите окно, предлагающее ознакомиться со справкой к программе:

Boot Screens

Нажмите Нет (No).

Следующий диалог будет таким:

Boot Screens

Нажмите Close.

Вы вошли в BootEditor. Окно будет выглядеть примерно так:

Boot Screens

Для начала произведем небольшие настройки программы. Нажмите сочетание клавиш Ctrl+O. Вы должны увидеть окно настроек программы:

Boot Screens

В поле Program to start for image editing указываем путь к программе для работы с графикой (в моем случае я буду указывать путь к программе Photoshop). Для более корректного отображения цветов, после обработки необходимо в Настройках также отметить опцию Type of palette in Main и присвоить ей значение Photoshop. Остальные настройки программы на ваше усмотрение, однако новичкам я не рекомендую трогать остальные опции.

Итак, все готово для творческого процесса.  Из меню File выберите New Boot Screen. Должно появиться такое окно:

Boot Screens

Введите имя Вашего будущего загрузочного экрана. Для наглядности я введу имя Desperate.

Теперь мы будем изменять изображение. В последней версии ядра Service Pack 2 внутри только четыре рисунка, в то время как в Windows 2003 и более ранних NT системах более четырех рисунков.

Выберите изображение, которое Вы хотите заменить, нажмите кнопку Load Image или просто щелкните на нем два раза левой кнопкой мышки, и данное изображение откроется в графическом редакторе, где Вы смело можете делать с ним все, что Вашей душе угодно.

Boot Screens

Примечание. Для корректного отображения цветов старайтесь использовать индексированные цвета и сохранять Ваш проект не для Windows, а для OS/2.

Выберите Ваше изображение, которым Вы хотите заменить оригинал. Когда Вы заменяете изображение Main - #1, также нажмите Move, чтобы исправить цветовую гамму файла.

Если Вы хотите переместить полосу прогресса то, при просмотре изображения Main - #1, нажмите на изображение полосы прогресса и перетащите вверх или вниз. Вы не можете переместить влево или вправо.

Давайте сохраним то, что у нас уже получилось. Нажмите кнопку Make расположенную наверху экрана.

Если Вы хотите изменить название, дважды щелкните на теге Name и введите свое название.

Следующий экран предоставит Вам дополнительные опции сохранения файла.

Boot Screens

Если Вы модифицируете одно из более старых ядер, в нем могут быть различные изображения, относящиеся к версии ОС (Professional, Home, Server, Media Center и т.д.). Вы можете удалить эти изображения - они просто не будут отображаться в процессе загрузки. Поясняю: речь идет о надписи под полоской прогресса загрузки (или над полоской, не помню уже :); до Service Pack 2 там отображалась версия ОС. Дважды щелкните в столбце Put it и выберите No.

Нажмите ОК, когда закончите, а затем ещё раз ОК для подтверждения.

Файл, который вы создали, будет сохранен в той же директории, что и Boot Editor. Файл представляет собой zip архив с расширением bootscreen. Забудем на время, о программе BootEditor, но позже мы еще вернемся к ней, т.к. нам еще предстоит превратить наш BootScreen в файл с расширением *.ехе

Создание исполняемого файла

Теперь надо создать фактический файл ядра. Поскольку мы будем создавать как одно-, так и многопроцессорное ядро, то придется заняться рутинной работой по перемещению файлов туда - сюда, их переименованием и замещением. Надеюсь, файлы ntoskrnl.ex_ и ntkrnlmp.ex_. Вы успешно нашли и приготовили для работы. Эти файлы сжаты, для дальнейшей работы их необходимо распаковать куда Вам удобно. Как их распаковать смотрите тут. После распаковки вы должны получить два файла с теми же именами, но уже с расширением *.ехе

Для того чтобы нам не делать резервную копию файла ntoskrnl.exe, мы начнем работу с файлом для многопроцессорных ядер. Берем распакованный файл ntlkrnlmp.exe и переименовываем его в ntoskrnl.exе. Затем нам необходимо скопировать его в папку %SystemRoot%\system32. На вопрос системы о перезаписи файла ответьте Да.

Настало время вернуться к BootEditor, выбираем в программе созданные нами BootScreens (левый столбик):

Boot Screens

и жмем кнопку Test.

Boot Screens

Вы увидите такое окно:

Boot Screens

Нажмите Нет (No), т.к. мы на самом деле ничего не тестируем тут, а создаем файл ядра.

Следующие диалоговое окно сообщает Вам, где создается новый файл и что если бы вы действительно тестировали его, то он бы стал файлом по умолчанию.

Boot Screens

Нажмите ОК, и сделайте это еще раз в заключительном окне.

Поздравляю, вы только что создали файл для многопроцессорных ядер. Забираем его из каталога system32 (файл называется NewBoot.exe) и копируем в папку $OEM$\$$\system32 вашего будущего диска и переименовываем его в dualkml.exe

Теперь нам необходимо создать файл для однопроцессорных систем. Берем файл ntoskrnl.exe, который Вы получили при распаковке файла ntoskrnl.ex_, не переименовывая, его кладем в Ваш каталог system32. Все остальные действия проделываем точно так же, как и с файлом для многопроцессорных ядер. На выходе, в Вашем каталоге system32 мы вновь получим файл с именем NewBoot.exe, с той лишь разницей, что данный файл предназначен для однопроцессорных ядер. Точно так же копируем его в папку $OEM$\$$\system32 и переименовываем в singkrnl.exe

Поздравляю! Вы только что создали два файла ядер с вашим собственным загрузочным экраном.

Создание пакетного файла для выбора надлежащего ядра

Следующий пакетный файл, является простым сценарием, который считывает параметр NUMBER_OF_PROCESSORS из системного реестра, а затем выбирает соответствующий файл ядра.

FOR /F "tokens=3 delims= " %%A IN (`REG QUERY "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v NUMBER_OF_PROCESSORS`) DO SET NUMBER_OF_PROCESSORS=%%A
bootcfg /copy /D "Windows XP Professional" /ID 1
if %NUMBER_OF_PROCESSORS%==2 goto DUAL
REM ----For Single proc
bootcfg /RAW "/Kernel=singkrnl.exe" /A /ID 2
goto End
:DUAL
REM ----For Multiprocess/Hyperthread proc
bootcfg /RAW "/Kernel=dualkrnl.exe" /A /ID 2
:End
bootcfg /Timeout 2
bootcfg /Default /ID 2

Этот сценарий делает копию оригинальных параметров входа в систему, находящихся в boot.ini, и озаглавливает их как "Windows XP Professional". Затем добавляет в конец /kernel, чтобы использовать другой файл ядра, затем устанавливает задержку на 2 секунды, и, наконец, устанавливает новое ядро по умолчанию.

Если Вы хотите использовать другие названия для ваших файлов ядра, я уверен, что Вы сообразите, где изменить их. Если вы хотите установить другую задержку, только измените число после ключа /Timeout. Если вам не нужна задержка времени введите 0.

Сохраните этот пакетный файл как bootscreen.cmd, скажем, в $OЕМ$ директории. Если Вы хотите, чтобы bootscreen.cmd сработал при первом входе в систему, то запускайте его из [GuiRunOnce] или при помощи RunOnceEx.

Возможные проблемы с Boot Editor

Иногда при длительном использовании Boot Editor зависает и не реагирует ни на что. Просто перезапустите Boot Editor и продолжайте работу.


Ссылка: http://www.oszone.net/3149/BootScreens