Восстановление загрузчика Windows. Загрузка операционной системы

Операционная система обычно хранится во внешней памяти компьютера – на диске. При включении компьютера она считывается с дисковой памяти и размещается в оперативной памяти. Этот процесс называется загрузкой операционной системы.

Диск, на котором находятся файлы ОС и с которого производится ее загрузка, называется системным .
Программы могут выполняться, только если они находятся в оперативной памяти, поэтому файлы ОС необходимо загрузить в оперативную память.
После включения компьютера производится загрузка ОС с системного диска в оперативную память. Загрузка должна выполняться в соответствии с программой загрузки – загрузчика ОС.
Поэтапно загрузку ОС можно представить следующим образом:
В компьютере находится ПЗУ, содержащее программы тестирования компьютера и первого этапа загрузки ОС, которые называются BIOS (Basic Input/Output System – базовая система ввода-вывода). После включения компьютера эти программы начинают выполняться. Причем информация о ходе этого процесса высвечивается на экране дисплея. Сначала производится тестирование и настройка аппаратных средств, затем начинается загрузка ОС. На этом этапе процессор обращается к диску и ищет в 1 секторе диска наличие небольшой программы-загрузчика Master Boot .

Master Boot ищет на диске основной загрузчик Boot Sector , загружает его в память и передает ему управление. Boot sector (сектор начальной загрузки) – часть диска, зарезервированная для программы самозагрузки ОС. В этом секторе обычно содержится короткая программа на машинном языке, которая загружает ОС.
Далее основной загрузчик ищет остальные модули операционной системы и загружает их в оперативную память.
После окончания загрузки ОС управление передается командному процессору. В случае использования интерфейса командной строки на экране появляется приглашение системы, в противном случае загружается графический интерфейс.
В зависимости от вида ОС, процесс ее загрузки будет отличаться. В состав ОС обязательно входят файлы, отвечающие за процесс загрузки. Рассмотрим «работу» файлов в процессе загрузки Windows XP .

  1. Начальная фаза загрузки.
  2. Выбор системы.
  3. Определение «железа».
  4. Выбор конфигурации.

В начальной фазе NTLDR переключает процессор в защищенный режим. Затем загружает соответствующий драйвер файловой системы для работы с файлами любой файловой системы, поддерживаемой XP (FAT-16, FAT-32 и NTFS).

Если в корневой директории есть BOOT.INI, то его содержание загружается в память. Если в нем есть записи более чем об одной операционной системе, NTLDR останавливает работу — показывает меню с выбором и ожидает ввода от пользователя определенный период времени.

Если такого файла нет, то NTLDR продолжает загрузку с первого раздела, первого диска, обычно это C:\.
Если в процессе выбора пользователь выбрал Windows NT, 2000 или XP , то проверяется нажатие F8 и показ соответствующего меню с опциями загрузки.
После каждой удачной загрузки XP создает копию текущей комбинации драйверов и системных настроек известную как Last Known Good Configuration. Этот коллекцию можно использовать для загрузки в случае если некое новое устройство внесло разлад в работу операционной системы.

Если выбранная операционная система XP, то NTLDR находит и загружает DOS программу NTDETECT.COM для определения «железа», установленного в компьютере. NTDETECT.COM строит список компонентов, который потом используется в ключе HARDWARE ветки HKEY_LOCAL_MACHINE реестра.

Если компьютер имеет более одного профиля оборудования программа останавливается с меню выбора конфигурации. После выбора конфигурации NTLDR начинает загрузку ядра XP (NTOSKRNL.EXE). В процессе загрузки ядра (но перед инициализацией) NTLDR остается главным в управлении компьютером. Экран очищается и внизу показывается анимация из белых прямоугольников. Кроме ядра загружается и слой Hardware Abstraction Layer (HAL.DLL), для того чтобы ядро могло абстрагироваться от «железа». Оба файла находятся в директории System32.

NTLDR загружает драйвера устройств, помеченные как загрузочные. Загрузив их, NTLDR передает управление компьютером дальше. Каждый драйвер имеет ключ в HKEY_LOCAL_MACHINE\SYSTEM\Services. Если значение Start равно SERVICE_BOOT_START, то устройство считается загрузочным. Для каждого такого устройства на экране печатается точка.

NTOSKRNL в процессе загрузки проходит через две фазы — так называемую фазу 0 и фазу 1. Первая фаза инициализирует лишь ту часть микроядра и исполнительные подсистемы, которая требуется для работы основных служб и продолжения загрузки. Фаза 1 начинается когда HAL подготавливает систему для обработки прерываний устройств. Если на компьютере установлено более одного процессора, они инициализируются. Все исполнительные подсистемы реинициализируются в следующем порядке: Object Manager, Executive, Microkernel, Security Reference Monitor, Memory Manager, Cache Manager, LPCS, I/O Manager, Process Manager.

Инициализация Менеджера ввода/Вывода начинает процесс загрузки всех системных драйверов. С того момента где остановился NTLDR загружаются драйвера по приоритету. Сбой в загрузке драйвера может заставить XP перезагрузиться и попытаться восстановить Last Known Good Configuration. Последняя задача фазы 1 инициализации ядра — запуск Session Manager Subsystem (SMSS). Подсистема ответственна за создание пользовательского окружения, обеспечивающего интерфейс NT. SMSS работает в пользовательском режиме, но в отличии от других приложений SMSS считается доверенной частью операционной системы и «родным» приложением (использует только исполнительные функции), что позволяет ей запустить графическую подсистему и login. SMSS загружает win32k.sys — графическую подсистему. Драйвер переключает компьютер в графический режим, SMSS стартует все сервисы, которые должны автоматически запускаться при старте. Если все устройства и сервисы стартовали удачно, процесс загрузки считается удачным и создается Last Known Good Configuration.

