Boot.ini в 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?

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

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect

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

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
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):

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[operating systems]
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):

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0
[operating systems]
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

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

[boot loader]
 timeout=5
 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
 [operating systems]
 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 и скорректируем время в части окна Таймаут:

время ожидания загрузки системы

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

файл boot.ini в проводнике windows

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

вкладка свойства системы windows xp

правка файла boot_ini

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

содержимое boot.ini

СПРАВКА

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

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

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0
[operating systems]
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

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

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

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

Утилита bootcfg.exe. 

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

boot.ini в bootcfg

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




аргументы команды bootcfg

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

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

меню easybcd добавить запись

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

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

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

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

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

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

  • Представьте, что к имеющейся копии операционной системы (возьмём для упрощения ОС одного поколения обе Windows XP — с разными системами всё ЕЩЁ хуже), пользователь добавляет ещё одну. Возьмём за правило — пользователь не дурак и предусмотрительно разбил винчестер на 2 тома и установил 2-ю на отдельный раздел. Теперь у него 2 ОС Windows XP. И вот наш файл:
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.0
[operating systems]
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

А вот и меню:

две операционные системы windows xp

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

изменим меню загрузки

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

windows по умолчанию

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

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

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

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
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 от Hiren’s для восстановления загрузчика.

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

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

Запись опубликована в рубрике Настройки Windows. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

два × два =