[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
NTplus - утилита для генерации загрузчика SetupLDR (Windows XP/2003) под "свою" папку Утилита может использоваться для создания готового загрузчика Setupldr.bin (версия 5.2.3790.1830) с настройкой под "свой" путь к файлу конфигурации, для RAM-загрузки сборок на базе Windows XP/2003. В настройках указываем путь к конфигу, и, при желании - загрузочную надпись. В загрузчик уже интегрирован NTDETECT.COM (за что отдельное спасибо Nikzzzz), поэтому достаточно лишь добавить файл конфигурации для загрузки.
Что и зачем:
1. Имя файла конфигурации, формируется из пути (п.2). Слева находится индикатор, при несоответствии формату 8.3 (имя 8 символов, расширение 3 символа), сменит цвет на красный.
2. Поле ввода полного пути к файлу конфигурации, максимальная длина пути 24 символа, при превышении или вводе неанглийскими буквами сработает индикация и будет заблокирована кнопка генерации.
3. Поле ввода загрузочной надписи, ограничение 48 символов, с индикатором соответствия.
4. Кнопка очистка/по-умолчанию для загрузочной надписи.
5. Радиокнопки выбора ядра:
a) ntkrpamp.exe (с поддержкой мультипроцессорности SMP и страничной адресации памяти PAE), обычно применяется в полных ядрах продвинутых сборок (например, C9PE, RusLive);
b) ntoskrnl.exe (без SMP и PAE), применяется в урезанных ядрах, например, в Native-версиях (только одно ядро и никаких PAE);
c) ntkrnlmp.exeSMP, но без PAE), обычно применяется в сборках от производителя.
6. Выход.
7. Создать загрузчик. Имя загрузчика будет совпадать с именем меню (п.1), только расширение будет .bin.
Примечание:
Все входные данные - только допустимые символы и английские буквы (используется загрузчик с кодовой страничкой 437 без поддержки кирилицы). Минимальная проверка правильности ввода и ограничений имеется, но это не полноценная проверка. Сам загрузчик может быть запущен из любого пути, привязка нужна только для конфига.

Пример конфигурации, для загрузки Native-ядра C9PE

[SetupData]
BootDevice="ramdisk(0)"
BootPath="\i386\System32\"
OsLoadOptions="/minint /fastdetect /rdpath=\2K10\WINPE\C9NE.IM_"

Пример конфигурации, для загрузки полного ядра C9PE: монтируется 4-й индекс; поддержка только 2-х ядер CPU (остальные варианты закомментированы)

[SetupData]
BootDevice="ramdisk(0)"
BootPath="\i386\System32\"
; Onecore CPU (ограничить, только 1 ядро)
;OsLoadOptions="/minint /fastdetect /onecpu /rdimageoffset=8192 /rdimagelength=3161088 /rdpath=\2K10\WINPE\C9PE.WIM"
; Dual-core CPU (ограничить, только до 2-х ядер)
OsLoadOptions="/minint /fastdetect /numproc=2 /rdimageoffset=8192 /rdimagelength=3161088 /rdpath=\2K10\WINPE\C9PE.WIM"
; Multi-core CPU (без ограничений, поддержка всех ядер)
;OsLoadOptions="/minint /fastdetect /rdimageoffset=8192 /BOOTLOG /rdimagelength=3161088 /rdpath=\2K10\WINPE\C9PE.WIM"
[wimain]
systrim=4
defwim=4
Поддерживаемые системы: все актуальные ОС (ХР...10) и WinPE на их основе (для х64 - только при условии наличия х86-подсистемы).
Вложение

NTplus v1.0

[Цитировать]

    booter
  • 29550
  • Стаж: 2 года 4 месяца
  • Сообщений: 5
  • Репутация:0

    [+] [-]
conty9, отличная утилита, благодарю! aa
В процессе пользования возникла пара вопросов.
1. В отличие от обычного NTLDR, в SetupLDR захардкожен неслабый такой список, что ему непременно следует загружать: всякие файлы, драйверы и т.п. Вопрос: это можно как-нибудь отключить, чтобы он грузил только то, что ему явно указано? Я заглянул вовнутрь загрузчика и обнаружил там слово "skipmissingfiles", но похоже, что это не совсем то. Или то?
2. SetupLDR наотрез отказывается загружать модифицированные файлы, как будто в нём захардкожены контрольные суммы. Вопрос: это можно как-нибудь обойти?
Буду благодарен за помощь!

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
SetupLDR, в отличие от NTLDR, предназначен для загрузки установочного ядра (или РЕ). Отключать/менять ничего нельзя - это ЗАГРУЗЧИК, его задача запуститься из загрузочной записи, на этом этапе нет ключей запуска, параметров реестра и прочего. Он загружает только то, что он умеет загружать, и только в той конфигурации, что предусмотрена MS. Никаких проверок КС там нет.

[Цитировать]

    booter
  • 29550
  • Стаж: 2 года 4 месяца
  • Сообщений: 5
  • Репутация:0

    [+] [-]
89869на этом этапе нет ключей запуска, параметров реестра и прочего. Он загружает только то, что он умеет загружать, и только в той конфигурации, что предусмотрена MS.
Насколько я понимаю, MS предусмотрено загружать то, что прописано в файлах WINNT.SIF, TXTSETUP.SIF, SETUPREG.HIV и им подобных.
89869Никаких проверок КС там нет.
Если бы всё было так просто, то это бы не была M$.
Поменяв любой бит в hal.dll или kdcom.dll, Вы получите сообщение о невозможности загрузки указанных модулей, а изменив, упаси боже, что-то в bootvid.dll, Вы получите сообщение о невозможности загрузки ntoskrnl.exe, в котором Вы ничего не меняли, после чего, если Вам повезёт, сможете провести всего одну весёлую ночь в поисках причины отказа.
Добавлено через 22 минуты 23 секунды:
Небольшой багрепорт. При загрузке с рамдиска, SetupLDR из NTplus требует файл TXTSETUP.SIF, хотя в WINNT.SIF ему прямо сказано грузиться с рамдиска, где указанный файл и находится. В загрузчике из Win2k3 SP2 такой беды нет: ему достаточно только WINNT.SIF, а TXTSETUP.SIF он берёт на рамдиске.

[Цитировать]

    booter
  • 29550
  • Стаж: 2 года 4 месяца
  • Сообщений: 5
  • Репутация:0

    [+] [-]
89939Небольшой багрепорт. При загрузке с рамдиска, SetupLDR из NTplus требует файл TXTSETUP.SIF, хотя в WINNT.SIF ему прямо сказано грузиться с рамдиска, где указанный файл и находится. В загрузчике из Win2k3 SP2 такой беды нет: ему достаточно только WINNT.SIF, а TXTSETUP.SIF он берёт на рамдиске.
Что-то я совсем запутался в своих загрузчиках... У меня их тут уже зоопарк целый.
Поправочка: TXTSETUP.SIF не требует тот SetupLDR, который добыт мной из SmartFix.iso (не знаю, откуда он там взялся), а тот, что из Win2k3 SP2 - требует.

[Цитировать]

    booter
  • 29550
  • Стаж: 2 года 4 месяца
  • Сообщений: 5
  • Репутация:0

    [+] [-]
89939Если бы всё было так просто, то это бы не была M$.
Вспомнил давно забытую вещь: модулям ядра непозволительно иметь в заголовке неправильную контрольную сумму. Иначе ядро и загрузчик пошлют такой модуль куда подальше. Так что с контрольной суммой я как в воду глядел :)


Показать сообщения:    

Текущее время: 29-Мар 08:30

Часовой пояс: UTC + 3


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