Процесс загрузки не считается завершенным до тех пор, пока пользователь не залогинился в систему. Процесс инициализируется файлом WINLOGON.EXE, запускаемым как сервис и поддерживается Local Security Authority (LSASS.EXE), который и показывает диалог входа в систему. Это диалоговое окно показывается примерно тогда, когда Services Subsystem стартует сетевую службу.

Загрузка Windows XP – это сложный и многоэтапный процесс, начинающийся с момента включения компьютера и заканчивающаяся уже после появления на экране рабочего стола. За эти несколько минут выполняется множество скрытых от глаз пользователя операций, каждая из которых длится от долей секунды до нескольких секунд. Сам процесс старта системы можно сравнить с эстафетой, где каждый из участников проходит свою часть пути и решает свои, строго определенные задачи, после чего передает “эстафетную палочку” дальше. Если хотя бы один компонент-участник выпадает из этой цепочки, процесс загрузки останавливается, и на экране, как правило, отображается сообщение об ошибке.

Чтобы иметь представление о том, как проходит загрузка Windows XP, кратко разберем ее последовательность. Досистемные этапы включения компьютера (самотестирование, инициализацию и начало выполнения кода BIOS и т. д.) рассматривать не будем, а за начало старта системы условно примем момент считывания программой BIOS первого сектора жесткого диска, где находится главная загрузочная запись – MBR, содержащая загрузочный код и таблицу разделов (логических дисков). Итак:

  • BIOS считывает код MBR (Master Boot Code) и передает ему управление.
  • Загрузочный код MBR проверяет таблицу разделов и находит раздел, помеченный как активный, считывает его первый (загрузочный) сектор (Boot Sector) и передает управление записанному туда коду.
  • Код загрузочного сектора передает управление загрузчику Windows NT – файлу NTLDR (NT Loader), который находится в корневом каталоге диска, куда установлена операционная система.
  • Загрузчик Windows переводит процессор в 32-разрядный безопасный режим работы, проверяет наличие файла hiberfil.sys (образ спящего режима) и если находит, загружает его. Если такого образа нет, NTLDR считывает файл конфигурации загрузки Boot.INI. Если в этом файле перечислено более одной операционной системы, на экран выводится меню, чтобы пользователь самостоятельно выбрал, какую систему загружать.

  • При нажатии пользователем клавиши F8 перед стартом системы, NTLDR открывает меню дополнительных вариантов загрузки:

  • Далее загружается программа ntdetect.com для определения конфигурации аппаратных устройств компьютера.
  • Вслед за этим загружается ядро Windows XP (файл ntoskrnl.exe) и библиотека Hal.dll (Hardware Abstraction Layer), задача которой – скрыть различия в оборудовании компьютера от кода ядра.
  • После этого загрузчик NTLDR загружает драйвера, помеченные как загрузочные, и передает управление ядру (ntoskrnl.exe).
  • HAL инициализирует оборудование и подготавливает контроллер прерываний.
  • Далее включается в работу система ввода-вывода и загружаются остальные драйвера, которым назначен тип запуска “авто”.
  • Ядро загружает подсистему управления сеансами Windows – файл Smss.exe, который создает пользовательское окружение и продолжает загрузку – запускает графическую подсистему (драйвер win32k.sys), клиентсерверную подсистему (Csrss.exe) и программу входа пользователя (Winlogon.exe и Lsass.exe).
  • После логина пользователя запускается Userinit.exe, запускающий оболочку системы (проводник Explorer.exe) и сетевые подключения. На экране, тем временем, появляется рабочий стол.

Почему Windows XP не загружается?

Причиной, по которой Windows XP не загружается, может быть любой сбой в “эстафете” процесса загрузки, например, отсутствие или повреждение одного или нескольких компонентов. Это может быть загрузочный код в первом разделе жесткого диска или активного раздела, сам загрузчик NTLDR, файлы, ответственные за запуск Windows, а также системный реестр, где содержится информация о том, что и в какой последовательности запускать.

К нарушению загрузки чаще всего приводит:

  • неквалифицированная установка нескольких операционных систем на жесткий диск, когда вместо создания конфигурации с двойной загрузкой, загрузочный код позже установленной системы затирает код ранее установленной;
  • вирусное заражение, преимущественно – блокираторы-вымогатели, которые могут модифицировать параметры запуска важных для загрузки файлов в системном реестре, сами файлы и загрузочные сектора на диске.
  • дефекты поверхности жесткого диска, приводящие к повреждениям и потере данных на нем;
  • перебои в электропитании компьютера во время операций чтения записи файлов, ответственных за загрузку (если во время запуска или завершения работы Windows произошло неожиданное выключение, вероятность того, что система больше не загрузится, довольно существенна).

Восстановление загрузки Windows XP

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

Повреждение MBR (главной загрузочной записи)

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

  • Invalid Partition Table – повреждение таблицы разделов;
  • Missing Operating System – не найдена операционная система;
  • Error Loading Operating System – ошибка загрузки операционной системы.

Решение

  • Загрузите с установочного диска с дистрибутивом Windows XP консоль восстановления (Recovery Console): поместите в привод установочный диск, сконфигурируйте BIOS для загрузки с CDDVD и запустите программу установки.
  • После появления на экране текста “Вас приветствует программа установки”, нажмите клавишу “R” (восстановление).

  • Запустится консоль восстановления. На экране будет отображен список установленных на компьютере копий Windows XP и вам будет предложено указать, в какую из них выполнить вход.

  • Далее введите пароль администратора (если есть). Если его нет, просто нажмите Enter, а следом – команду перезаписи загрузочного кода MBR: fixmbr , нажмите Enter и Exit для выхода из консоли и перезагрузки компьютера.

Эта команда восстанавливает только загрузчик MBR (boot code), а таблицу разделов, к сожалению, нет. Восстановление таблицы разделов требует использования сторонних утилит, например, TestDisk – одного из бесплатных и доступных для понимания инструментов.

Повреждение загрузочного сектора

По симптомам похоже на повреждение MBR, но при этом система может выдавать следующие ошибки:

  • А disk read error occurred – ошибки чтения диска;
  • NTLDR is compressed – загрузчик NTLDR заархивирован (сжат);
  • NTLDR is missing – загрузчик не найден.

Решение

  • Загрузите консоль восстановления и выполните вход в нужную вам копию Windows XP;
  • Введите команду: fixboot – загрузчик (код) активного раздела будет перезаписан. Далее – Enter и Exit.

Важно! Если в корневом каталоге вашей системы отсутствует файл NTLDR – загрузчик Windows, его придется скопировать с установочного диска или другой копии Windows XP и поместить на диск C: (если система находится на нем).

С появлением Windows Vista была создана утилита Bootsect.exe , предназначенная для перезаписи загрузочного кода разделов диска. Ее также можно использовать для восстановления загрузки Windows XP.

Утилитой Bootsect.exe можно воспользоваться, если у вас на жестком диске стоит еще одна операционная система Windows или загрузившись с Windows LiveCD (“живого” диска с операционной системой, которая работает при загрузке с DVD или флешки).

Восстановление загрузки системы с помощью Bootsect.exe выполняется следующим образом:

  • скопируйте файл Bootsect.exe (можно взять с дистрибутива Windows Vista и выше) в корневую директорию системы, загрузку которой вам требуется восстановить.
  • запустите командную строку и выполните команду: Путь_к_bootsect.exe /NT52 , например: D:bootsect.exe /NT52.

Ошибки конфигурации загрузки в файле Boot.INI

Если конфигурационный файл загрузки Windows XP содержит ошибки или отсутствует, загрузчик NTLDR не сможет найти систему. О проблемах с Boot.INI свидетельствуют следующие сообщения:

  • Check boot path and disk hardware – предложение проверить путь к загрузочному диску и сам диск;
  • Could not read from selected boot disk – прочитать данные с загрузочного диска не удалось;
  • Windows could not start because of a computer disk hardware configuration problem – из-за проблем с конфигурацией диска загрузить Windows не удалось.

Решение

  • Запустите консоль восстановления.
  • После входа в систему выполните команду: bootcfg /rebuild – каждый раздел диска будет просканирован на наличие установленной в нем копии Windows XP. При обнаружении первой же системы, пользователю будет предложено добавить информацию о ее загрузки в конфигурационный файл:

Восстановление конфигурации загрузки будет выполнено.

Повреждение системных файлов

В загрузке Windows принимает участие множество файлов – помимо тех, которые мы назвали, еще несколько десятков. Отсутствие или повреждение любого из них может привести к тому, что система не сможет стартовать, а вместо этого будет циклически перезагружаться или “радовать” пользователя синими экранами смерти (BSoD). Скриншот одной из типичных ошибок, связанных с системными файлами при загрузке, приведен ниже:

Запись “STOP C000021a {fatal system error}” – говорит о неустранимой ошибке системы, связанная с проблемами в входе выполнения Winlogon.exe или Csrss.exe. Это, вероятнее всего, говорит о том,что файлы повреждены или отсутствуют.

Решение

Для выполнить восстановление загрузки, необходимо найти аналогичные файлы и вернуть их на “законные места” – в каталог WindowsSystem32. Их копии находятся в хранилище Windows – папке WindowsSystem32DllCach или на установочном диске в папке i386. На дистрибутивном диске файлы хранятся в сжатом виде, и перед заменой их необходимо распаковывать. Это можно сделать также при помощи Recovery Console:

  • Скопируйте на флешку с установочного диска папку i386 , подключите ее к компьютеру.
  • Выполните вход в систему, загрузчик которой требуется восстановить.
  • Введите команду: expand d:i386winlogon.ex_ c:windowssystem32 – с ее помощью архивный файл winlogon.ex_ на установочном диске будет распакован в папку system32 под именем winlogon.exe. Аналогичным образом можно провести восстановление и других файлов. D: – в данном случае – буква флешки.

Повреждение куста реестра SYSTEM

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

Файлы реестра уникальны для каждой системы, поэтому их восстановление при помощи переноса с другой копии Windows невозможно – необходим свой собственный раздел. Копия реестра, созданного на момент установки системы, хранится в каталоге WindowsRepair

Решение

Восстановление поврежденного раздела также несложно выполнить через консоль.

  • Выполните вход в Windows.
  • Введите команду: rename c:windowssystem32configsystem system.old и нажмите Enter. Поврежденный куст реестра будет переименован, теперь на его место можно копировать новый.
  • Выполните вторую команду: copy c:windowsrepairsystem c:windowssystem32configsystem – будет произведено восстановление раздела. После этого вы сможете загрузить систему.

