Опубликован: 15.10.2008 | Доступ: свободный | Студентов: 3511 / 739 | Оценка: 4.48 / 4.23 | Длительность: 45:21:00
Лекция 17:

Планирование катастроф и восстановление

Создание загрузочных дискет

Если ваш компьютер Windows Server 2003 не загружается, и вы предполагаете, что причиной является повреждение некоторых загрузочных файлов, то вы можете попытаться загрузить компьютер с гибкого диска, сконфигурированного для этой цели. Затем вы можете исправить свои поврежденные файлы, которые могут быть причиной невыполнения загрузки. Загрузочный диск работает независимо от файловой системы (FAT, FAT32 или NTFS).

Для создания загрузочного гибкого диска нужно отформатировать этот диск с помощью команды format a:, введенной в командной строке на компьютере, работающем под управлением Windows Server 2003, Windows XP, Windows 2000 или Windows NT

Скопируйте на эту дискету ntldr и ntdetect.com. Эти файлы можно найти на CD Windows Server 2003 в папке i386.

Для этого гибкого диска также требуется файл boot.ini, который вы можете создать заново или скопировать с любого компьютера Windows Server 2003, имеющего такую же конфигурацию оборудования и операционной системы. Конфигурация "оборудования и операционной системы" означает, что компьютеры должны иметь следующие общие характеристики.

  • Должен использоваться одинаковый тип контроллеров жестких дисков: SCSI или IDE.
  • Файлы Windows ( %SystemRoot% ) должны быть на том же диске или в том же разделе ( диск/раздел 0 или диск/раздел 1 ).
  • Файлы Windows должны содержаться в папке с тем же именем (имя системной папки по умолчанию - Windows).

Если для загрузочного диска используется SCSI, то для этой дискеты тоже требуется драйвер для контроллера SCSI, который вы должны переименовать в ntbootdd.sys.

Подробнее о процессе загрузки (и устранении проблем этого процесса) см. в лекции 5 курса "Администрирование Microsoft Windows Server 2003"

Ошибки STOP: Blue Screen of Death

STOP! Когда вы видите это слово на экране компьютера (синий экран с белым текстом), это означает, что вы столкнулись с так называемой ошибкой Blue Screen of Death (BSOD), с "ужасной" неисправимой ошибкой (Fatal Error). Компьютер, конечно, останавливается; никакие нажатия клавиши или мыши не дают результата, и действует только кнопка включения компьютера (если вы не сконфигурировали компьютер для автоматической загрузки в таких случаях).

Примечание. Еще один термин для ошибок STOP - это "bugcheck" ("контроль дефектов"), и он считается "официальным" термином. Но системные администраторы называют их BSOD.

Ошибки BSOD каждый раз оказываются уникальными для администраторов Windows, и в старых версиях Windows аналогичным сообщением было General Protection Fault (Общее нарушение защиты). Во времена, когда я был консультантом по Novell NetWare, меня "бросало в дрожь" при появлении ошибок ABEND (аварийное прекращение), а во время моей работы с UNIX я хотел сбежать, когда видел ошибки Kernel Panic. Независимо от платформы ошибки, останавливающие компьютер, являются фактом жизни всех системных администраторов.

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

Что может вызывать ошибки BSOD?

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

В большинстве случаев опасный код является частью драйвера какого-либо устройства. Именно поэтому компания Microsoft перешла к принципу сертификации и защиты драйверов устройств. Но иногда это не является ошибкой программиста; например, код обращается к памяти должным и допустимым образом, но повреждена сама память.

Независимо от причины существует вероятность, что работа системы нарушена по "принципу домино", когда одни проблемы вызывают другие проблемы, приводящие к повреждению частей системы, которые непосредственно не затрагивались исходной проблемой. Чтобы эта возможность не становилась реальностью, операционная система останавливается, выводя сообщение STOP.

Примечание. Этот останов вызывается функцией KeBugCheckEx(). Описание этой функции трудно найти в обычных источниках, где вы ищете объяснения (help-файлы, Microsoft Knowledge Base), но все же я знаю один источник - Windows DDK (комплект средств для разработки драйверов).
Подготовка к ошибкам BSOD

Вы ничего не можете сделать при появлении BSOD (только выключить и снова включить компьютер, если он не сконфигурирован для автоматической загрузки после ошибки STOP), но можете подготовить свою систему к выдаче информации об ошибках BSOD, чтобы вы могли разрешить данную проблему (может быть, с помощью персонала службы поддержки Microsoft).

Конфигурирование опций восстановления системы

