Глава 2. Загрузка операционной системы
Пользователю, который "включил компьютер, но ничего не работает", обычно не до смеха, особенно если он не может самостоятельно выяснить, что случилось, и устранить неполадку. Посмотрим на вещи реально: поскольку проблемы с загрузкой возможны при работе с любой операционной системой, то и Windows 2000 не является исключением из общего правила. Несмотря на изменение названия (Windows 2000 вместо Windows NT 5.0), эта операционная система базируется на технологии NT (этот факт отражен в заставке, появляющейся при запуске систем). Именно по этой причине в процессе загрузки Windows 2000 могут возникать некоторые проблемы, с которыми сталкивались ранее пользователи операционных систем Windows NT. Тем не менее стоит порадовать пользователей и хорошими новостями: система действительно стала надежнее, стабильнее, и, кроме того, в ее состав добавлены новые средства устранения как проблем с загрузкой, так и других неполадок.
Грамотный пользователь не должен пугаться, услышав слова "boot-сектор", "главная загрузочная запись", "POST" и т. п. Чтобы по возможности быстро и с минимальными потерями выйти из ситуации, при которой возникают проблемы с загрузкой Windows 2000, необходимо знать, как происходит процесс загрузки, от момента включения компьютера и до регистрации пользователя в системе.
Процессы, происходящие при успешном запуске компьютер; под управлением Windows 2000, перечислены ниже:
|
Самотестирование при включении (Power-On Self-Test, POST) |
|
Инициализация при запуске (Initial startup process) |
|
Работа загрузчика (Boot loader process)
|
|
Загрузка ядра
|
|
Регистрация пользователя |
Процесс запуска начинается, когда пользователь выполняет одно из следующих действий:
|
Включает компьютер (который ранее был выключен) |
|
Выполняет перезагрузку компьютера, выбрав опцию Завершение работы (Shutdown) в диалоговом окне Вход в Windows (Enter Password) или опцию Перезагрузка (Restart) в диалоговом окне Завершение работы Windows (Shut Down Windows) |
К моменту регистрации пользователя в системе компьютер уже завершает загрузку Windows 2000 и большую часть процесса инициализации. Однако полностью все процессы будут завершены только после успешной регистрации пользователя в системе.
Чтобы система Windows 2000 начала загружаться, необходимо соблюдение следующих условий:
|
Корректная инициализация аппаратных средств компьютера |
|
Наличие всех файлов, необходимых для загрузки системы |
При включении питания или перезагрузке компьютер проходит стадию самотестирования (bootstrapping) аппаратных средств при включении питания (так называемую процедуру POST, Power-On Self-Test). В это время компьютер работает под управлением базовой системы ввода/вывода (Basic Input/Output System, BIOS). При возникновении проблем с аппаратными средствами или настройками уже на стадии POST, компьютер сигнализирует об этом серией звуковых сигналов. На этот случай следует иметь под рукой сопроводительную документацию, полученную от поставщика в комплекте с вашим компьютером.
Успешное завершение процедуры POST свидетельствует о корректной инициализации аппаратных средств компьютера. Теперь для запуска операционной системы требуется присутствие всех нужных файлов. Процедура запуска системы закончится неудачей, если хотя бы один из файлов, необходимых для ее загрузки, не будет найден или окажется поврежденным.
Файлы, необходимые для успешного запуска Windows 2000, перечислены в табл. 2.1.
Таблица 2.1. Файлы, необходимые для запуска Windows 2000
Файлы | Местоположение |
NTLDR | Корневой каталог загрузочного диска |
Boot.ini | Корневой каталог загрузочного диска |
Bootsect.dos (только в системах с двойной загрузкой, где в качестве альтернативной операционной системы используются MS-DOS, Windows 3.1x или Windows 9 x, этот файл необходим для загрузки альтернативной ОС) | Корневой каталог загрузочного диска |
Ntdetect.com | Корневой каталог загрузочного диска |
Ntbootdd.sys (только для SCSI) | Корневой каталог загрузочного диска |
Ntoskrnl.exe | %SystemfloofS6\System32 |
Hal.dll | %Systemfloof%\System32 |
Раздел реестра SYSTEM | %SysfemffoomSystem32\Config |
Драйверы устройств | %Systemfloof%\System32\Drivers |
Примечание |
|
Инициализация при запуске
После успешного завершения процедуры POST начинается процесс инициализации при запуске: на компьютерах х86 системная BIOS ищет и загружает в память загрузочный сектор (boot sector), инструкции которого затем загружают в файл NTLDR.
После завершения тестов POST на компьютере х86 системная BIOS пытается обнаружить загрузочный диск. Порядок поиска загрузочного диска (флоппи-дисководы, жесткие IDE- и SCSI-диски, устройства CD-ROM) задается BIOS. Современные BIOS позволяют пользователю переконфигурировать этот порядок, называемый последовательностью загрузки (boot sequence). Подробную информацию о редактировании последовательности загрузки можно найти в сопроводительной документации к вашему компьютеру. Если при этом дисковод А: включен в последовательность загрузки первым, и в нем находится дискета, BIOS попытается использовать эту дискету в качестве загрузочной. Если дискеты в дисководе нет, BIOS проверяет первый жесткий диск, который к этому времени уже инициализировался. Для запуска огромное значение имеет первый сектор жесткого диска, который содержит главную загрузочную запись (Master Boot Record, MBR) и таблицу разделов (partition table).
Системная BIOS считывает главную загрузочную запись и загружает ее в память, а затем передает ей управление. Код, содержащийся в главной загрузочной записи, сканирует таблицу разделов в поисках системного раздела. Найдя системный раздел, MBR загружает в память его нулевой сектор и исполняет код, содержащийся в этом секторе. Сектор 0 на системном разделе, так называемый загрузочный сектор раздела (partition boot sector), содержит загрузочный код операционной системы. Этот код и осуществляет запуск операционной системы по способу, определенному данной операционной системой.
Примечание |
|
Если на первом жестком диске нет системного раздела, главная загрузочная запись отобразит одно из следующих сообщений об ошибках:
|
invalid partition table (Неверная таблица разделов) |
|
Error loading operating system (Ошибка загрузки операционной системы) |
|
Missing operating system (Отсутствует операционная система) |
Процедура идентификации и изменения системного раздела также описана в главе 8.
Как правило, главная загрузочная запись не зависит от конкретной операционной системы. Например, на компьютерах х86 одна и та же главная загрузочная запись служит для запуска Windows NT/2000, Windows 9x, а также комбинации MS-DOS/Windows 3.1*. Что касается загрузочного сектора раздела, то он зависит как от операционной системы, так и от используемой файловой системы. На компьютерах х86 загрузочный сектор раздела системы Windows 2000 отвечает за выполнение следующих действий:
|
Распознавание используемой файловой системы и ее применение для поиска загрузчика операционной системы (NTLDR) в корневом каталоге системного раздела. В томах FAT структура данных, называемая загрузочным сектором раздела, действительно имеет длину в 1 сектор физической разметки диска. В томах FAT32 эта структура занимает уже 2 сектора физической разметки диска, поскольку загрузочный код занимает более 512 байт. В томах NTFS загрузочный сектор раздела может занимать до 16 секторов, причем дополнительные секторы могут содержать код файловой системы, необходимой для поиска NTLDR. |
|
Нахождение загрузчика операционной системы NTLDR и его загрузка в память. |
|
Начало исполнения кода самозагрузки. |
На компьютерах х86 системный раздел должен находиться на первом физическом жестком диске. Загрузочный раздел (который содержит системные файлы операционной системы Windows NT/2000) может совпадать с системным разделом, но может находиться и в другом разделе того же жесткого диска или даже на другом жестком диске.
Если первый жесткий диск не содержит системного раздела, который должен использоваться для запуска компьютера, необходимо отключить этот диск, чтобы BIOS могла получить доступ к нужному жесткому диску, с которого будет запускаться операционная система.
Подробная информация о том, почему в ряде случаев можно попытаться использовать для запуска компьютера другой диск, приведена в главе 8, посвященной подготовке и проведению восстановительных процедур.
Если в дисководе А: имеется дискета, BIOS загрузит в память первый сектор этой дискеты. Если дискета является системной, то ее первый сектор представляет собой загрузочный сектор раздела (Partition Boot Sector). Если дискета не является загрузочной и отформатирована под управлением MS-DOS или Windows 9x, то вы увидите на экране следующее сообщение об ошибке:
Non-System disk or disk error
Replace and press any key when ready
Если же дискета не загрузочная и отформатирована в Windows NT/2000, то сообщение будет таким:
Ntldr is missing
Press any key to restart
Загрузчик (boot loader) позволяет выбрать операционную систему, которую требуется запустить, и загружает файлы операционной системы из загрузочного раздела. В системах на базе процессоров х86 и системах на базе RISC-процессоров загрузчик работает по-разному. Общие задачи, выполняемые на данном этапе, сводятся к установке 32-разрядной модели памяти с прямой адресацией (flat addressing), сбору данных об аппаратной конфигурации, построению ее описания в памяти и передаче указателя на это описание в блок загрузчика. После этого NTLDR (для платформ х86) или OSLOADER (для платформ RISC) загружает образ ядра, HAL и драйверы для устройств и файловой системы тома, с которого производится загрузка системы. Помимо всего прочего, на данном этапе производится также и загрузка некоторых драйверов, для которых равен нулю параметр реестра Start, расположенный в следующем разделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ ServiceName
Здесь ServiceName представляет собой имя сервиса, например:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi
Примечание |
|
NTLDR управляет процессами выбора операционной системы и распознавания аппаратных средств перед инициализацией ядра Windows 2000. Загрузчик NTLDR должен находиться в корневом каталоге системного диска. Помимо этого в системном разделе должны присутствовать файлы, перечисленные в табл. 2.1.
Когда NTLDR начинает работу, он очищает экран и выполняет следующие действия:
|
Переключает процессор в режим использования 32-разрядной модели памяти с прямой адресацией. Компьютеры х86 при запуске стартуют в реальном режиме, подобном режиму, в котором стартуют процессоры 8088 и 8086. Поскольку NTLDR представляет собой 32-разрядную программу, для того чтобы загрузчик смог начать выполнять какие бы то ни было действия, процессор необходимо переключить в защищенный режим. |
|
Запускает соответствующую минифайловую систему. Код, предназначенный для доступа к файлам на томах FAT и NTFS, встроен в NTFS. Этот код позволяет загрузчику читать файлы, получать доступ к ним и выполнять их копирование. |
|
Читает расположенный в корневом каталоге системного диска файл Boot.ini и отображает на экране соответствующее меню для выбора загружаемой операционной системы. Экран, выводимый на данном этапе загрузки, называется экраном загрузчика (boot loader screen). Если компьютер сконфигурирован для загрузки нескольких систем, и пользователь выбирает операционную систему, отличную от Windows NT/2000, то NTLDR загружает в память файл Bootsect.dos и передает ему управление. Другая операционная система стартует как обычно, поскольку файл Bootsectdos содержит копию загрузочного сектора раздела, который находился на основном разделе или логическом диске до инсталляции Windows NT/2000. |
|
Если выбрана одна из версий Windows NT/2000, то выполняется Ntdetect.com, чтобы собрать информацию о физических устройствах, подключенных на данный момент к компьютеру. |
|
Загружает и запускает ядро операционной системы Ntoskrnl.exe и передает ему информацию, собранную программой Ntdetect.com. |
Загрузчик операционной системы отображает на экране меню, в котором можно выбрать запускаемую операционную систему. Вид этого экрана зависит от информации, которая содержится в файле Boot.ini. Например, там можно увидеть следующее:
Выверите операционную систему для запуска:
Microsoft Windows 2000 Professional RUS
Microsoft Windows 2000 Server
Microsoft Windows 98
Используйте клавиши и Ї для выделения нужной строки. Нажмите клавишу ENTER для подтверждения выбора. Выделенная система будет автоматически запущена через: 29
Для выбора особых вариантов загрузки Windows 2000 нажмите F8.
Выбор операционной системы, которую требуется запустить, ничем не отличается от аналогичного процесса при работе с другими версиями Windows NT (например, 3.51 и 4.0). Операционная система, указанная в приведенном списке первой, выбирается по умолчанию, и изначально курсор установлен на этой строке. Чтобы выбрать для запуска другую операционную систему, воспользуйтесь клавишами перемещения курсора (< > и <Ї >), выделите нужную операционную систему и нажмите клавишу <Enter>.
Если вы не выберете ни один из пунктов меню к тому моменту, когда счетчик, указанный в строке:
Выделенная система будет автоматически запущена через: 29
достигнет нуля, NTLDR загрузит операционную систему, указанную в файле Boot.ini по умолчанию. Программа установки Windows 2000 задает в качестве параметра по умолчанию копию последней инсталлированной копии Windows 2000. файл Boot.ini можно отредактировать, указав в качестве загружаемой по умолчанию операционной системы любую из установленных, отличную от последней инсталлированной версии Windows 2000. Подробную информацию о содержимом файла Boot.ini и методах его редактирования см. далее в этой главе.
Любой пользователь, имеющий хотя бы небольшой опыт работы с предыдущими версиями Windows NT, сразу же заметит одно небольшое, но существенное отличие экрана загрузчика Windows 2000 от экрана загрузчика Windows NT 4.0. Это — следующая строка, расположенная в нижней части экрана:
Для выбора особых вариантов загрузки Windows 2000 нажмите F8.
Аналогичная клавиша — <F8> — имелась в системах Windows ,95/9^ Если 5 загрузка Windows 2000 завершается неудачей, возможно, вам помогут опции отладочного меню, выводимого по нажатию клавиши <F8>.
Итак, если при появлении меню загрузки Windows 2000 нажать клавишу <F8>, то на экране появится меню следующего содержания:
Меню дополнительных вариантов загрузки Windows 2000
Выберите одну из следующих возможностей:
Безопасный режим
Безопасный режим с загрузкой сетевых драйверов
Безопасный режим с поддержкой командной строки
Включить протоколирование загрузки
Включить режим VGA
Загрузка последней удачной конфигурации
Восстановление службы каталогов <только на контроллере домена Windows 2000>
Режим отладки
Обычная загрузка
Возврат к выбору операционной системы
Используйте клавиши и Ї для выделения нужной строки. Нажмите клавишу ENTER для подтверждения выбора.
Это меню будет оставаться на экране до выбора одной из опций. При загрузке в безопасном режиме (safe mode) Windows 2000 использует стандартные параметры настройки (монитор VGA, без сетевых средств, с минимальным количеством драйверов — фактически, запускаются только драйверы, необходимые для загрузки Windows). Например, если после инсталляции нового программного обеспечения Windows 2000 перестала запускаться, то вполне возможно, что загрузка в безопасном режиме позволит выполнить запуск операционной системы с минимальным количеством сервисов и драйверов. После загрузки вы сможете изменить параметры настройки компьютера, не позволяющие выполнить корректную загрузку Windows 2000, или удалить программное обеспечение, вызвавшее эти проблемы.
Ниже кратко описаны опции дополнительного меню загрузки:
|
Безопасный режим (Safe Mode)
Если пользователь выбирает эту опцию, то при запуске Windows 2000 загружаются только базовые файлы и драйверы, абсолютно необходимые для работы Windows (стандартные драйверы мыши и клавиатуры, накопителей, базовый драйвер видеоадаптера VGA и минимальный объем стандартных системных сервисов). Если Windows 2000 невозможно загрузить даже с использованием этого режима, то вероятнее всего, потребуется процедура восстановления поврежденной системы. Подробная информация по данному вопросу и пошаговые инструкции по проведению процедуры восстановления приведены в главе 8. |
|
Безопасный режим с загрузкой сетевых драйверов (Safe Mode with Networking)
Если выбрана данная опция, то Windows 2000 загружается с использованием только базовых файлов и драйверов (как и в случае с выбором предыдущей опции), но в дополнение делается попытка запуска сетевых служб и восстановления сетевых соединений. |
|
Безопасный режим с поддержкой командной строки (Safe Mode with Command Prompt)
Выбор этой опции приводит к попытке запуска Windows 2000 с использованием только базовых файлов и драйверов, и вместо графического интерфейса Windows отображает на экране командную строку. |
|
Включить протоколирование загрузки (Enable Boot Logging)
При выборе этой опции Windows 2000 будет записывать протокол загрузки в файл %SystemRoot9S\Ntbtlog.t\t. Действие этой опции аналогично включению параметра /bootlog в файле Boot.ini (см. табл. 2.3). |
|
Включить режим VGA (Enable VGA Mode)
После выбора данной опции компьютер загружается с использованием стандартного драйвера VGA. Аналогичный результат дает применение параметра /basevideo в файле Boot.ini (см. табл. 2.3). |
|
Загрузка последней удачной конфигурации (LastKnownGood Configuration)
Такая опция существовала и в Windows NT 4.0. При ее выборе Windows 2000 запускается с использованием информации реестра, сохраненной после того, как система в последний раз была успешно загружена. Следует сразу же отметить, что эта опция позволяет исправить только ошибки конфигурирования системы, да и то не всегда. Использовать ее рекомендуется лишь в тех случаях, когда точно известно о допущенной конфигурационной ошибке. Проблемы, вызванные отсутствием или повреждением системных файлов или драйверов, использование этой опции исправить не поможет. Помимо этого, следует помнить, что все изменения, внесенные после последнего успешного запуска Windows 2000, в случае применения этой опции будут потеряны. |
|
Восстановление службы каталогов <только на контроллерах домена Windows 2000> (Directory Services Restore Mode (Windows 2000 domain controllers only))
Как следует из ее названия, данная опция предназначена для восстановления службы каталога. |
|
Режим отАадки (Pebugging Mode)
Эта опция запускает Windows 2000 и устанавливает отладочный режим, при котором отладочная информация пересылается по последовательному кабелю на другой компьютер. |
Если в меню загрузчика выбрана одна из версий Windows NT/2000 (или начала загружаться система по умолчанию, когда истек срок действия таймера), то NTLDR вызывает Ntdetect.com, чтобы собрать информацию о физических устройствах, подключенных на данный момент к компьютеру. Ntdetect.com возвращает полученную информацию загрузчику NTLDR.
Если для загрузки выбрана операционная система Windows 2000, и в ней имеется только один профиль аппаратной конфигурации, то после того, как загрузчик получит информацию об аппаратных средствах компьютера, он продолжит процедуру загрузки, запустив ядро операционной системы Ntoskrnl.exe и передав ему информацию, собранную программой Ntdetect.com.
Если в Windows 2000 создано несколько профилей аппаратной конфигурации, то на экране появится следующая информация:
Меню выбора конфигурации оборудования
Данное меню позволяет выбрать конфигурацию оборудования,
которая будет использоваться при запуске Windows 2000.
Если система не запускается, то можно переключиться на использование предыдущей конфигурации системы, и тем самым обойти проблемы запуска. ВНИМАНИЕ: Изменения конфигурации системы, внесенные после последнего удачного запуска, будут потеряны.
Profile 1
Profile 2
Используйте клавиши со стрелкой для перемещения выделенной строки выбора нужного элемента, а затем нажмите клавишу ENTER. Для переключения на последнюю удачную конфигурацию нажмите клавишу ' L'.
Для выхода из этого меню и перезагрузки компьютера нажмите клавишу F3.
Выделенная конфигурация будет автоматически запущена через: 28 сек.
После этого загрузчик в течение нескольких секунд ожидает, давая пользователю возможность выбрать один из существующих профилей аппаратной конфигурации или одну из перечисленных опций (клавишей <L> или <F3>).
Первый аппаратный профиль выделен курсором. Чтобы использовать для загрузки другой аппаратный профиль, клавишами со стрелками переместите курсор к нужной опции и нажмите клавишу <Enter>.
Кроме того, пользователю предоставляется возможность выбора между конфигурацией по умолчанию и последней удачной конфигурацией.
Как правило, если не выбрана последняя удачная конфигурация, Windows 2000 загружает конфигурацию по умолчанию. При загрузке конфигурации по умолчанию загрузчик использует информацию реестра, сохраненную Windows 2000 при последней остановке системы.
Если вы выберете последнюю удачную конфигурацию, нажав сначала клавишу <L>, а затем — клавишу <Enter>, то загрузчик для конфигурирования опций запуска будет использовать информацию реестра, сохраненную в разделе HKEY_LOCAL_MACHINE\SYSTEM\Select после того, как система в последний раз была успешно загружена.
Более подробную информацию об управляющих опциях, последней удачной конфигурации (LastKnownGood) и конфигурации по умолчанию (Default) можно найти далее в этой главе.
Получив информацию об аппаратных средствах компьютера и выбранном аппаратном профиле, загрузчик запускает ядро операционной системы Ntoskrnl.exe и передает ему информацию, собранную программой Ntdetect.com.
Информация о выбранном аппаратном профиле передается загрузчику, когда пользователь нажимает клавишу <Enter> в меню выбора конфигурации оборудования (Hardware Profile/Configuration Recovery). Помимо этого загрузчик может сделать выбор автоматически по истечении указанного интервала времени (или в случае, если в системе существует только один аппаратный профиль).
О начале фазы загрузки ядра Windows 2000 сигнализируют появляющиеся на экране точки, которые служат индикатором степени завершенности загрузки в память ядра Windows 2000 (Ntoskrnl.exe) и слоя (уровня) аппаратных абстракций (hal.dll). На данном этапе эти модули еще не инициализированы. Далее загрузчик просматривает реестр, извлекает информацию о заданных по умолчанию или определенных пользователем размерах невыгружаемого (резидентного) пула памяти (nonpaged pool) и реестра (registry quota) и загружает раздел HKEY_LOCAL_MACHINE\SYSTEM из файла %SystemKoof% \System32\Config\System.
На данном этапе загрузчик активизирует API для работы с реестром и создает набор управляющих параметров (control set), который будет использоваться для инициализации компьютера. Эти задачи являются подготовительными для загрузки драйверов. Значение, заданное в разделе HKEY_ LOCAL_MACHINE\SYSTEM\Select (рис. 2.1), определяет, какой набор управляющих параметров из перечисленных в разделе HKEY_LOCAL_ MACHINE\SYSTEM должен использоваться при загрузке.
Рис. 2.1. Раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\Select
|
По умолчанию загрузчик использует набор управляющих параметров, определяемый значением "Default". Если пользователь выбрал последнюю удачную конфигурацию, то загрузчик использует набор управляющих параметров, определяемых значением LastKnownGood. На основании сделанного пользователем выбора и значения раздела Select загрузчик определяет, какой из наборов управляющих параметров (ControlSetOOx) будет использоваться. После этого загрузчик устанавливает значение Current раздела Select (рис. 2.1) на номер набора управляющих параметров, который он будет использовать.
Далее загрузчик сканирует все сервисы (службы), определенные разделом реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services и ищет драйверы устройств, для которых параметр Start равен 0x0 (такое значение указывает на то, что драйверы должны быть загружены, но не инициализированы). Как правило, драйверы с такими значениями представляют собой низкоуровневые драйверы устройств, например, драйверы дисков. Значение Group для каждого драйвера устройства определяет порядок, в котором загрузчик должен его загружать. Раздел HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\ServiceG roupOrder реестра определяет порядок загрузки.
К моменту завершения этой фазы все базовые драйверы загружены и активны, за исключением случаев, когда один из критически важных драйверов не инициализировался, вследствие чего началась перезагрузка системы.
В системах Windows 2000 об инициализации ядра сигнализирует появление графической заставки. Это — чисто "косметическое" отличие от Windows NT 4.0, которое не меняет принципов загрузки Windows 2000 по сравнению с предыдущей версией системы.
Хотите убедиться в справедливости сказанного? Нет ничего проще. Добавив параметр /sos в строку файла Boot.ini, управляющую содержимым меню загрузчика и режимом загрузки операционной системы, перезагрузите компьютер. Использование этой опции позволяет пользователю видеть всю последовательность загрузки драйверов. На фоне красивой графической заставки, сигнализирующей о начале инициализации ядра, вы увидите нечто похожее на приведенное ниже сообщение:
Microsoft ® Windows 2000 Server (TM) (Build 2195)
1 System Processor (64 MB Memory)
Ядро создает раздел HKEY_LOCAL_MACHINE\HARDWARE, используя информацию, полученную от загрузчика. Раздел HKEY_LOCAL_MACHINE \HARDWARE содержит данные об аппаратных средствах, распознавание которых осуществляется каждый раз при запуске системы. В состав этих данных входит информация об аппаратных компонентах на системной плате и о прерываниях, используемых конкретными аппаратными устройствами.
Ядро создает набор опций управления Clone, копируя в него опции управления из набора CurrentControlSet. Набор опций управления Clone никогда не модифицируется, так как он должен представлять собой полностью идентичную копию данных, которые использовались для конфигурирования компьютера и не должны отражать изменений, внесенных в ходе процесса запуска.
На стадии инициализации ядро выполняет следующие операции:
|
Инициализирует низкоуровневые драйверы устройств, загруженные на предыдущей стадии |
|
Загружает и инициализирует остальные драйверы устройств |
|
Запускает программы, например Chkdsk, которые должны отработать прежде, чем будут загружены какие-либо сервисы |
|
Загружает и инициализирует сервисы |
|
Создает файл подкачки pagefile.sys |
|
Запускает подсистемы, необходимые для работы Windows 2000 |
Теперь ядро инициализирует низкоуровневые драйверы устройств, которые были загружены на стадии загрузки ядра. В случае ошибки при инициализации одного из драйверов система предпринимает корректирующее действие, основываясь на данных, определенных параметром реестра HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\ DriverName \ErrorControl.
Далее Ntoskrnl.exe сканирует реестр, на этот раз — в поисках драйверов устройств, для которых значение раздела HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\ DriverName \Start установлено в 0x01. Это всегда так: значение Group для каждого драйвера устройства определяет порядок в котором производится их загрузка. Раздел реестра HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\ServiceGroupOrder определяет порядок загрузки.
В отличие от фазы загрузки ядра, драйверы устройств, для которых значение Start установлено на 0x01, загружаются не за счет вызовов BIOS или программ ПЗУ, а с помощью драйверов устройств., загруженных на стадии загрузки ядра и только что инициализированных на этой стадии. Обработка ошибок в процессе инициализации этой группы драйверов устройств также основывается на значении параметра ErrorControl для соответствующих драйверов устройств.
Диспетчер сеансов (Smss.exe) запускает высокоуровневые подсистемы и сервисы (службы) Windows 2000. Информация, предназначенная для Диспетчеpa сеансов, находится в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\SessionManager. Диспетчер сеансов исполняет инструкции, которые содержатся в следующих элементах реестра:
|
Параметр BootExecute |
|
Раздел Memory Management |
|
Раздел DOS Devices |
|
Раздел Subsystems |
Параметр BootExecute реестра содержит одну или несколько команд, которые Диспетчер сеансов выполняет перед загрузкой сервисов. Значением по умолчанию для этого элемента является Autochk.exe, т. е. версия Chkdsk.exe для Windows 2000. Приведенный ниже пример показывает установку этого значения, задаваемую по умолчанию:
BootExecute: REG_MULTI_SZ: autochk autochk*
Диспетчер сеансов может запустить несколько программ. Приведенный ниже пример показывает запуск утилиты Convert, которая при следующем запуске системы преобразует том X: из формата FAT в формат NTFS:
BootExeeute: REG_MULTI_SZ: autochk autochk* autoconv \DosDevices\x: /FS:ntfs
После того как Диспетчер сеансов выполнит все указанные команды, ядро осуществит загрузку остальных разделов реестра из %.SystemRoot%\System32 \Config.
В следующий момент Диспетчер сеансов инициирует информацию о файле подкачки, необходимую Диспетчеру виртуальной памяти. Конфигурационная информация располагается в следующих значимых элементах:
PagedPoolSize: REG_DWORD 0
NonPagedPoosSize: REG_DWORD 0
PagingFiles: REG_MULTI_SZ; c:\pagefile.sys 32
Затем Диспетчер сеансов создает символические ссылки. Эти ссылки связывают определенные классы команд с соответствующими компонентами файловой системы. Конфигурационная информация для перечисленных ниже устройств DOS содержится в следующих значимых элементах реестра:
PRN: REG_SZ:\DosDevices\LPTl
AUX: REG_SZ:\DosDevices\COMl
NUL: REG_SZ:\Device\NulI
UNC: REG_SZ:\Device\Mup
PIPE:\REG_SZ:\Device\NamedPipe
MAILSLOT:\REG_SZ\Device\MailSlot
Поскольку архитектура подсистем базируется на сообщениях, необходимо запустить подсистему Windows (Win32). Эта подсистема управляет всем вводом/выводом и доступом к дисплею; ее процесс называется Csrss. Подсистема Win32 запускает процесс WinLogon, который в свою очередь запускает несколько других важных подсистем.
Конфигурационная информация для необходимых подсистем определяется, значением элемента Required в разделе реестра HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\SessionManager\SubSystems.
Подсистема Win32 автоматически запускает процесс WinLogon.exe, который, в свою очередь, запускает процесс Локального администратора безопасности (Local Security Administration, Lsass.exe). После завершения инициализации ядра необходимо произвести регистрацию пользователя в системе. Процедура регистрации может быть произведена автоматически на основании информации, хранящейся в реестре, или вручную. При ручной регистрации пользователя на экране появляется диалоговое окно с приветствием и текстом "Нажмите Ctrl+Alt+Delete". В любом случае, к этому моменту Windows 2000 может еще продолжать инициализацию сетевых драйверов, однако пользователю уже разрешается зарегистрироваться в системе.
На данном этапе Диспетчер служб выполняет загрузку автоматически стартующих сервисов, для которых значение Start, расположенное в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ DriverName , установлено равным 0x2. На этом этапе сервисы загружаются с учетом установленных для них зависимостей, поскольку их загрузка осуществляется параллельно. Зависимости описываются значимыми элементами DependOnGroup и DependOnService, расположенными в разделе реестра HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\ DriverName .
Примечание |
|
Как уже говорилось, к моменту регистрации пользователя в системе все еще могут продолжаться загрузка и инициализация некоторых сервисов и драйверов. В нескольких следующих разделах более подробно рассмотрены указанные здесь важные сведения:
|
Наборы управляющих параметров в реестре, которые содержат системную конфигурационную информацию, используемую в процессе загрузки. Хорошее понимание этого материала необходимо для грамотного использования конфигурации LastKnownGood. |
|
Порядок запуска сервисов и драйверов, задаваемый через реестр (в частности, значимые элементы Start и Error Control, первый из которых задает порядок запуска сервиса или драйвера, а второй — стандартное поведение системы в случае невозможности его запуска или корректной инициализации). |
Набор управляющих параметров (control set) содержит системную конфигурационную информацию, включая сведения о загружаемых драйверах устройств и запускаемых сервисах. Наборы управляющих параметров хранятся в реестре в виде подразделов раздела HKEY_LOCAL_MACHINE\SYSTEM. В системе может существовать несколько наборов управляющих параметров, количество которых зависит от того, насколько часто выполняется модификация настройки системы или как часто в ней возникают проблемы. Типичная инсталляция Windows 2000 содержит следующие наборы управляющих параметров:
|
Clone (редакторами реестра не отображается) |
|
ControlSet001 |
|
ControlSet002 |
|
ControlSet003 |
|
CurrentControlSet |
Раздел CurrentControlSet представляет собой указатель на один из разделов ControlSet00x. Набор управляющих параметров Clone представляет собой точную копию (клон) набора управляющих параметров, использованного для запуска и инициализации компьютера (Default или LastKnownGood), и создается процессом инициализации ядра при каждом запуске компьютера. После того как в системе успешно зарегистрируется хотя бы один пользователь, набор управляющих параметров Clone станет недоступным.
Для понимания методов и целей использования этих наборов управляющих параметров необходимо ознакомиться с разделом реестра HKEY_LOCAL_ MACHINE\SYSTEM\Select, который содержит следующие параметры:
|
Current |
|
Default |
|
Failed |
|
LastKnownGood |
Каждый из этих параметров содержит данные типа REG_DWORD, которые относятся к конкретному набору управляющих параметров. Например, если значение Current установлено равным 0x1, то параметр CurrentControlSet указывает на ControlSet00l. Аналогично, если значение LastKnownGood установлено равным 0x2, то параметр LastKnownGood указывает на набор управляющих параметров ControlSet002. Значение Default обычно совпадает со значением Current. Параметр Failed ссылается на набор управляющих параметров, на который указывал параметр Default в тот момент, когда пользователь последний раз выполнял загрузку компьютера с использованием набора управляющих параметров LastKnownGood.
Ранее в данной главе в разделе, посвященном выбору конфигурации, была описана инициализация Windows 2000 с использованием конфигураций Default и LastKnownGood. При выборе конфигурации по умолчанию (Default) ядро использует значение Default для определения набора опций управления, который должен применяться для инициализации компьютера.
Ядро пытается использовать конфигурацию LastKnownGood только в двух ситуациях:
|
При восстановлении системы после серьезной ошибки загрузки одного из жизненно важных для работы системы драйверов устройств. Более подробная информация по данному вопросу будет приведена далее в этой главе. |
|
Когда пользователь выбирает последнюю удачную конфигурацию в меню выбора конфигурации оборудования. |
Запуск системы с использованием набора управляющих параметров LastKnownGood предоставляет способ восстановления после таких ошибок, как:
|
Проблемы, вызванные драйвером устройства, добавленного в систему после последней успешной загрузки. |
|
Проблемы с загрузкой системы, вызванные ошибками пользователя при модификации значений реестра. |
Опция LastKnownGood полезна только в случаях с конфигурационными ошибками. Она не решает проблем, вызванных поврежденными или отсутствующими файлами или драйверами устройств.
Предупреждение |
|
Сразу же после того как пользователь зарегистрируется в системе, любые Изменения, вносимые в конфигурацию системы через панель управления, отражаются только в наборе управляющих параметров CurrentControlSet. Поэтому если по той или иной причине необходимо вносить изменения в набор управляющих параметров, CurrentControlSet является единственным набором управляющих параметров, который имеет смысл редактировать.
Если вы не уверены, где конкретно в управляющем наборе CurrentControlSet находится тот или иной раздел, требующий настройки, можно воспользоваться командой поиска (например, в редакторе Regedt32 имеется команда Найти раздел (Find Key) в меню Вид (View)).
В каждом из подразделов Services, содержащихся в разделе HKEY_LOCAL_ MAСHINE\SYSTEM\<control set> \ Services \DriverName, содержится параметр Start, определяющий порядок запуска драйвера или сервиса. Он может иметь следующие значения:
|
Boot (0x0, загрузка). Загрузка драйвера или сервиса осуществляется загрузчиком операционной системы (NTLDR или OSLOADER) перед инициализацией ядра. В качестве примера драйверов с таким режимом загрузки можно привести драйверы дисков. |
|
System (0x1, система). Загрузка осуществляется подсистемой ввода/вывода во время инициализации ядра. В качестве примера драйверов, использующих этот тип значения, можно назвать драйверы мыши. |
|
Auto load (0x2, автомат). Драйвер (сервис) загружается Диспетчером служб (Service Control Manager). Так загружаются сервисы, которые должны стартовать автоматически при любых обстоятельствах запуска системы, вне зависимости от типа сервиса. В качестве примера можно привести драйверы устройств, работающих через параллельный порт. Одним из сервисов, использующих это значение, является сервис Alerter. |
|
Load on Demand, Manual (0x3, вручную). Драйвер (сервис) загружается Диспетчером служб только в случае получения явной инструкции на загрузку. Сервисы этого типа доступны всегда, но загружаются только когда пользователь запускает их (например, используя оснастку Службы (Services)). |
|
Disabled (0x4, запрет). Драйвер (сервис) не загружается. Windows 2000 устанавливает в этот режим драйверы устройств в случае невозможности их загрузки Диспетчером служб (например, в случае, когда не установлены соответствующие аппаратные средства). Если параметр имеет это зна-I чение, Диспетчер служб не загружает соответствующий драйвер или сервис. Единственным исключением являются драйверы файловых систем, I которые загружаются, даже если для них установлено значение Start = 0x4. |
Ниже перечислены все возможные значения, которые может принимать параметр ErrorControl, находящийся в разделе реестра HKEY_LOCAL_ MACHINE\SYSTEM\< control set>\ Services \DriverName:
|
Ignore (0x0). Если при загрузке или инициализации драйвера устройства происходит ошибка, процедура запуска продолжается без вывода сообщения об ошибке. |
|
Normal (0x1). Если при загрузке или инициализации драйвера устройства происходит ошибка, процедура запуска продолжается после вывода сообщения об ошибке. Параметры ErrorControl для большинства драйверов устройств устанавливаются равными этому значению. |
|
Severe (0x2). Когда ядро обнаруживает ошибку загрузки или инициализации этого драйвера или сервиса, происходит переключение на набор управляющих опций LastKnownGood. После этого процесс запуска стартует с начала. Если набор управляющих параметров LastKnownGood уже используется, процедура запуска продолжается, а ошибка игнорируется. |
|
Critical (0x3). Используется та же процедура, что и при значении Severe, с тем исключением, что если переключение на набор управляющих опций уже произошло, но ошибка не ликвидирована, процесс загрузки останавливается, и выводится сообщение о сбое. |
При инсталляции Windows 2000 на компьютерах х86 программа инсталляции помещает в корневой каталог системного раздела файл Boot.ini. NTLDR использует информацию из этого файла для отображения экрана, позволяющего пользователю выбирать операционную систему для загрузки.
Пример файла Boot.ini приведен ниже:
[boot loader]
timeout=30
default=multi(0)disk(O)rdisk(O)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(O)partition(1)\WINNT="Microsoft Windows 2000 Professional RUS" /fastdetect /sos
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Server with AD" /fastdetect
multi(0)disk(0)rdisk(l)partition(4)\WINNT="Microsoft Windows 2000 Server RUS with AD" /fastdetect
Файл Boot.ini состоит из разделов [boot loader] И [operating systems], опиасанных ниже.
Параметры, содержащиеся в этом разделе, описаны в табл. 2.2.
Таблица 2.3. Параметры раздела (boot loader)
Параметр | Описание |
timeout | Количество секунд, имеющееся в распоряжении пользователя для того, чтобы выбрать загружаемую операционную систему в меню загрузки, отображенном на экране. Если по истечении этого срока выбор операционной системы не сделан, NTLDR начнет загрузку операционной системы по умолчанию. Если значение параметра timeout равно 0, загрузчик сразу же начинает загрузку операционной системы по умолчанию, не позволяя пользователю сделать выбор. Если значение этого параметра установить на -1, то загрузчик будет ожидать выбора пользователя неограниченно долго. Значение -1 не воспринимается как допустимое в группе параметров System в Control Panel, где задается значение timeout, поэтому для того чтобы установить параметр timeout в -1, вы должны вручную отредактировать файл Boot.ini |
default | Путь к операционной системе, загружаемой по умолчанию |
Этот раздел содержит список доступных для загрузки операционных систем. Каждая запись указывает путь к загрузочному разделу операционной системы, строку для отображения на экране в процессе загрузки и необязательные параметры. ,
Файл Bootini поддерживает загрузку множества версий операционной системы Windows 2000, а также запуск других операционных систем. В число альтернативных операционных систем, которые можно указать для загрузки в файле Boot.ini, входят Windows 9x, MS-DOS, а также OS/2, Linux и UNIX. Более подробную информацию об организации систем с двойной или тройной загрузкой можно найти в главе 1.
Записи в разделе [operating systems] файла Boot.ini допускают использование ряда параметров (табл. 2.3). В этих параметрах строчные и заглавные буквы не различаются. Параметры, впервые появившиеся в Windows 2000, помечены символом звездочки (*).
Информацию об отладчике можно найти в главе 15.
Таблица 2.3. Параметры, используемые в разделе [operating systems] файла Boot.ini
Параметр | Описание |
/BASEVIDEO | Компьютер загружается с использованием стандартного драйвера VGA. Если вы инсталлируете новый драйвер видеоадаптера, но он работает некорректно, выбор режима загрузки Windows 2000 с этим параметром позволит загрузить компьютер и заменить драйвер |
/BAUDRATE | Указывает скорость в бодах, которая будет использоваться для отладки. Если вы не установите скорость в бодах, то по умолчанию будет принята скорость 9600 (если к компьютеру подключен модем), и 19200— для нуль-модемного кабеля. Параметр оказывает побочный эффект, устанавливая также параметр /debug вне зависимости от того, используете вы /debug или нет |
/BOOTLOG* | Если указан этот параметр, то Windows 2000 будет записывать протокол загрузки в файл %Systemfitoof%\Ntbttog.txt. Этот файл указывает, какие драйверы были загружены, и какие остались незагруженными |
/CRASHDEBUG | Отладчик загружается при запуске Windows 2000, но остается в неактивном состоянии до тех пор, пока не произойдет ошибка ядра. Этот режим особенно полезен, если в процессе вашей работы имеют место редкие непредсказуемые ошибки ядра |
/DEBUG | Отладчик загружается при запуске Windows 2000 и может активизироваться в любой момент хостом отладчика, подключенным к компьютеру. Этот режим рекомендуется использовать при отладке регулярно возникающих проблем |
/DEBUGPORT=COMx | Указывает СОМ-порт для использования при отладке, где х — номер коммуникационного порта, который вы собираетесь использовать. Как и параметр /baudrate, этот параметр принудительно переводит компьютер в отладочный режим |
/FASTDETECT* | Новый параметр, появившийся в Windows 2000. Если на компьютере установлены ОС Windows NT 4.0 и Windows 2000, то в процессе загрузки обеих операционных систем будет использоваться версия Ntdetect.com из состава Windows 2000. На этапе распознавания аппаратных средств в Windows 2000 некоторые устройства распознаются драйверами Plug and Play, в то время как Windows NT 4.0, вследствие ограниченности поддержки Plug and Play, выполняет распознавание только с помощью Ntdetect. Если параметр /FSTDETECT указан, то Ntdetect не пытается распознавать такие устройства. Если нет, то Ntdetect будет выполнять энумерацию аппаратных средств в полном объеме. Таким образом, если вы имеете систему с двойной загрузкой, где на одном компьютере установлены Windows NT 4.0 и Windows 2000, этот переключатель должен быть установлен для строк файла Boot.ini, запускающих Windows 2000, и пропущен для строк, осуществляющих запуск Windows NT 4.O. |
/МАХМЕМ | Определяет максимальный объем памяти (RAM), доступный для использования Windows 2000. Этот параметр полезен, если вы подозреваете повреждение чипа памяти |
/NODEBUG | При использовании этого параметра отладочная информация на экран не выводится |
/NOGUIBOOT* | Новый параметр Windows 2000. Если он указан, то драйвер VGA, выполняющий вывод графической заставки в процессе загрузки Windows 2000, не инициализируется. Поскольку этот драйвер используется не только для отображения графической заставки, но и для отображения "синего экрана" (BSOD, Blue Screen of Death), то его блокировка приведет также к блокировке этой диагностической возможности |
/NOSERIALMICE= [COMx,y,z, . . .] | Блокирует определение последовательной мыши на указанных СОМ-портах. Этот режим рекомендуется использовать, если вы имеете другой компонент (не мышь), подключенный к последовательному порту в процессе запуска. Если использовать параметр /NOSERIALMICE без указания СОМ-порта, то определение последовательной мыши будет блокировано для всех СОМ-портов |
/SAFEBOOT* | Новый параметр, появившийся в Windows 2000. Стоит отметить, что практически никогда нет необходимости устанавливать его вручную, т. к. при нажатии клавиши <F8> загрузчик (NTLDR) автоматически использует его для выполнения загрузки в безопасном режиме (safe boot). Чтобы задать одну из опций безопасного режима загрузки, укажите двоеточие после этого параметра и задайте один из трех дополнительных переключателей: MINIMAL (опция Safe Mode), NETWORK (опция Safe Mode with Network) или DSREPAIR (опция Directory Service Repair). Как уже упоминалось в разделе "Опции отладочного меню при загрузке Windows 2000", загрузка в безопасном режиме представляет собой режим загрузки, при котором Windows 2000 загружает только драйверы и сервисы, перечисленные поименно в разделах реестра Minimal и/или Network, расположенных в разделе HKLM\System \CurrentControlSet\Control\SafeBoot. Опция DSREPAIR применима только для Windows 2000 Server. Ее использование приводит к загрузке Windows 2000 Server в режиме восстановления Active Directpry с носителя резервной копии (разумеется, резервная копия должна быть изготовлена заблаговременно). Параметр /SAFEBOOT имеет еще одну дополнительную опцию— ALTERNATESHELL. Если вы укажете эту опцию, то в качестве графической оболочки Windows 2000 будет использовать программу, которая указана в составе раздела HKLM \System\CurrentControlSet\SafeBoot\AltemateShell как альтернативная графическая оболочка. По умолчанию используется стандартная графическая оболочка — Проводник (Explorer) |
/SOS | При использовании этого параметра на экране отображаются имена всех загружаемых драйверов. Данный параметр рекомендуется использовать, если Windows 2000 не стартует, и вы подозреваете отсутствие какого-либо драйвера. Более подробную информацию можно найти в главе 1 5 |
Программа установки Windows 2000 помещает в корневой каталог системного раздела файл Boot.ini, формат и опции которого были рассмотрены в предыдущих разделах. Как и в Windows NT 4.0, этот файл получает атрибуты "только чтение" (Read Only), "системный" (System) и "скрытый" (Hidden). Однако в Windows 2000 появилось новое понятие — защищаемые файлы операционной системы (protected operating system files), которые иногда называются "суперскрытыми" (super hidden). К ним относятся все файлы, необходимые для запуска операционной системы. По этой причине ни один пользователь, даже администратор, раскрыв после инсталляции системы корневой каталог системного раздела с помощью Проводника, не увидит ни файла NTLDR, ни файла Ntdetect.com, ни файла Boot.ini.
В системе Windows 2000 имеется два уровня защиты файлов от просмотра. Если файл имеет атрибут hidden, то он не будет виден в Проводнике (при выбранном по умолчанию переключателе Не показывать скрытые файлы и папки ). Если файл имеет еще и атрибут system, то этот файл будет виден, только когда на вкладке Вид снят флажок Скрывать защищенные системные файлы. Получается, что комбинация атрибутов sh переводит файл как бы в специальную категорию. Поэтому не следует искать какой-то специальный атрибут super hidden.
Для того чтобы администратор мог просматривать "суперскрытые" файлы с помощью Проводника, нужно выбрать на панели управления значок Свойства папки (Folder Options), перейти на вкладку Вид (View), затем в поле Дополнительная настройка (Advanced Settings) установить переключатель
Показывать скрытые файлы и папки (Show hidden files and folders) и снять флажок Скрывать защищенные системные файлы (рекомендуется) (Hide protected operating system files (Recommended).
Примечание |
|
Однако в распоряжении пользователей остается командная строка, из которой, с помощью команды dir /а можно просмотреть список всех файлов, какие бы атрибуты они ни имели.
Простейший и наиболее безопасный метод изменения файла Boot.ini — использовать значок Система (System) на панели управления. В окне свойств системы перейдите на вкладку Дополнительно (Advanced) и нажмите кнопку Загрузка и восстановление (Startup and Recovery). Раскроется окно Загрузка и восстановление (рис. 2.2). Здесь вы сможете указать операционную систему, запускаемую по умолчанию, и временной интервал, в течение которого на экране будет оставаться меню загрузки, позволяющее пользователю выбрать операционную систему, отличную от указанной по умолчанию.
Рис. 2.2. Окно Загрузка и восстановление (Startup and Recovery) предоставляет простейший и наиболее безопасный метод изменения файла Boot.ini
Несмотря на простоту и удобство, этот метод весьма ограничен и не предоставляет широких возможностей по редактированию файла .Boot.ini. Именно поэтому опытные пользователи предпочитают редактировать этот файл с помощью текстовых редакторов.
Прежде чем открывать файл Boot.ini для ручного редактирования, снимите атрибут "только для чтения" (Read Only), чтобы внесенные изменения можно было сохранить (файл перестанет быть и "суперскрытым").
Из командной строки это можно сделать следующей командой:
attrib -r boot.ini
Если вы измените путь к загрузочному разделу Windows 2000, отредактируйте как путь по умолчанию, так и записи в разделе [operating systems].
Здесь обсуждаются действия, которые можно предпринять для выяснения причин, не препятствующих загрузке системы Windows 2000. Далее будут кратко рассмотрены ситуации, когда компьютер "зависает" или отображает сообщение об ошибке прежде, чем пользователь получает возможность зарегистрироваться в системе. Помимо этого будут перечислены возможные причины возникновения проблем с диском и пути устранения этих неполадок. Существует целый ряд причин, по которым компьютер не может успешно выполнить загрузку. Первый шаг в их выявлении — определение времени возникновения проблемы. Например, если на компьютерах х86 проблема возникает до появления экрана загрузчика, то причиной ее возникновения может быть как аппаратный сбой, так и повреждение главной загрузочной записи, таблицы разделов или загрузочного сектора раздела.
К таким повреждениям может привести ряд факторов. Например, на компьютерах х86 прерывание BIOS INT 13 часто используется вирусами для самоинсталляции. Windows 2000 перехватывает прерывания INT 13, но только в том случае, когда она уже загрузилась. Если компьютер загрузить с помощью системной дискеты MS-DOS, а также в том случае, когда система с двойной загрузкой загружается под управлением MS-DOS, Windows NT/2000 не может защитить себя от такой угрозы. В Microsoft Knowledge Base есть ряд статей с рекомендациями по защите компьютера от вирусов и описанием методов восстановления системы, поврежденной вирусами.
Если проблема возникает уже после появления меню загрузчика и выбора в нем Windows 2000, то причина может быть в том, что файлы, необходимые для загрузки операционной системы, отсутствуют или повреждены.
В случае инсталляции новых физических устройств или новых драйверов причиной проблем с загрузкой системы могут быть изменение конфигурации системы и ее несовместимость с этими устройствами или драйверами.
Здесь описаны проблемы, которые могут возникнуть на этапе между включением компьютера и появлением экрана загрузчика. Их симптомы:
|
Сразу после завершения фазы самотестирования (POST) компьютер "зависает" |
|
Экран загрузчика не появляется |
|
На экране появляются сообщения об ошибках следующего типа:
Вполне возможно, что в этой ситуации запустить компьютер вообще не удастся. Если все основные разделы отформатированы для использования файловой системы NTFS, то применение утилит MS-DOS не поможет. Если у вас под рукой есть загрузочная дискета Windows 2000, изготовленная в соответствии с рекомендациями, данными в главе 8, попробуйте воспользоваться этой дискетой. Если вы не можете запустить компьютер с помощью загрузочной дискеты Windows 2000, и восстановление системы с помощью диска аварийного восстановления не помогло решить проблему, попробуйте снять жесткий диск и установить его вторым диском на другом компьютере Windows 2000. После этого вы сможете работать с этим диском, используя утилиты Windows 2000. |
Предупреждение |
|
Описанные выше проблемы могут возникнуть по одной из следующих причин:
|
Отсутствие системного раздела на первом жестком диске |
|
Повреждена главная загрузочная запись |
|
Поврежден загрузочный сектор раздела |
|
Испортилась микросхема CMOS (или разрядилась ее батарея) |
|
Аппаратный сбой |
Примечание |
|
Когда на компьютерах х86 выполняется загрузка с жесткого диска, системный код BIOS определяет загрузочный диск (обычно, диск 0) и считывает главную загрузочную запись. Код, содержащийся в главной загрузочной записи, ищет системный раздел на жестком диске. Если он не может найти системный раздел или Windows 2000 не может стартовать из этого раздела, процесс запуска останавливается. Появление сообщения об ошибке типа "Error loading operating system" указывает, что код главной загрузочной записи нашел системный раздел, но не может запустить операционную систему.
Возможно, что на жестком диске, с которого вы пытаетесь загрузить операционную систему, вообще нет системного раздела. Кроме того, не исключена ситуация, когда в качестве системного указан другой раздел.
Примечание |
|
В качестве системного раздела может использоваться только основной раздел. Логический диск в дополнительном разделе для этой цели использовать нельзя. Установить новый системный раздел можно с помощью оснастки Управление дисками (Disk Management) в Windows 2000, программы Windows NT 4.0 Disk Administrator или с помощью программы MS-DOS Fdisk. Все эти программы устанавливают поле Boot Indicator для раздела, который устанавливается как системный, и сбрасывают это поле для раздела, который был системным ранее.
Примечание |
|
Рис. 2.3. Если раздел не является системным, то поле Boot Indicator не установлено (на рисунке поле Boot Indicator имеет значение NO_SYSTEM)
|
Рис. 2.4. Если раздел является системным, то поле Boot Indicator установлено (на рисунке поле Boot Indicator имеет значение SYSTEM)
|
Если загрузку операционной системы невозможно выполнить вследствие отсутствия или неправильной установки системного раздела, воспользуйтесь утилитой MS-DOS Fdisk.
Здесь описаны проблемы с главной загрузочной записью. Функции кода главной загрузочной записи:
|
Считывание таблицы разделов, расположенной в том же секторе |
|
Определение местоположения загрузочного сектора раздела |
|
Загрузка и выполнение кода, расположенного в загрузочном секторе раздела |
Если код главной загрузочной записи оказывается не в состоянии выполнить эти задачи, отображается одно из следующих сообщений об ошибках:
|
Missing operating system (Отсутствует операционная система) |
|
Invalid partition table (Неверная таблица разделов) |
Для восстановления поврежденной главной загрузочной записи можно воспользоваться командной консолью восстановления Windows 2000 (Recovery Console), которая позволяет выполнять многие административные задачи и восстановительные операции. Запускать консоль восстановления можно из программы установки Windows 2000 или включить ее в качестве одной из опций в меню загрузки. Более подробную информацию об установке и использовании консоли восстановления можно найти в главе 8, здесь же отметим, что в число задач, которые можно выполнить с ее помощью, входит и восстановление поврежденной главной загрузочной записи
Существует несколько известных вирусов, способных вызывать проблемы с загрузочным сектором раздела даже тогда, когда том отформатирован для использования файловой системы NTFS. Заражение может произойти при запуске программы MS-DOS с дискеты или при запуске MS-DOS на компьютере с двойной загрузкой. Windows 2000 не может защититься от заражения, если она не запущена.
В ряде случаев повреждение загрузочного сектора раздела может привести к генерации следующей ошибки типа "синий экран": STOP 0x00000078 INACCESSIBLE_BOOT_DEVICE. Еще одним симптомом проблем с загрузочным сектором раздела является "зависание" компьютера в процессе загрузки без отображения каких-либо сообщений, при этом экран остается черным.
Даже при условии отсутствия очевидных грубых повреждений загрузочный сектор раздела может работать неправильно. Убедиться в этом можно cледующим образом. Попробуйте переименовать файл NTLDR и запустить Windows 2000 с этого жесткого диска (это можно сделать, загрузив систему с дискеты Windows 2000).
Если загрузочный сектор раздела в норме, а причина неудачи — поврежденный файл загрузчика NTLDR, то в основном разделе NTFS вы увидите следующее сообщение об ошибке:
Couldn't find NTLDR
В основном разделе FAT вы увидите сообщение об ошибке:
A kernel file is missing from the disk
Информацию о замене NTLDR можно найти в главе 8.
Если, заменив имя NTLDR, вы таких сообщений об ошибках не получите, это будет говорить о том, что причина кроется в повреждении загрузочного сектора раздела. Информацию о замене поврежденных загрузочных секторов разделов можно найти в главе 8. Не забудьте переименовать файл загрузчика обратно в NTLDR, чтобы загрузочный сектор раздела мог его найти.
Как правило, файл NTLDR по умолчанию имеет атрибуты скрытый, системный и только чтение. Поскольку запустить Windows 2000 при испорченном загрузочном секторе в загрузочном разделе невозможно, можно запустить MS-DOS с загрузочной дискеты MS-DOS. Загрузив MS-DOS, можно изменить атрибуты файла (только на диске с FAT!). Для этой цели необходимо в командной строке MS-DOS (см. также описание консоли восстановления в главе 8) ввести следующую команду:
attrib -a -h -r ntldr
Как правило, CMOS хранит следующую информацию:
|
Дата и время |
|
Тип дисковода для гибких дискет |
|
Тип видеоадаптера |
|
Тип жесткого диска (дисков) |
|
Объем установленной памяти |
Каждый производитель BIOS принимает решение о стандартных конфигурациях, а также задает параметры, которые пользователь может устанавливать самостоятельно. Доступ к программе конфигурирования CMOS можно получить через специальную утилиту или путем нажатия последовательности клавиш в процессе загрузки компьютера (эти опции зависят от поставщика). Информацию, содержащуюся в CMOS, необходимо записывать (или распечатать, если программа Setup позволяет это делать).
Компьютер использует контрольные суммы CMOS, чтобы определить, не изменялись ли значения CMOS иначе, чем через программу Setup. Если контрольная сумма окажется неверной, компьютер не загрузится.
Если информация CMOS корректно сконфигурирована, то возможные проблемы CMOS могут быть вызваны следующими причинами:
|
Слабая батарея (это бывает, если компьютер долго не включали) |
|
CMOS и батарея не соединены, соединены некачественно или неправильно |
|
Микросхема CMOS повреждена разрядом статического электричества |
Все эти проблемы могут вызвать обнуление CMOS или иное повреждение информации, что может не позволить загрузить компьютер.
Если устройство не инициализируется во время самотестирований при загрузке (POST), то возможны проблемы с доступом к этому устройству. Если устройство было добавлено или модифицировано при предыдущем запуске системы, то проблема может быть вызвана новой конфигурацией системы.
Если вы вносили изменения в конфигурацию дисковой подсистемы, необходимо обратить внимание на следующее:
|
Правильность установки терминаторов на SCSI-шлейфах |
|
BIOS активизирована только на первом контроллере SCSI (если вообще активизирована) |
|
Отсутствие конфликтов по IRQ |
Если вы не вносили никаких изменений, проверьте следующее:
|
Правильность установки карт контроллеров |
|
Правильность подключения всех кабелей |
|
Питание подается на все диски |
Здесь описаны проблемы, возникающие после запуска загрузчика операционной системы, но до регистрации в системе пользователя. Эта фаза процесса запуска начинается, когда на черном экране появляется строка точек.
На компьютерах х86 Ntdetect осуществляет распознавание установленных аппаратных компонентов.
Windows 2000 Resource Kit содержит отладочную (checked) версию Ntdetect.com, которая называется Ntdetect.chk. Если Ntdetect.com не может обнаружить все аппаратные устройства, которые он, по вашему мнению, должен находить, вы можете использовать отладочную версию, которая поможет локализовать проблему.
Отладочная версия устанавливается с помощью файла Installd.cmd, который выполняет следующие действия:
|
переименовывает стандартный Ntdetect.com |
|
копирует Ntdetect.chk в Ntdetect.com |
После выполнения этих операций нужно перезагрузить компьютер. При запуске системы с отладочной версией Ntdetect на экране будет появляться информация обо всех обнаруживаемых аппаратных средствах. Ниже приведен типичный пример этого вывода на экран:
Detecting System Component ...
Reading BIOS Date ...
Done Reading BIOS Date (1/20/94)
Detecting Bus/Adapter Component ...
Collecting Disk Geometry ...
Detecting Keyboard Component ...
Когда Ntdetect завершит вывод информации на экран, нажмите клавишу <Enter> для продолжения. Ntdetect отобразит информацию об узлах дерева аппаратных устройств. Для завершения вывода каждого информационного экрана необходимо нажимать клавишу <Enter>.
Когда необходимость в использовании отладочной версии Ntdetect отпадет, выполните команду installd /not.
Для компьютеров на базе процессоров х86 параметр /maxmem в файле Boot.ini позволяет указать максимальный объем ОЗУ, который Windows 2000 может использовать. С помощью этого параметра можно выявлять ошибки четности в памяти, несовместимость скоростей доступа модулей SIMM и другие аппаратные проблемы, связанные с памятью.
Не следует указывать для этого параметра более низкое значение, чем указано в требованиях к минимальной аппаратной конфигурации (32 Мбайт для Windows 2000 Professional и 64 Мбайт для Windows 2000 Server). Этот параметр добавляется в конец пути ARC, указываемого в разделе [operating systems] файла Boot.ini. Приведенный ниже пример показывает, как ограничить память, используемую Windows 2000 Server, первыми 64 Мбайт RAM:
multi(0) disk(0) rdisk(0) partition(1)\winnt="Windows 2000 Server" /maxmem=64
В файл Boot.ini можно добавить параметр /sos. Установка этого параметра заставит NTLDR отображать на экране имена ядра (Ntoskrnl.exe) и драйверов по мере их загрузки. Попробуйте использовать данный параметр, если Windows 2000 не запускается, и вы считаете, что причина заключается в отсутствующем или поврежденном драйвере.
Сообщение STOP указывает, что Windows 2000 не может получить доступ к загрузочному сектору раздела или может, но не находит там необходимую информацию. Чаще всего причиной возникновения такой ошибки является заражение вирусами.
Испорченный загрузочный сектор раздела также может вызвать ошибку STOP, но это зависит от того, какая из его областей повреждена. Эта проблема похожа на заражение вирусом, однако в данном случае причиной повреждения может являться дефектный диск или контроллер, а в ряде случаев — ошибка в программном обеспечении, которое своими неправильными действиями нанесло повреждение загрузочному сектору раздела.
Существуют дополнительные источники информации, которые могут существенно помочь при устранении проблем с загрузкой системы и неполадок в работе дисков:
|
Глава 8 этой книги полностью посвящена подготовке и проведению восстановительных процедур. |
|
Глава 14 данной книги содержит обзорную информацию о реестре Windows 2000 и его использовании в целях диагностики и устранения неполадок в работе. |
|
Встроенная справочная система Windows 2000 дает сведения по диагностике неполадок и их устранению. |
|
Microsoft Knowledge Base содержит большой объем информации, подготовленной сертифицированными специалистами по поддержке продуктов Microsoft. База данных Knowledge Base доступна из следующих источников:
|