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.exe (с SMP, но без PAE), обычно применяется в сборках от производителя. 6. Выход. 7. Создать загрузчик. Имя загрузчика будет совпадать с именем меню (п.1), только расширение будет .bin. Примечание: Все входные данные - только допустимые символы и английские буквы (используется загрузчик с кодовой страничкой 437 без поддержки кирилицы). Минимальная проверка правильности ввода и ограничений имеется, но это не полноценная проверка. Сам загрузчик может быть запущен из любого пути, привязка нужна только для конфига.
Пример конфигурации, для загрузки Native-ядра C9PE
conty9, отличная утилита, благодарю! В процессе пользования возникла пара вопросов. 1. В отличие от обычного NTLDR, в SetupLDR захардкожен неслабый такой список, что ему непременно следует загружать: всякие файлы, драйверы и т.п. Вопрос: это можно как-нибудь отключить, чтобы он грузил только то, что ему явно указано? Я заглянул вовнутрь загрузчика и обнаружил там слово "skipmissingfiles", но похоже, что это не совсем то. Или то? 2. SetupLDR наотрез отказывается загружать модифицированные файлы, как будто в нём захардкожены контрольные суммы. Вопрос: это можно как-нибудь обойти? Буду благодарен за помощь!
SetupLDR, в отличие от NTLDR, предназначен для загрузки установочного ядра (или РЕ). Отключать/менять ничего нельзя - это ЗАГРУЗЧИК, его задача запуститься из загрузочной записи, на этом этапе нет ключей запуска, параметров реестра и прочего. Он загружает только то, что он умеет загружать, и только в той конфигурации, что предусмотрена MS. Никаких проверок КС там нет.
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 он берёт на рамдиске.
89939Небольшой багрепорт. При загрузке с рамдиска, SetupLDR из NTplus требует файл TXTSETUP.SIF, хотя в WINNT.SIF ему прямо сказано грузиться с рамдиска, где указанный файл и находится. В загрузчике из Win2k3 SP2 такой беды нет: ему достаточно только WINNT.SIF, а TXTSETUP.SIF он берёт на рамдиске.
Что-то я совсем запутался в своих загрузчиках... У меня их тут уже зоопарк целый. Поправочка: TXTSETUP.SIF не требует тот SetupLDR, который добыт мной из SmartFix.iso (не знаю, откуда он там взялся), а тот, что из Win2k3 SP2 - требует.
89939Если бы всё было так просто, то это бы не была M$.
Вспомнил давно забытую вещь: модулям ядра непозволительно иметь в заголовке неправильную контрольную сумму. Иначе ядро и загрузчик пошлют такой модуль куда подальше. Так что с контрольной суммой я как в воду глядел :)
Текущее время: 21-Ноя 13:24
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы