NTLDR
NTLDR (аббревиатура от NT Loader) является загрузчиком для операционных систем Windows NT и более поздних (2000/XP/Server 2003, за исключением Vista). NTLDR может быть запущен как с переносного устройства (такого как, например, CD-ROM или флэш-накопителя USB), так и с жесткого диска. NTLDR также способен загружать операционные системы, не основанные на технологии NT, путём задания соответствующего загрузочного сектора в отдельном файле. Для запуска NTLDR требуется, как минимум, наличие следующих двух файлов на активном разделе: NTLDR, который собственно и содержит код загрузчика, и boot.ini, в котором записаны команды для формирования меню выбора системы и параметры для её запуска. Чтобы загружать операционные системы на базе Windows NT, необходимо также наличие файла ntdetect.com.
Процесс запуска
При загрузке NTLDR выполняет следующие шаги:
1. Переводит процессор в «плоский» 32-битный режим работы (32-bit flat memory mode);
2. Организует доступ к текущей файловой системе (FAT или NTFS);
3. Читает файл boot.ini и выводит пользователю соответствующее меню для выбора запускаемой ОС:
* если была выбрана не-NT система (например Windows 98), тогда загружается файл bootsect.dos, являющийся полноценной загрузочной записью, и управление передаётся ему.
* если же была выбрана система на базе Windows NT, то запускается программа ntdetect.com, которая собирает информацию о составе оборудования. Эта информация затем передаётся в ядро операционной системы, ntoskrnl.exe, и происходит запуск операционной системы.
Boot.ini
Локализованная версия загрузчика
Как уже было cказано, NTLDR позволяет пользователю выбрать желаемую операционную систему для запуска из обычного меню; также, для операционных систем Windows NT и более поздних, могут быть указаны дополнительные опции загрузки ядра. Все эти настройки хранятся в файле boot.ini, который должен находится в корне того же логического диска, что и NTLDR.
Пример файла boot.ini
Для формирования меню, показанного выше, был использован файл boot.ini следующего содержания:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS=»Windows Server 2003, Enterprise RU» /noexecute=optout /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=»Microsoft Windows XP Professional RU» /noexecute=optin /fastdetect
C:\=»Microsoft Windows»
Описания параметров
* /3GB — Этот параметр появился в третьем сервис паке для NT 4.0 и существует на всех более поздних версиях. Этот ключ поменяет стандартное распределение между пользователем и системой карты виртуальной адресации NT, то есть пользователь получит в свое распоряжение 3GB, а система 1GB. Предоставление большей виртуальной памяти прикладным программам, интенсивно использующим память подобно серверам баз данных может улучшать их производительность. Однако, чтобы приложение смогло использовать это преимущество, оно должно быть помечено как приложение 3GB-aware (обычно такие приложения, например MS SQL 2000 имеют соответствующую настройку в параметрах).
* /BASEVIDEO — Заставляет NT использовать стандартный драйвер VGA в режиме GUI.
* /BAUDRATE=number — Включает режим отладки ядра и определяет скорость порта по умолчанию (19200) по которой будет подключаться удаленный узел отладки. При установке этого параметра автоматически включается параметр /DEBUG. Например: /BAUDRATE=115200.
* /BOOTLOG — Определение этого ключа позволяет NT записать последовательность загруки в лог файл в %SystemRoot%\NTBTLOG.TXT. В лог файле описывается детально какой драйвер загружен или не загружен при загрузке ОС. Например, что-то вроде этого:
Microsoft (R) Windows NT (R) Version 5.0
Loaded driver WINNT\System32\Ntoskrnl.exe
Loaded driver WINNT\System32\hal.dll
Loaded driver WINNT\System32\BOOTVID.dll
Loaded driver pci.sys
Loaded driver isapnp.sys
Loaded driver intelide.sys
* /BURNMEMORY — Эта опция заставит NT «забыть» все ограничения относительно указанного объема памяти, типа /MAXMEM. Значение в МБАЙТ. Пример: /BURNMEMORY=128 указал бы системе — отбрось 128МБ физической памяти на машине как непригодные.
* /CHANNEL — Используется совместно с параметрами /debug и /debugport в целях поддержки порта IEEE 1394.
* /CRASHDEBUG — Загружает отладчик ядра в память, где он остается до тех пор, пока не возникнет ошибка ядра.
* /DEBUG — Загружает отладчик ядра в память. Этот параметр может быть активирован в любой момент из удаленного отладчика, расположенного на компьютере, который подключен к последовательному порту локального компьютера. В отличие от параметра /CRASHDEBUG, при использовании параметра /DEBUG последовательный порт всегда работает как порт отладки. Используйте этот режим, если в работе системы регулярно возникают ошибки.[1]
* /DEBUGPORT=COMx — Задает COM порт для отладки.
* /FASTDETECT[:COMn] — Если у вас стоит две или более операционных систем от Microsoft, то при процессе загрузки используется NTDETECT.COM от самой старшей версии. В Win2K инициализация параллельных и последовательных устройств осуществляется с помощью plug-and-play драйверов устройств, но NT 4.0 в этом смысле полностью полагается на NTDETECT.COM. Таким образом, определяя параметр FASTDETECT, как раз в том месте, где NTDETECT производит инициализацию оборудования при загрузке NT 4.0, ключ заставляет NTDETECT пропустить эти вещи при загрузке Win2K. Установщик Win2K автоматически распознает наличие второй установленной системы и прописывает этот параметр в BOOT.INI автоматически. Можно указывать номера последовательных портов, для которых надо отключить поиск устройств, через запятую. При пропуске параметра COM поиск устройств будет отключен для всех портов.
* /HAL=имя_файла — Указывает аппаратно-зависимый уровень (HAL). Используется для проверки работы различных файлов HAL.
* /INTAFFINITY — Ключ определяет использование многопроцессорного HAL (HALMPS.DLL) для распределения прерываний, например назначение прерывания в многопроцессорной системе только процессору, имеющему высший приоритет. Без этого ключа HAL обычным образом разрешает всем процессорам получать IRQ.
* /KERNEL=имя_файла — Указывает загрузчику какое ядро следует загружать. Например, /KERNEL=ntkrnlmp.exe — загрузка многопроцессорного ядра с памятью меньше 3 ГБ.
* /MAXMEM — Эта опция ограничивает для NT использование памяти. Число в МБайт. Пример: /MAXMEM:32 ограничил бы NT 32МБ системной памяти.
* /MAXPROCSPERCLUSTER — Многопроцессорный HAL в Win2K (HALMPS.DLL) имеет способность к работе с многопроцессорными системами, которые составлены из кластеров в свою очередь состоящих из малых мультипроцессорных систем. Например, если имеется 8-процессорная система, которая составлена из двух 4-процессорных кластеров, то ID каждого процессора должен быть определен ориентируемым кластером через HAL. Размер максимального кластера — 4, и значение по умолчанию — 0 (система не основана на кластерах). Пример: /MAXPROCSPERCLUSTER=3.
* /NODEBUG — Запрещает использование любой отладочной информации.
* /NOEXECUTE — Определяет уровень DEP[2] (появилась начиная с Windows XP SP2). Может принимать четыре значения AlwaysOn, AlwaysOff, OptIn и OptOut.
o OptIn — данное значение используется по умолчанию. На компьютерах, оснащенных процессорами с поддержкой DEP, функция DEP включена по умолчанию для ограниченного числа системных файлов и программ. При этом по умолчанию защищаются только системные файлы Windows.
o OptOut — по умолчанию функция DEP включена для всех процессов. В диалоговом окне Система панели управления можно вручную создать список приложений, для которых следует отключить DEP. Специалисты по информационным технологиям могут воспользоваться пакетом средств обеспечения совместимости приложений (Application Compatibility Toolkit), чтобы отключить функцию DEP для одной или нескольких программ. При этом вступают в силу исправления, обеспечивающие совместимость программ, для функции DEP.
o AlwaysOn — Функция DEP включается для всей системы. Все процессы работают с выполнением проверок DEP. В этом режиме нельзя отключить функцию DEP для отдельных приложений. Исправления, обеспечивающие совместимость программ, для функции DEP в силу не вступают. Программы, для которых с помощью пакета средств обеспечения совместимости приложений было отключено использование функции DEP, также работают с выполнением проверок DEP.
o AlwaysOff — Функция DEP отключена для всей системы, независимо от наличия аппаратной поддержки DEP. Процессор не работает в режиме PAE, если в файле Boot.ini не указан параметр /PAE.
* /NOGUIBOOT — Когда эта опция описана, VGA video драйвер, ответственный за представление графики в течение процесса загрузки Win2K’s не инициализируется. Вообще этот драйвер используется для отображения на экране монитора процесса загрузки, и как правило для отображения Blue Screen, таким образом включение этой опции в BOOT.INI сделает все это невозможным.
* /NOPAE — Загружает версию ядра NT без расширения физических адресов (PAE).
* /NOSERIALMICE — [COMx | COMx, y, z :] — Отключает обнаружение мыши, подключенной к последовательному COM порту (портам).
* /NUMPROC — Допускается только число указанных центральных процессоров. Пример: /NUMPROC=2 на системе с 4 процессорами заставит 2 из этих 4 процессоров простаивать под NT.
* /ONECPU — эта опция указывает NT, использовать только один процессор мультипроцессорной системы.
* /PAE — Загружает версию ядра NT с расширением физических адресов (PAE).
* /PCILOCK — Запрещает Windows NT динамически назначать IO/IRQ ресурсы на PCI устройства и оставляет конфигурацию BIOS-а.
* /PERFMEM —
* /PERFPAGES — Эти ключи не поддерживаются в final release операционных систем, так как они используются NT для резервирования физической памяти для Basic Block Testing (BBT). Существует только одно известное упоминание о BBT на сайте Microsoft: судебное дело США против Microsoft от 2-ого февраля 1999 года. В нем рассказывается о том как Jim Allchin отвечал под присягой на вопросы по поводу BBT. Он сказал, что BBT — вещь оптимизирующая производительность системы. Microsoft использует ее в пререлизах, для того чтобы минимизировать количество страниц памяти. PERFMEM определяет резервирование физической памяти в MB, а PERFPAGES — количество страниц памяти. Эти параметры не должны присутствовать совместно. Место для BBT резервируется в Thread Environment Block (TEB) каждого потока. На самом деле точно не известно как конкретно влияет каждый из параметров на работу системы.
* /SAFEBOOT — Используется крайне редко, так как выполняет те же действия, что и при нажатии F8 для загрузки в защищенном режиме NTLDR. Но Вы можете определить один из трех дополнительных ключей: MINIMAL, NETWORK, или DSREPAIR. MINIMAL и NETWORK отвечают за загрузку ОС в защищенном режиме без и с поддержкой сети соответственно. При защищенном режиме NT загружает только драйвера и сервисы, описанные по имени или группе в Minimal или Network ключах реестра: [HKLM\System\CurrentControlSet\Control\SafeBoot]. Ключ DSREPAIR (Directory Services Repair) указывает NT, что необходимо грузиться в режиме, который восстанавливает Active Directory из backup’а. Дополнительная опция, которую можно определить — «(ALTERNATESHELL)». Она укказывает ядру NT, какую программу, описанную в реестре [HKLM\System\CurrentControlSet\Control\SafeBoot\AlternateShell] использовать в качестве графической оболочки, взамен используемого по умолчанию Explorer’а.
* /SOS — Заставляет NT выдавать во время загрузки всю информацию относительно того, какие драйверы загружены, и насколько успешно.
* /TIMERES — На многопроцессорном HAL (HALMPS.DLL) эта опция установит разрешающую способность системного таймера. Параметр — число в сотнях наносекунд, его значение будет установлено ближайшим меньшим, который поддерживает HAL. Заданная по умолчанию разрешающая способность — 7.8ms. Пример: /TIMERES=9000 установил бы таймер на разрешение в 98ms.
* /USE8254 — Этот параметр предназначен для систем со старым BIOSом. Он говорит NT HAL, что необходимо использовать 8254 чип таймера в качестве основного.
* /USEPMTIMER — Параметр /usepmtimer указывает на то, что операционные системы Windows XP и Windows Server 2003 используют параметры таймера PM-TIMER, а не параметры счетчика отметок времени, если процессор поддерживает параметры таймера PM_TIMER .
Дополнительные сведения о параметре /usepmtimer см. в следующей статье базы знаний Майкрософт: 895980
* /YEAR — опция очевидно предназначена для проверки на соответствие Y2K. Определение этого параметра говорит ядру NT, что необходимо игнорировать год, сообщаемый системным таймером компьютера, и вместо этого использовать определенный в BOOT.INI. Таким образом, год, используемый в BOOT.INI, воздействует на все программное обеспечение в системе, включая ядро NT. Пример: /YEAR=2001. Примечание: эта опция доступна только на NT 4.0 с 4 Сервис паком и Windows 2000.
Эта статья находится под лицензией GNU Free Documentation License. Она использует материалы из Википедеи.
NTLDR — что это за файл и почему его нельзя удалять
Ошибка NTLDR is missing — Press Ctrl+Alt+Del to restart
Большинство людей, столкнувшись с этой проблемой бегут к мастерам переустанавливать Windows.
Но как поступить, если у вас хранится там те данные, которые вам нельзя потерять или у вас нету времени заниматься форматированием?
Возможно ли обойтись без переустановки?
Что такое NTLDR is missing?
Эта фраза в переводе «NTLDR потерян», то есть ваш загрузочный файл может быть поврежден, либо его не видит ваша операционная система, либо нет наличия других необходимых файлов.
Это часто случается в Windows 2000, Vista, XP, 7 и 8. Мы рассмотрим как решить вопрос с такой проблемой на примере версии Windows XP .
Для правильной загрузки операционки необходимо обязательное наличие этих трех файлов.
- NTLDR ( несет в себе код загрузчика)
- boot.ini ( ответственен за формирование меню и настроек старта операционной системы)
- ntdetect.com ( своего рода «доктор» для вашего программного обеспечения)
Они всегда располагаются в корне диска С.
Почему возникает данная ситуация
Почему появляется надпись NTLDR is missing
Зачастую поломка происходит из-за того что:
- может быть поврежден шлейф (основная его функция — соединить материнку с жестким диском)
- либо вообще отсутствует жесткий диск С. Перейдите в раздел под названием Boot Device Priority в BIOS проверьте во время загрузки, в какой очередности загружаются устройства
- неполадки жесткого диска из-за того что неправильно работают (или вообще не работают) секторы памяти
- когда устанавливали диск, неправильно установили перемычки в нем;
- вирус удалил файл NTLDR из операционки
- файл boot.ini мог быть перемещён из корневого раздела, либо удалён из него вовсе;
- Файлы NTLDR и NTDETECT.COM были распознаны системой как непостоянные, либо переместились в иную папку;
- слишком много файлов располагается в корневом папке (при этом база данных делит их на сегменты сортируя по алфавиту, таким образом NTLDR может попасть в друго сегмент, а ОС при загрузке рассматривает только к первый.
NTLDR в Windows 2000/XP/2003/Vista
Отображаем те системные файлы и папки, которые скрыты в Проводнике. Для этого открываем «Мой компьютер» переходим в Сервис, после чего идём в Свойства папки (рис.4)
Открываем «Вид» и ставим или снимаем галочки, делаем так как показано на рисунке.
Внесение изменений для отображения скрытых папок и файлов
Нажимаем кнопку «применить» и переходим назад в окошко диска. Мы видим список файлов которые загружаются вместе с ОС. ( как на рисунке)
Доступ к ранее скрытым файлам
Находим нужный файл
Если вдруг вы обнаружили, что у вас отсутствует какой-либо файл, первое что сделайте — это не паникуйте! Все поправимо.
Добавить недостающий файл можно несколькими способами:
- Скопировать с того диска что называется установочный
- Закачать из сети
- Скопировать этот файл у друга с компьютера на флешку и затем установить
Разберем только первом варианте «добычи» такого файла, так как другие способы достаточно легкие, с ними справится любой.
После чего у нас появляется такой экран входа в консоль, как на рисунке.
Путь к консоли восстановления
Таким образом, у нас есть возможность зайти в ОС в текстовом режиме, при этом возможно использование только клавиатуры, без мышки.
Программа, сканируя носители, проверяет их на наличие ОС, В завершении скана система выводит все обнаруженные результаты.
Мы видим в этом примере, что у нас установлена всего лишь одна система: 1: C:\Windows.
Консоль восстановления
Если у вас все так же как на картинке, то просто нажмите клавишу 1, а затем Enter .
При наличии пароля администратора введите его и подтвердите. Обязательно не упускаем из вида строку с вопросом: «В какую из версий Windows – нужно осуществить вход?» Если же у вас несколько систем, то выбирайте ту к которой необходим доступ.
Затем вы войдете в систему и для перемещения и поиска желаемых файлов по диску, используйте приведённые ниже команды:
Заходим в диск и пишем команду «cd ..» (без кавычек)
— cd – это смена папки
— пробел и две точки – это тоже самое, что и стрелки Назад в Проводнике.
Путеводитель по папкам
Акцентируем внимание на всех пробелах и знаках пунктуации, они очень важны и от того как они написаны зависит ак загрузится команда.
После чего тиснем клавишу Enter и пишем английскую букву С, Таким образом мы отрываем папку системного диска.
Чтобы мы увидели внутреннее содержимое, вводим команду:
Использование команды dir
Затем заходим на диск CD привода с установкой.
Пишем в команде ту букву, под которой у вас на компьютере пишется диск с приводом.
Если вы не помните, то угадывайте. К примеру«D:», «Е» «F», «G» и т.д.
После того как подобрали необходимо написать команду dir и ищем в том списке что выпал папку I386 — там и находятся файлы, которые нам необходимо скопировать (рис.11).
Ввод команды I386
Весь путь выглядит так:
Путь в папку I386
Среди всего списка обнаруженных файлов, находим нужный:
Копирование файлов: порядок действий
Чтобы скопировать файлы, прописываем команду «copy ntldr c:», в нужно последовательно указать, что и в какой очерёдности необходимо копировать.
И обязательно внимательно следить за знаками!
Если всё сделано правильно, то вы увидите следующее:
Результат копирования NTLDR
Для проверки, на положенном ли месте файл, возвращаемся в папку системного диска, и вводим команду dir.
Для проверки необходимо нажать кнопку перезагрузки. Для этого вписываем команду
и Ваш ПК перезагрузится.
После этого мы можем видеть, что система уже не показывает ошибку и ОС производит успешный запуск.
Правильный запуск операционной системы
NTLDR в Windows 7/8/10
Для остальных версий Windows шаги восстановления имеют много общего с теми, что мы рассматривали.
Загружаем систему при помощью внешнего носителя и попадаем в режим восстановления.
Восстановление ОС
Восстановление Windows 7
Выбираем необходимую для восстановления систему. В нашем примере установлена только одна (рис.18).
Доступные для восстановления ОС
Выбираем, какой именно способ восстановления нам нужен – командная строка.
Средства восстановления
В отличие от предыдущего варианта здесь мы вводим всего лишь две команды:
Команды для восстановления загрузчика
Нажимаем Enter и перезагружаем систему.
Выводы
В завершении хочу вам сказать. Не торопитесь заниматься переустановкой Windows.
Для начала стоит самим немного разобраться, и тогда вы сможете сэкономить ваши деньги и приобрести новый опыт.
Если же вам кажется слишком трудоемким этот процесс, вы можете вытащить с Вашего ПК хард-драйв, установить его в компьютер с аналогичной ОС, и перезаписать нужные файлы.
На этом у меня все. Ниже оставляю ссылку на видео, которое вам поможет в решении данного вопроса.