Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
Программа Memo Label 4x4 «Ценники и этикетки» предназначена для создания разнообразных ценников, этикеток, наклеек и т.д...
NetAnimate — программа для индикации сетевой активности в трее.Назначение и особенности:программа предназначена для опер...
Программное обеспечение "Гидравлические расчеты тепловых сетей" (далее "программа ГРТС") — это программа, которая выполн...

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

Текущий рейтинг: 3.63 (проголосовало 480)
 Посетителей: 147828 | Просмотров: 191720 (сегодня 2)  Шрифт: - +

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

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

  • ntoskrnl.exe - однопроцессорное ядро Windows
  • ntkrnlmp.exe - многопроцессорное ядро Windows
  • ntkrnlpa.exe- однопроцессорное ядро Windows с более чем 3 Гб оперативной
    памяти (RAM)
  • ntkrpamp.exe - многопроцессорное ядро Windows с более чем 3 Гб оперативной
    памяти (RAM)

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

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

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

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

Распакуйте 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 и продолжайте работу.

Автор: первая часть - YuriPet; вторая часть - D@nil (перевод с англ.), desperate (расширенная редакция)  •  Иcточник: unattended.oszone.net  •  Опубликована: 17.03.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
20.02.2009/12:04  FURANDREJJ

Очень прошю обясните очень подробно как внедрить в дистрибутив Windows XP SP3 Boot Screen, как его сделать, и что куда копировать, что нажимать
26.02.2009/03:27  Vadikan
Комментарии отключены. С вопросами по статьям обращайтесь в форум.