Переустановка операционной системы часто означает, что необходимо произвести вашего компьютера. Но тем не менее по причине вирусов и аппаратных сбоев в любой момент может потребоваться процесс восстановления загрузчика Windows XP. Вы можете переустановить загрузчик системы без или потери файлов. Некоторые из основных причин его сбоя - вирусы, аппаратный сбой или ошибки при проведении XP. Неисправный загрузчик - ваша единственная проблема? Ниже представлена инструкция, как восстановить загрузчик Windows XP без переустановки всей операционной системы.

Этот загрузчик называют главной загрузочной записью, а также MBR. Он контролирует запуск жесткого диска и позволяет компьютеру выполнять включение его ОС. Загрузчик предлагает множество полезных функций и улучшений. Также он имеет мощную систему для управления устройством. К сожалению, некоторые изменения в вашем компьютере или вирус могут повредить, изменить или удалить его. Это может повлиять на функционирование ПК. В результате он либо окажется не в состоянии загрузиться вообще, либо запустится с проблемами загрузки некоторых частей ОС. Процесс восстановления загрузчика Windows XP может быть произведен с помощью установочного компакт-диска операционной системы или восстановления диска.

Восстановить загрузчик Windows XP можно посредством выполнения следующих пунктов:

    Включите компьютер и установите запуск с установочного диска.

    Сделайте запуск консоли восстановления.

Прежде всего, следует вставить установочный диск Windows XP либо диск для в оптический привод и перезагрузить компьютер. Теперь чтобы загрузить установленную версию Windows, ПК будет запускаться с компакт-диска. Следует нажать необходимую клавишу при появлении запроса, а затем нужно ждать настройки программы для загрузки.

Запуск консоли восстановления

На экране должна появиться надпись, что программа установки вас приветствует. Нажмите клавишу «R». Это повлечет запуск для того чтобы попытаться заново установить Windows XP на компьютер. Если требуется пароль администратора в настройках Windows XP, необходимо ввести его. Потом выберите Затем дождитесь появления командной строки и введите команду Fixmbr. Нажмите на клавишу «Y», когда будет предложено, что утилита «FixMbr» намеревается переписать поврежденный загрузчик новой копией. После этого процедура восстановления загрузчика Windows XP будет завершена.

Советы по завершению процесса

Удалите из привода загрузочный диск и выберите «Выход» в командной строке. Эта команда может привести к перезагрузке ПК. Это позволит компьютеру загрузить новый файл загрузчика, и тогда можно продолжать запуск Windows XP в обычном режиме. Также рекомендуется установить антивирусное программное обеспечение для удаления вирусов и защитить файлы загрузчика, чтобы повторная процедура восстановления загрузчика Windows XP в ближайшее время не понадобилась.

Один из самых важнейших системных файлов операционной системы Windows XP с критическими настройками загрузки системы Windows XP и известный всем как файл boot.ini. Разберём его на запчасти.

Если ещё кто не понял, это один из самых первейших файлов, с которыми общается XP при загрузке. Хранится в виде простого текста в корневой директории системы. Его адрес незыблем: C:\boot.ini. А так как файл является системным, ему автоматически (как и другим собратьям) присваиваются специальные атрибуты типа Скрытый , Системный и Только для чтения . Так что, если желаете его отредактировать, придётся сменить некоторые из Свойств папок – без них Проводник Windows XP такие файлы скрывает:

Как работает boot.ini ?

Boot.ini содержит информацию о местонахождении XP на вашем компьютере. Если операционных систем несколько, информация о них также в файле отображается (если в загрузке, конечно, принимают участие только версии до Windows XP включительно – загрузка версий от Windows Vista идёт совершенно другим порядком).

СПРАВКА

В версиях от Windows Vista и позднее файла boot.ini не существует. Информация по загрузке хранится в файле реестра с именем Boot Configuration Data (BCD) и для редактирования параметров загрузки применяется утилита bcdedit.com из командной строки.

Во время процесса запуска системы за правильный выбор операционной системы отвечают функции другого файла – Ntldr , который и “заглядывает” в рассматриваемый сейчас boot.ini, который файлу Ntldr и сообщает, где систему или системы, собственно нужно искать. Файл boot.ini также призван рассказать, нужно ли показывать какое-то меню с выбором вариантов запуска и временем на их выбор. Кроме того, именно в этом файле и располагалась возможность загрузить операционную систему в или запустить консоль восстановления системы.

Меню загрузки Windows XP

Если в файле boot.ini сохраняется опция БОЛЕЕ ОДНОЙ, загрузка XP будет автоматически сопровождаться появлением характерного меню.

Структура и содержание файла boot.ini

Файл содержит две основные категории. Первый – boot loader . В нём содержаться две настройки. Время ожидания перед загрузкой подсвеченной системы по умолчанию “timeout={ ХХ сек.}” – вы вольны выставить от 30 до 0. А операционная система, загружаемая по умолчанию выводится в строке “default ={адрес операционной системы} . И у большинства пользователей эта запись одна и та же:

"default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS"

Нижеследующие параметры означают:

  • multi(Х) – используется контроллером ATA диска для поиска загрузочного раздела. Параметр всегда предшествует параметру disk (Х) , если не появляется неактивированный в BIOS контроллер SCSI
  • rdisk(X) – физический жёсткий диск; Х – количество винчестеров – 0, 1, 2 и т.д. Отсчёт идёт от 0!
  • disk (Х) – логический диск (он же том физического диска); Х – количество томов – 0, 1, 2 и т.д. Отсчёт идёт от 0!
  • partition(Х) – это параметр завязан с параметром rdisk(X) – означает раздел этого физического жёсткого диска; Х – количество разделов- 1, 2, 3 и т.д. Отсчёт идёт от 1!
  • \WINDOWS – характерная именно для Windows XP форма параметра для местонахождения системных файлов (ХР-ха хранит файлы в этой папке).