Чтобы сконфигурировать поведение вашего компьютера при возникновении BSOD, откройте диалоговое окно System Properties (Свойства системы; щелкните правой кнопкой на My Computer и выберите пункт Properties). Перейдите во вкладку Advanced и щелкните на кнопке Settings в секции Startup and Recovery (Загрузка и восстановление), чтобы появилось диалоговое окно Startup and Recovery. В секции System Failure (Отказ системы) содержатся нужные вам настройки. По умолчанию в этой секции выбраны все опции (см. рис. 17.7).

  • Write an event to the system log (Записать событие в системный журнал).Указывает, должна ли система Windows записывать информацию события в журнал System службы Event Viewer, если компьютер сталкивается с ошибкой STOP. Этот флажок затенен (недоступен) для всех версий Windows Server 2003 (и Windows 2000 Server), поскольку вы не можете сбросить его. Для клиентских компьютеров (Windows XP Professional/2000 Professional) вы можете сбросить данный флажок, но это не стоит делать, поскольку соответствующая информация может оказаться полезной. На самом деле Microsoft принудительно задала запись события, видимо, потому, что персонал службы поддержки слишком часто сталкивался во время сеансов поддержки с ситуацией, когда при необходимости использования этой информации для диагностирования ошибки они слышали от пользователя, что он "отключил эту опцию".
  • Send an administrative alert (Отправить административное оповещение).Указывает, хотите ли вы, чтобы администраторам отправлялось сообщение, если компьютер сталкивается с ошибкой STOP. См. ниже раздел "Конфигурирование административных оповещений".
  • Automatically restart (Выполнить автоматическую перезагрузку).Конфигурирование компьютера для выполнения перезагрузки при возникновении ошибки BSOD. Конечно, в случае серьезной проблемы, вызвавшей BSOD, компьютер, возможно, не перезагрузится, но довольно часто загрузка проходит успешно. Эта опция достаточно важна для серверов: если компьютер может перезагрузиться без ошибок, то клиенты быстрее восстанавливают свой доступ к ресурсам сервера.
В секции System Failure этого диалогового окна можно задавать опции восстановления

Рис. 17.7. В секции System Failure этого диалогового окна можно задавать опции восстановления
Задание типа файла дампа

Одним из важных решений является выбор типа дампа памяти, который нужно выдавать при ошибке BSOD. Ядро выводит дамп содержимого системной памяти в файл, указанный в диалоговом окне Startup and Recovery (по умолчанию файл %SystemRoot%\memory.dmp), и вы можете выбрать тип и количество информации, которая будет записана. Это новый подход к выбору по сравнению с Windows NT, где для дампов памяти использовался подход "все или ничего". См. ниже разделы для следующих вариантов выбора.

  • Complete Memory Dump (Полный дамп памяти - как в Windows NT).
  • Kernel Memory Dump (Дамп памяти ядра).
  • Small Memory Dump (Малый дамп памяти).

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

Примечание. В раскрывающийся список типов включен также вариант None (Нет), чтобы не выводить никакого дампа.
Внимание. Чтобы вы могли использовать файл дампа, ваш файл подкачки должен быть на загрузочном томе. Если вы переместили файл подкачки на другой том, верните его назад.

Кроме задания типа файла дампа, вы должны также указать, будет ли файл следующего дампа перезаписываться поверх предыдущего файла. Имеет смысл установить этот флажок (Overwrite any existing file), если вы используете вариант Complete Memory Dump, чтобы не использовать слишком много пространства на диске.

Complete Memory Dump (Полный дамп памяти)

При полном дампе памяти происходит запись всего содержимого системной памяти на момент остановки системы.

Примечание. На самом деле размер файла дампа ограничен 2 Гб, но этого вполне достаточно.

Чтобы использовать полный дамп памяти, ваш файл подкачки должен иметь размер не меньше, чем количество физической RAM-памяти плюс 1 Мб. Дополнительный мегабайт требуется потому, что система записывает заголовок в дополнение к выводу дампа памяти. Заголовок содержит сигнатуру аварийного дампа, а также указывает значения нескольких переменных ядра. Реально для информации заголовка не требуется целый мегабайт, но система наращивает файл подкачки с шагом не менее мегабайта.

Независимо от момента возникновения еще одной ошибки BSOD происходит перезапись предыдущего файла. Поэтому переименуйте файл дампа после перезагрузки или сделайте это в Recovery Console (если из-за этой проблемы необходимо войти в Recovery Console).

Kernel Memory Dump (Дамп памяти ядра)

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

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

Для этого типа файла дампа требуется, чтобы файл подкачки составлял треть от размера физической памяти, но не меньше 50 Мб. При возникновении еще одной ошибки BSOD происходит перезапись предыдущего файла. Поэтому переименуйте этот файл как можно быстрее.

Small Memory Dump (Малый дамп памяти)

Малый дамп памяти (его называют также мини-дампом) ограничивается размером 64 Кб, то есть в него записывается намного меньше информации, чем при двух других вариантах дампа. Однако данные, записываемые в этот файл дампа, могут с большой вероятностью раскрыть причину проблемы (это по сути та же информации, которая выводится системой на экран). В информацию этого дампа включается код и ошибка BSOD, список текущих загруженных драйверов и информация о процессе и потоке, которые исполнялись на момент отказа, а также информация о недавно использовавшихся функциях. Для этого варианта требуется файл подкачки не менее 2 Мб.

Файлы малых дампов памяти не перезаписываются поверх предыдущих файлов дампа. Эти файлы находятся в папке %SystemRoot%\minidump и имеют имена minimm-dd-yy-nn.dmp ( nn - номер дампа при повторении даты, если у вас возникло больше одной ошибки BSOD за день).