Точка входа используется файлом Ntldr для того, чтобы найти место, где система лежит. Но существуют и более сложные по написанию пути дефолтные строки файла boot.ini, которые, однако на домашних машинах почти не встретишь, да и со стандартами они так и не определились, так что подобные системы ушли в небытие. Но что интересует рядового пользователя, так это возможность изменить порядок загрузки в мультизагрузочной конфигурации компьютера. Обычно, проходящая рядовым порядком установка нескольких операционных систем, прописывает по умолчанию верные пути, с коими можно поиграть описываемыми ниже способами.

Однако так происходит до момента, когда работоспособность одной из систем перестаёт пользователя устраивать, или после неудачной установки запись появилась, а системы … уже нет.

Но продолжим.

Вторая секция нашего файла – operating systems – включает в себя список операционных систем и загрузочных программ, а также их местоположение. Также может содержать и ключи, которые настраивают определённую в списке систему. Но фактически строчка из параметра boot loader дублируется. Если систем несколько, просто указываются их имена (описание) через знак “= “. Параметр /fastdetect заставляет ещё один критически важный файл NTDETECT пройти мимо, например, параллельно установленного в том же шлейфе устройства (например, привода чтения оптических дисков DVDROM), но также обладающего присвоенным ему порядковым номером. Такие номера есть и у клавиатуры, и у мышки, и у кардридера… Таким образом, пользователю предоставляется возможность указать в качестве загрузочного устройства не сам том, а DVDROM, флешку или раздел жёсткого диска, который содержит только установочные файлы, но самой системы не имеет. Однако такую операцию лучше проводить на отформатированном диске без нужных вам файлов – приготовьтесь к неизбежным ошибкам и переустановкам. Процесс чрезвычайно громоздок и требует знаний и навыков. И самое главное – ни один из инструментов редактирования boot.ini файла не позволит вам отобразить и исполнить операции с записями тех операционных систем, что загружаются с помощью других загрузчиков.

Какие бывают файлы boot.ini?

Вот самый типичный из примеров текста внутри искомого файла – всё просто, система одна:

timeout =30 default =multi(0)disk(0)rdisk(0)partition(1)\WINDOWS multi(0)disk(0)rdisk(0)partition Professional" /fastdetect

Вот пример с включённой опцией консоли восстановления:

timeout =30 default =multi(0)disk(0)rdisk(0)partition(1)\WINDOWS multi(0)disk(0)rdisk (0)partition (1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect C:\CMDCONS\BOOTSECT.DAT="Microsoft Windows Recovery Console" /cmdcons

А это пример двойной загрузки с двумя разными версиями Windows XP (Home и Professional ):

timeout =30 default =multi(0)disk(0)rdisk(0)partition(1)WINDOWS multi(0)disk(0)rdisk (0)partition (1)WINDOWS=”Microsoft Windows XP Professional RU” /noexecute=optin /fastdetect multi(0)disk(0)rdisk (1)partition (1)WINDOWS=”Microsoft Windows XP Home” /noexecute=optin /fastdetect

А вот почти тот же файл, но пользователь решил установить 2 операционные системы на один логический диск – это часто просто недопустимо (обратите внимание на параметры partition (X) –системные папки Windows имеют имена Windows и Windows.0 ):

timeout =3 default disk(0)rdisk (0)partition (1)\WINDOWS.0="Microsoft Windows XP Professional RU" /execute /fastdetect multi(0)disk(0)rdisk (0)partition (1)\WINDOWS="Microsoft Windows XP Home Edition

Пример, когда пользователь сменил время на раздумья до 5 секунд и добавил опцию Безопасного режима :

timeout =5 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS multi(0)disk(0)rdisk (0)partition (1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect multi(0)disk(0)rdisk (0)partition (1)\WINDOWS="Safe Mode" /safeboot:minimal /sos /bootlog

Как отредактировать boot.ini файл вручную?

Раз это текстовый файл, значит его можно и поправить. Сначала сменим атрибуты. Это делается прямо в настройках самого файла после того, как вы сделали его видимым в директории системного диска. Да… скопируйте содержимое файла в документ и расположите в известном месте, ибо одна лишь ошибка – и система не будет загружаться, либо меню изменится не в вашу пользу.

Какие есть варианты?

Сократим время на раздумья, например, до 10 секунд. Запустим утилиту конфигурации msconfig и скорректируем время в части окна Таймаут :

В этом окне мы с содержимым файла больше ничего не сможем сделать. Зато поработать с текстом файла можно либо найдя его через проводник:

… а можно через панель управления Windows XP (или через Мой компьютер):

В любом случае Блокнот отобразит его содержимое:

СПРАВКА

А теперь маленький секрет о том, что происходит, когда вы открываете это окно. Именно эту вкладку. В Windows семейства NT это очень прикольная штука – всякий раз по открытии именно этой вкладки Windows обращается НАПРЯМУЮ к MBR разделу жёсткого диска (да-да, минуя память) с одной лишь целью: узнать, а какой, собственно, диск сейчас является загрузочным? Так вот, если у вас на винчестере 2 различных тома с 2-мя операционными системами Windows XP, смените на мгновение в Консоли управления дисками назначение дисков, поменяв загрузочные тома местами. И проверьте ещё раз содержимое файла boot.ini – оно изменилось (если, конечно, само содержание файлов одинаковое, без дополнительных опций, вы разницы не увидите). И это один из моментов, которые могут здорово облегчить процесс установки нескольких копий Windows XP в особых условиях (например, с жёсткого диска) без программ типа EasyBCD.

Ладно… Смотрим код нашего файла ещё раз:

timeout =3 default =multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0 multi(0)disk (0)rdisk (0)partition (1)\WINDOWS.0 =" RU" /execute /fastdetect multi(0)disk(0)rdisk (0)partition (1)\WINDOWS="Microsoft Windows XP Home Edition RU" /noexecute=optin /fastdetect

В этом файле говорит файлу Ntldr , что ждём 3 секунды (timeout=3 ) чтобы с винчестера – физического жёсткого диска – (rdisk (0)) логического тома 0 раздела 1 (disk (0) partition (1)) загрузилась Windows XP Professional , системные файлы которой находятся в папке Windows.0 . Вторая из систем (Home Edition ) будет ждать выбора пользователя. Повторюсь, что такие мультизагрузочные настройки двух систем на одном томе – верх безалаберности пользователя.

Как ещё можно отредактировать boot.ini ?

Конечно,существует программа, которая позволяет относительно безопасно корректировать файл загрузки. Она уже прошита в систему.

Утилита bootcfg.exe.

Создана специально для того, чтобы работать с повреждённым файлом boot.ini или для редактирования путей входа в файл. Команда включает в себя несколько ключей. Вот как выглядит файл в утилите:

А вот и команды утилиты с аргументами для неё:


А как же EasyBCD ? Не в этот раз…

Эта программа может гораздо больше, чем просто отредактировать меню. Она предназначена для комплексной “переработки” меню загрузки с выбором, переименованием, сменой порядка загрузки и вариантами установки операционных систем различного типа. Один из способов описан в одноимённой статье.

Однако, господа, это не наш случай – в части самого названия программы аббревиатура BCD уже означает, что изначально программе нужна почва загрузчика не ниже Vista, который, как я уже упоминал, работает СОВЕРШЕННО по-другому. Так что не трудитесь искать более ранние версии программы для Windows XP (в которой программа, кстати, прекрасно работает). В них лишь больше ошибок, нежели в современных, но условие со времени появления программы одно – для корректной работы прямо из меню программы EasyBCD вам понадобится версия Windows не ниже Vista. Однако даже в среде Windows XP EasyBCD может оказаться чрезвычайно полезной.

Ошибки в работе с редактированием режима мультизагрузки.

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

  • в чём разница между физическим и логическим дисками
  • в чём разница между активным и логическим разделами жёсткого диска
  • что такое системный том (диск)
  • что такое и где находится загрузочный сектор диска
  • что такое форматирование и для чего оно нужно
  • как правильно читать файл загрузки систем (про boot.ini вы уже знаете всё)
  • в чём отличие процесса загрузки Windows XP и Vista (и выше)

Рассмотрим самые типичные примеры винегрета, в которые может попасть сам пользователь.

ПРИМЕР ПЕРВЫЙ

  • Представьте, что к имеющейся копии операционной системы (возьмём для упрощения ОС одного поколения обе Windows XP – с разными системами всё ЕЩЁ хуже), пользователь добавляет ещё одну. Возьмём за правило – пользователь не дурак и предусмотрительно разбил винчестер на 2 тома и установил 2-ю на отдельный раздел. Теперь у него 2 ОС Windows XP. И вот наш файл:
timeout =3 default =multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0 multi(0)disk (0)rdisk (0)partition (1)\WINDOWS.0 ="Microsoft Windows XP Professional RU" /execute /fastdetect multi(0)disk(0)rdisk (0)partition (1)\WINDOWS="Microsoft Windows XP Home Edition RU" /noexecute=optin /fastdetect

А вот и меню:

  • Однако, как часто бывает, одна из них приходит в негодность. Та, что установлена первой. И принято решение: удалить. Что можно сделать? Конечно, воспользоваться полученными знаниями и стереть информацию из меню, чтобы там больше не было записи. Удалим строчку о неработающей системе (допустим, версии XP Professional):

Как вы поняли, Windows меню изменится, но система будет продолжать загружаться. Кто понял, молодец. Кто нет, объясняю. Boot.ini говорит файлу Ntldr , что нужно загрузить Windows из папки Windows.0 . Разделы, сам номер диска совпадают, а информации о папке нет – мы только что её удалили. Но сама папка жива и здравствует, а её настройки позволяют системе загружаться. Как итог, меню загрузки изменится (это тот самый случай, когда незнание пользователем основ работы ОС спасает от неправильной коррекции файла boot.ini и позволит сохранить данные, но не порядок в файлах!):

извините за качество – запись Windows (по умолчанию) засвечена

Как нужно было сделать?

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

Timeout=3 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition RU" /noexecute=optin /fastdetect

Как видно, мы удалили не только саму информацию о имеющейся папке Windows.0 , но и сменили её название в параметре defaults , указав нужную Windows с “живой” системой (кстати, раз уж система осталась одна, timeout можно указать 0 – чего толку смотреть на выбор, если выбора-то и нет).

ПРИМЕР ВТОРОЙ

Вообще ничего не загружается. Если так, то вы повредили что-то из этого:

  • BOOT.INI
  • NTLDR
  • NTDETECT.COM

Ну, кстати, я не раз принудительно удалял boot.ini, и система загружалась. Если у вас такой трюк не прокатывает, придётся воспользоваться DOS-овыми программами из пакета LiveDVD от для восстановления загрузчика.

P.S. На каждую ошибку статьи не напишешь. Пока писал, статья, как я заметил, разрослась до почти нечитаемой. Так что задавайте вопросы в комментах.

Успехов нам всем.

Прочитано: 1 244

По терминологии Microsoft эти загрузочные файлы (ntldr, boot.ini, ntdetect.com, ntbootdd.sys и bootsect.dos для мультизагрузочных систем) находятся в системном разделе, загрузочный сектор которого содержит системный загрузчик Windows NT.

В то же время раздел диска или диск, на котором располагается папка Winnt и, соответственно, системные файлы, необходимые для работы ОС (в том числе ntoskrnl.exe, ядро Windows NT), вполне спокойно может не совпадать с системным разделом и поэтому при запуске ПК необходимо сделать так, чтобы загрузчик Windows NT без труда нашел системные файлы. Раздел же, на котором располагается папка Winnt, в Microsoft принято называть загрузочным, простим им эту путаницу - это далеко не самый тяжелый случай.

Таким образом, при включении ПК ход загрузки операционной системы проходит в несколько этапов: BIOS компьютера считывает и загружает в оперативную память главную загрузочную запись Master Boot Record (MBR), в которой находится таблица разделов диска и небольшая программа - эта программа находит начальный адрес системного раздела на диске и загружает в память копию его загрузочного сектора (сектор 0), а затем, если раздел помечен как "активный" в таблице разделов, передает управление другой программе - загрузчику Windows NT из только что перенесенного в память загрузочного сектора.

В нулевом секторе жесткого диска находится загрузочный код, который распознает файловую систему, а затем находит, загружает в память и запускает следующую специальную программу из корневой директории системного диска - ntldr (от NT Loader), предназначенную для инициализации загрузки собственно самой операционной системы, задания некоторых параметров ее работы и для вывода меню вариантов загрузки в мультизагрузочной системе. После этого уже начинается выполнение обычных программ из файлов, находящихся на диске, что и приводит к полной загрузке всей операционной системы и к возможности запускать прикладные программы.

Правда, поскольку Windows NT может работать не только на платформе i386, следует оговориться, что мы рассматриваем применимые в нашем быту "персоналки", не касаясь особенностей загрузки NT на других платформах (на процессорах RISC, например, программа osloader.exe выполняет те же функции, что на PC выполняются файлами ntldr, ntdetect.com и bootsect.dos).

Если рассматривать работу начала начал операционных систем класса NT - загрузчика ntldr подробнее, то ее также можно разбить на несколько этапов: ntldr переключает процессор в режим 32-разрядной модели памяти с прямой адресацией запускает минифайловую систему для доступа к томам FAT, FAT32 и NTFS считывает файл boot.ini, также расположенный в корневом каталоге системного диска отображает меню выбора операционной системы (если выбирается ОС, отличная от Windows NT, то считывается файл bootsect.dos с копией загрузочного сектора предыдущей ОС и управление передается ему) запускает файл ntdetect.com, собирающий информацию о физических устройствах, подключенных к компьютеру в момент загрузки загружает и запускает ядро ОС - файл ntoskrnl.exe и передает ему информацию, собранную ntdetect.com.

NT Loader использует в процессе своей работы специальный текстовый конфигурационный файл boot.ini - один из важнейших системных файлов Windows NT / 2000 / XP, несколько напоминающий по своей сути файл msdos.sys из Windows 9x. Именно он позволяет системе находить папку Winnt, если она расположена не на системном разделе диска.

На файл boot.ini возложено несколько функций: управление содержимым меню выбора операционной системы во время загрузки ПК, управление самим процессом загрузки системы, а также задание некоторых параметров ее дальнейшего функционирования.

Файл составлен по привычному стандарту ini-файлов - разделы с названиями в квадратных скобках и параметры в каждом из разделов (в boot.ini предусмотрено два раздела можно добавить и еще какой-нибудь раздел, но системой он будет просто проигнорирован - это нередко используется для того, чтобы временно закомментировать тот или иной параметр).

И хотя в нем может находиться довольно много различных параметров, редактируется все это малопонятное простому пользователю хозяйство, к сожалению, самым простым и самым неудобным способом - в любом текстовом редакторе. А отредактировать это файл вполне может понадобиться любому пользователю, соблазнившемуся красивыми финтифлюшками сыроватой Windows XP (в конференции нашего журнала проблемы с этой операционкой - хит сезона), причем не только при его повреждении, случайном удалении и последующем воссоздании, но и, например, в случае добавления в систему или удаления из нее дисков или их разделов.

Разумеется, для работы с этим скрытым файлом, находящимся в корневой директории загрузочного диска, необходимо снять с него атрибут "только чтение", иначе текстовый редактор не сможет сохранить внесенные в boot.ini изменения.

Некоторые возможности по внесению изменений в этот файл дает, правда, меню "Загрузка операционной системы" (System Startup) диалога "Загрузка и восстановление" ("Startup and Recovery") свойств системы, а также появившаяся в Windows XP утилита msconfig.exe, однако полный доступ к его параметрам возможен только при ручном редактировании, либо при использовании небольшой дополнительной программы, предоставляющей понятный графический интерфейс - System Configuration Editor.
Эта программа предназначена для безопасного редактирования файлов конфигурации: Autoexec.bat, Config.sys, Win.ini, System.ini, Networks, Lmhosts, Hosts, Boot.ini.

В Windows XP, кстати говоря, появилось и еще одно не менее ценное дополнительное средство восстановления этого файла - команда bootcfg консоли восстановления, после выполнения которой с таким ключом - bootcfg /rebuild происходит сканирование жестких дисков в поисках инсталляций систем класса NT и восстановление файла boot.ini в соответствии с полученными результатами поиска. В более старых же системах альтернативой ручному восстановлению файла является только запуск программы переустановки системы.

Строение файла boot.ini в простейшем случае, с одной операционной системой на диске ПК Intel х86, выглядит следующим образом:


timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows XP Professional" /fastdetect

При использовании двух операционных систем, например, Windows Me и Windows XP, содержимое файла будет примерно такое:


timeout=5
default=C:\
C:\="Windows Millennium Edition"
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows XP Professional" /fastdetect

Как можно заметить, в данных примерах раздел служит для задания двух параметров загрузки операционной системы, в частности, параметр timeout=5 определяет количество секунд, в течение которых пользователь имеет возможность выбрать либо загружаемую ОС, либо один из пунктов загрузочного меню (например, загрузить систему в режиме защиты от сбоев).

При timeout=0 загрузочное меню не отображается, а при timeout=-1 это меню будет находиться на экране неограниченное время в ожидании выбора пользователя.

Каждый пользователь волен выставить это время по своим вкусам - для меня удобной цифрой является 5 секунд. По умолчанию же задержка составляет 30 секунд, максимум - 999.

Параметр default определяет путь к загружаемой по умолчанию операционной системе. Путь этот в случае с Windows NT задается в формате ARC (Advanced RISC Computing), о правилах которого чуть ниже. Если же в мультизагрузочной системе ОС по умолчанию является, например, Windows 98 (или MS-DOS, Linux), то достаточно указать default=C:\, где С: - диск, на котором находятся системные файлы Windows 9x (вернее - образ ее загрузочного сектора bootsect.dos, а также io.sys, msdos.sys и т. д.).

Такой операционной системе и в следующем разделе будет соответствовать строка типа C:\="Windows Millennium Edition" или C:\bootsect.lnx="Linux" - то есть путь к файлу-образу ее загрузочного сектора (его название может быть любым, по выбору пользователя). Кстати, для создания такого файла-образа удобно использовать утилиту BootPart, предназначенную как раз для расширенной работы с загрузчиком NT.

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

Учтите, что ARC-путь (кроме имени папки и названия ОС) должен быть записан маленькими (строчными) буквами - по крайней мере, в Windows NT 4 заглавные буквы приводили к невозможности загрузить систему. Максимально возможное число строк в этом разделе - 10, следовательно, и операционных систем на своем ПК вы можете иметь одновременно аж 10 штук.

Если вы вдруг утратили файл boot.ini, то самое сложное при его ручном восстановлении - правильно воссоздать путь к загрузочному разделу в формате ARC. Путь этот может начинаться либо с метки multi(), либо с метки signature(). Метку multi() можно наблюдать в подавляющем большинстве случаев, применяется она для дисков IDE, ESDI, SCSI в тех случаях, когда ОС для своей загрузки использует механизмы системного BIOS (прерывание INT13).

При таком раскладе запись пути к загрузочному диску и к директории загружаемой операционной системы в файле boot.ini будет выглядеть следующим образом: multi(0)disk(0)rdisk(x)partition(y)\ имя_каталога_Windows = "Название_ОС, отображаемое_в_загрузочном_меню" / параметр

  • multi(0) указывает порядковый номер адаптера, с которого осуществляется загрузка и всегда имеет значение "0" (нумерация начинается с нуля, начиная с контроллера, расположенного ближе к слоту 0 на материнской плате);
  • disk(0) - всегда равен нулю, так как прерывание INT13 не может использоваться для идентификации нескольких дисковых контроллеров (для большинства BIOS);
  • rdisk(x) определяет порядковый номер жесткого диска, с которого производится загрузка, нумерация начинается с 0, и обычно x - число от 0 до 3;
  • partition(y) - порядковый номер раздела жесткого диска, с которого загружается ОС, нумерация начинается с 1 (соответствует диску С: в привычном обозначении), в первую очередь нумеруются первичные разделы, затем идут логические диски. Не нумеруются расширенные разделы MS-DOS (тип 5) и разделы типа 0 - неиспользуемые.

Формат записи, начинающийся с метки signature() - ранее, в NT для этого служила метка scsi(), теперь применяется signature(), поддерживающая работу с механизмами Plug-n-Play Windows 2000 / XP - встречается реже и используется при работе как со SCSI-дисками (если у контроллера SCSI отключен BIOS), так и с IDE-дисками в отсутствие поддержки INT13. В этом случае запись в boot.ini принимает такой вид: signature(x)disk(y)rdisk(z)partition(w)\имя_каталога_ Windows="Название_ОС, отображаемое_в_загрузочном_меню" /параметр

  • signature(x) указывает уникальную сигнатуру диска (шестнадцатеричное число - signature(8b467c12)), содержащуюся в его MBR. Сигнатура эта вписывается в главную загрузочную запись диска в процессе установки Windows, в начале ее текстового этапа;
  • disk(y) - идентификатор SCSI ID жесткого диска;
  • rdisk(z) - номер SCSI LUN (Logical Unit Number) жесткого диска, практически всегда это 0;
  • partition(w) - порядковый номер раздела жесткого диска, с которого загружается ОС, нумерация начинается с 1, в первую очередь нумеруются первичные разделы, затем идут логические диски. Не нумеруются расширенные разделы MS-DOS (тип 5) и разделы типа 0 - неиспользуемые.

Обратите внимание, что если используется формат signature(), то в корне системного диска должен находиться файл ntbootdd.sys - переименованная копия драйвера мини-порта SCSI, предназначенная для доступа к SCSI-адаптеру при загрузке.