Восстановление загрузки windows 2000

Windows 2000 во всех отношениях сложнее Windows NT. Это касается и встроенных инструментов диагностики, и устранения неисправностей. Устранить неполадки в операционной системе можно одним из трех способов: воспользоваться диском аварийного восстановления (Emergency Re-pair Disk, ERD); загрузиться в безопасном режиме (Safe Mode), чтобы обойти неисправные драйверы и ошибки в прикладных программах; загрузить консоль восстановления (Recovery Console, RC), чтобы блокировать неверно функционирующие драйверы или службы. Все три инструмента позволяют обнаруживать и устранять неисправности, возникшие из-за отсутствия или порчи файлов, некорректной работы драйвера или неудаленного временного файла подкачки. Чтобы выбрать подходящий метод, необходимо знать диагностические и восстановительные возможности каждого из них.

Диск ERD

Если операционная система просто не загружается, то нужен диск аварийного восстановления. С его помощью можно исправить поврежденный загрузочный сектор, восстановить испорченную главную загрузочную запись (Master Boot Record, MBR), заменить поврежденные файлы NT Loader (NTLDR) и ntdetect.com, а также переписать SCSI-драйвер независимого поставщика ntbootdd.sys, необходимый для доступа к загрузочному диску. Диск аварийного восстановления позволяет восстановить системный диск после заражения вирусом; это единственный инструмент, с помощью которого можно загрузить систему со второго диска в случае выхода из строя зеркального тома.

В рамках нового подхода к инструментам восстановления в Windows 2000 был увеличен размер базы данных настроек (ветви SYSTEM) — файлов, составляющих системный реестр. Более объемные и многочисленные файлы реестра Windows 2000 уже не умещаются на диске аварийного восстановления. Поэтому специалисты Micro-soft сократили функциональность диска, ограничив ее тремя задачами:

  • обследованием и исправлением среды начальной загрузки;
  • проверкой файлов Windows 2000 и заменой испорченных файлов;
  • проверкой и внесением поправок в загрузочный сектор.

Если для решения задачи нельзя ограничиться небольшими исправлениями — например, в системной папке установлены некорректные или испорченные драйверы устройств либо проблемы возникли после появления начального экрана загрузки (OSload-er), — то необходимо загрузить систему в безопасном режиме Safe Mode или воспользоваться консолью восстановления RC.

Создание актуального ERD

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

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

Чтобы создать диск ERD для текущей конфигурации, следует воспользоваться утилитой Backup. Эта утилита находится не в меню Administrative Tools (как можно было бы ожидать), а в разделе System Tools программной группы Accessories. Утилиту Backup можно запустить и из командной строки, введя с клавиатуры

ntbackup

В любом случае работа Backup начинается с появления на экране закладки Welcome. Если пользователь выбирает на закладке функцию Create an Emer-gency Repair Disk, то программа просит вставить в НГМД чистый отформатированный 3,5-дюймовый диск, как показано на Экране 1.


Экран 1. Создание ERD.

В данном диалоговом окне можно выбрать режим копирования файлов реестра. Это нужно делать всегда, чтобы на диске сохранялась последняя версия важнейших файлов конфигурации. Дело в том, что Windows 2000 располагает двумя наборами файлов реестра. В процессе инсталляции оригиналы файлов реестра помещаются в каталог \%systemroot%
epair. Когда создается аварийный диск и выбран режим копирования реестра, утилита Backup сохраняет файлы ветви SYSTEM и в каталоге \%systemroot%
epair
egback. С помощью консоли RC можно восстановить текущую (а не исходную) версию важнейших файлов реестра, используя файлы, помещенные утилитой Backup в каталог
egback. После того как процесс создания диска аварийного восстановления и копирования реестра завершен, утилита Backup выводит на экран подтверждение.

В каталоге
egback всегда будут храниться последние версии файлов реестра, если создавать новый аварийный диск каждый раз после изменения конфигурации системы. В случае сбоя можно запустить консоль RC и восстановить систему с использованием последних файлов — вместо того, чтобы возвращаться на два шага назад из-за отсутствия своевременно сделанной копии реестра на диске. Если в процессе восстановления системы возникает необходимость в оригиналах файлов реестра, а локальные копии текущих файлов не были созданы с помощью функции ERD, то восстанавливать текущие файлы придется с магнитной ленты. При обращении к файлам из каталога Repair приходится выполнять дополнительную работу. В этом случае для полного восстановления системы потребуется изменить конфигурацию служб и заново установить все пакеты исправлений, модули коррекции и приложения.

Единственный недостаток утилиты ERD — необходимость использовать 3,5-дюймовый накопитель, даже если нужно лишь скопировать файлы реестра в каталог
egback. Это может вызвать некоторые затруднения у пользователей портативных компьютеров.

Восстановление: вручную или быстро?

На диске аварийного восстановления хранятся лишь три файла: autoexec.nt, config.nt и setup.log. Поскольку auto-exec.nt и config.nt не используются Windows 2000, здесь они, в сущности, бесполезны. Важнее файл setup.log, в котором хранится список всех компонентов, установленных процедурой Setup в ходе начальной загрузки Windows 2000. Каждое имя файла в setup.log снабжено контрольной суммой для проверки содержимого файла. Если из меню восстановления ERD выбран режим Verify Windows 2000 system files, то утилита Repair сравнивает установленные файлы с теми, которые перечислены в setup.log, чтобы отыскать отсутствующие или испорченные файлы. Обнаружив испорченный файл, утилита Repair заменяет его корректной копией с дистрибутива.

Приступая к процессу восстановления с помощью ERD, нужно загрузиться с установочного компакт-диска или 3,5-дюймовых установочных дисков. Затем следует запустить утилиту Repair, выбрав в меню пункт R. Третий вариант описан в статье Microsoft «How to Create a Bootable Disk for an NTFS or FAT Partition» (http://support.microsoft.com/suport/ kb/articles/q119/4/67.asp). Если нужно заменить один файл данных реестра, необходимо использовать консоль RC — диск аварийного восстановления непригоден для восстановления на столь низком уровне.

У Repair существует два режима работы. Нажав кнопку M, можно перейти в ручной режим Manual Repair, в котором пользователю предоставляется возможность выбрать действия по восстановлению системы из списка. Для перехода в режим Fast Repair следует нажать кнопку F, и все восстановительные операции будут выполняться автоматически.

Ручной режим. Чтобы контролировать работу утилиты, необходимо выбрать режим Manual Repair. Меню Manual Repair состоит из трех пунктов: Inspect the startup environment (исследовать параметры запуска), Verify Windows 2000 system files (проверить системные файлы Windows 2000) и Inspect the boot sector (исследовать загрузочный сектор). Если выбран пункт Inspect the startup environment, то утилита Repair заменяет или исправляет файл boot.ini. Если выбрана функция Verify Windows 2000 system files, то Repair сравнивает загруженные файлы NTLDR, ntdetect.com, arcsetup и arcldr.exe с соответствующими элементами файла setup.log. Если обнаруживаются расхождения, то утилита предлагает заменить или пропустить файл. Для замены некорректного файла необходимы носитель с файлами установки или диск с драйверами от независимого поставщика. Функция Verify Windows 2000 system files не проверяет файл ntbootdd.sys, необходимый для доступа к операционной системе на дисках SCSI, поэтому для перезагрузки этого файла нужен диск с драйверами для SCSI. Если выбран пункт Inspect the boot sector, то утилита Repair исправляет активный системный раздел и заново устанавливает загрузочные файлы.

Режим быстрого восстановления. Для восстановления вновь установленной системы следует выбрать режим Fast Repair. При этом автоматически выполняются все три операции режима Manual Repair и проверяются важнейшие файлы реестра (SAM, SECURITY, SYSTEM и SOFTWARE). Если файл реестра отсутствует или испорчен, то Fast Repair копирует его версию из каталога \%systemroot%
epair в каталог \%systemroot%system32 config. В результате восстанавливается первоначальная (а не текущая) версия файла реестра, и система возвращается к исходной конфигурации.

После применения функции Fast Repair можно восстановить текущее состояние системы с резервного носителя или воспользоваться консолью RC, чтобы заменить исходные версии файлов реестра их текущими версиями, сохраненными в каталоге
egback. В статье Microsoft «Differences Between Manual and Fast Repair in Windows 2000» (http://support.microsoft.com/support/ kb/articles/q238/3/59.asp) приводится подробное описание каждой из этих операций и перечислены дополнительные справочные материалы.

Восстановление в безопасном режиме

Для устранения проблем, возникающих после загрузки Windows 2000, необходимо загрузиться в режиме Safe Mode. Чтобы перейти в режим Safe Mode, нужно нажать клавишу F8, когда при загрузке системы на экране появится сообщение For troubleshooting and advanced startup options for Windows 2000. В безопасном режиме предусмотрено 10 вариантов начальной загрузки, но наиболее важны три первые: Safe Mode, Safe Mode with Networking и Safe Mode with Command Prompt. (Более подробно об использовании Safe Mode для восстановления Active Directory (AD) рассказывается в ст. Роберта Макинтоша «Восстановление каталога AD», опубликованной в этом же номере журнала — прим. ред.)

В каждом из первых трех режимов Windows 2000 запускается с параметрами по умолчанию, в том числе с видеодрайвером VGA, базовыми драйверами мыши и клавиатуры, немногочисленными драйверами устройств и службами, необходимыми для выполнения основных операций (а также сетевым драйвером, если выбран режим Safe Mode with Networking). В Safe Mode по-прежнему действуют функции автоматического обнаружения оборудования Plug-and-Play (PnP), поэтому перед загрузкой в безопасном режиме необходимо отключить устройства, вызвавшие сбой. Однако, если требуется выяснить, как и насколько успешно механизм PnP распознает и конфигурирует новые аппаратные средства, перед загрузкой необходимо подключить к машине новые устройства.

Safe Mode. Этот режим следует выбрать, если поведение системы становится некорректным после установки специализированной программы для мыши или клавиатуры, факса, цифровой фотокамеры, сетевого клиента или программы энергосбережения для ноутбука. Если система успешно загружается в безопасном режиме, то, вероятно, ее удастся восстановить, просто удалив программу-нарушителя. В Safe Mode можно переустановить функции защиты, программы коррекции и даже полные пакеты исправлений, вернув вышедшую из строя машину в нормальное состояние. Завершить работу системы следует, как обычно, из меню Start.

Safe Mode with Networking. Этот вариант безопасного режима дополнен сетевыми функциями. Следует помнить, что Safe Mode with Networking работает только с локальными соединениями, так что в этом режиме нельзя выполнять диагностику, тестировать или создавать новые соединения DUN или VPN.

Safe Mode with Command Prompt. Данный пункт следует выбрать, если неисправности видеодрайвера, клавиатуры или мыши не позволяют работать через графический интерфейс. В этом режиме система выполняет только девять процессов: System, SMSS, Csrss, Winlogon, Services, Lsass, Taskmgr, Svchost и Winmgt. Чтобы вывести на экран список команд, совместимых с данным режимом загрузки, следует набрать в командной строке:

help

В этом режиме можно пользоваться многими известными утилитами восстановления, в том числе Chkdsk, Chkntfs, Convert, Diskcopy и Format, а также обычными командами для работы с файлами. Хотя навигация по Windows 2000 с помощью командной строки затруднена, пользователь может проверять и форматировать диски FAT и NTFS, перемещать, копировать, переименовывать и удалять файлы и каталоги. Чтобы перезагрузить систему в безопасном режиме, нужно нажать клавиши Ctrl+Alt+Del, и на экране появится знакомое диалоговое окно Windows Security. Затем следует щелкнуть на пункте Shutdown. Если диалоговое окно Security не появилось, компьютер придется выключить, а затем снова включить.

После того как режим (Safe Mode) выбран, процедура Startup возвращает систему в загрузочное меню, из которого нужно выбрать конкретную установку Windows 2000 (если на машине установлен не один экземпляр системы). Затем на экране прокручивается длинный список файлов, соответствующих загружаемым компонентам операционной системы. Загрузка в режиме Safe Mode занимает больше времени, чем обычная загрузка, поэтому следует запастись терпением, ожидая приглашения к началу работы.


Экран 2. Подтверждение работы в режиме Safe Mode.

В ответ на приглашение необходимо указать локальную учетную запись Administrator и пароль (но не учетную запись и пароль администратора домена). Если пользователь забыл имя учетной записи или пароль, придется переустановить операционную систему или воспользоваться утилитой от независимого поставщика, чтобы сбросить пароль и имя этой учетной записи. Затем Windows 2000 подтверждает, что машина работает в безопасном режиме (см. Экран 2), и нужно щелкнуть OK, чтобы продолжить работу. Как показано на Экране 3, Windows 2000 размещает напоминания о режиме Safe Mode в каждом углу экрана, изменяет цвет фона на черный и ограничивает рабочую область окном VGA минимального разрешения.


Экран 3. Интерфейс в режиме Safe Mode.

Восстановление с помощью консоли RC

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

Подобно диску аварийного восстановления, RC позволяет восстановить испорченный файл boot.ini и главную загрузочную запись, а также проверить и заменить компоненты Windows 2000. С помощью RC можно заменить испорченный SCSI- или видеодрайвер; отформатировать и разбить на разделы жесткий диск; остановить или отключить сомнительные службы; удалить временный страничный файл, мешающий создать более объемный постоянный файл подкачки. Подробнее о применении RC для устранения трех наиболее распространенных системных неполадок рассказано во врезке «Использование RC для устранения типичных неисправностей».

RC можно запустить с компакт-диска Windows 2000 или установочных дисков (кнопка F10 на экране Welcome to Setup). Можно также установить локальную копию RC, но она будет полезна лишь в том случае, если система успешно загружается. RC имеет еще одно немаловажное достоинство: ее можно использовать для поиска и устранения неисправностей системы NT 4.0 (консоль следует запустить с компакт-диска или установить заранее на машине NT 4.0).

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

  • требуется наличие 7 Мбайт свободного пространства на загрузочном диске;
  • нельзя инсталлировать RC во время установки Windows 2000;
  • нельзя инсталлировать RC, если загрузочный диск входит в состав программно-организованного зеркального набора дисков.

Программно-организованный зеркальный набор необходимо разбить, инсталлировать RC, а затем воссоздать заново. Однако если используются унаследованные базовые зеркальные диски, перенесенные из NT 4.0 в Windows 2000, то разбивать набор следует лишь в том случае, если системный диск планируется преобразовать из базового в динамический. Windows 2000 не может воссоздать унаследованный набор зеркальных дисков. Если планируется восстановить системный диск в Win-dows 2000, то необходимо преобразовать унаследованный диск в динамический, а затем воссоздать зеркальный набор.

Если система отвечает этим требованиям, то для инсталляции RC нужны носитель с Windows 2000 (установить RC можно с любого инсталляционного носителя, в том числе и Win-dows 2000 Professional) и пароль локальной учетной записи Administra-tor. Чтобы инсталлировать локальную копию RC, следует ввести в командной строке

F:i386winnt32 /cmdcons

где F — местонахождение дистрибутивных файлов или компакт-диск с Windows 2000. Winnt32.exe инициирует процедуру Windows 2000 или NT 4.0 Setup. Параметр /cmdcons указывает на необходимость установки RC и представляет собой лишь один из многих ключей, используемых данной утилитой.

Запуск RC

После перезагрузки RC появляется в нижней строке меню. Если выбран пункт RC, то в верхней части черного экрана отображается текст Win-dows 2000 Recovery Console V5.0, а во время загрузки файлов — знакомая строка из точек. Затем RC выводит текстовый экран, на котором перечислены экземпляры Windows 2000 и NT 4.0 с указанием буквы раздела диска и имени системного каталога, и приглашает выбрать операционную систему для запуска. На Экране 4 показано меню машины, на которой можно загрузить четыре операционные системы: одну с диска C, одну с диска D и две с диска E. Отображая список распознанных экземпляров операционной системы, RC не дополняет его описанием каждого раздела и каталога. Поэтому при наличии нескольких системных каталогов перед загрузкой RC необходимо еще раз проверить букву диска и имя системного каталога для загрузки. Загрузив операционную систему, RC выводит командную строку в системном каталоге.

После инсталляции локального экземпляра RC файлу boot.ini присваиваются атрибуты System, Hidden, Read-Only и Archive. На Экране 5 показан файл boot.ini машины с четырьмя операционными системами. В последней строке этого файла (C:cmdconsootsect.dat=«Microsoft Windows 2000 Recovery Console» /cmdcons) содержится команда запуска RC. Если впоследствии администратор решит деинсталлировать RC, потребуется изменить атрибуты файла boot.ini таким образом, чтобы иметь возможность удалить строку запуска RC и сохранить измененный файл boot.ini. Ниже я объясню, как это сделать.


Экран 4. Пример меню запуска RC.

Пароль администратора RC

После того как введено число, соответствующее запускаемому экземпляру операционной системы, RC запрашивает локальный пароль администратора. Консоль всегда запрашивает пароль для учетной записи Adminis-trator, даже если она переименована. Хотя текст на экране регистрации RC не меняется, консоль принимает пароль для переименованной учетной записи и регистрирует пользователя.

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

Устанавливая RC на машине, которая впоследствии наделяется функциями контроллера домена (DC) Windows 2000, администратор в сущности ослабляет информационную защиту. Когда мастер Configure Your Computer назначает первый DC в лесу, Windows 2000 присваивает паролю для режима восстановления Directory Services Restore Mode нулевое значение. Взломщик может воспользоваться этим, чтобы зарегистрироваться в обход установленной процедуры авторизации. Более того, мастер Configure Your Com-puter автоматически присваивает нулевое значение паролю RC Administrator.

В декабре 2000 г. Microsoft выпустила исправление для устранения этого пробела в системе безопасности. В статье Microsoft «The Configure Your Computer Wizard Sets Blank Recovery Mode Password» (http://support.microsoft.com/support/ kb/articles/q271/6/41.asp) описывается брешь в системе защиты и приводится URL для загрузки исправления. Вероятно, этот модуль коррекции войдет в состав пакета исправлений Service Pack 2 (SP2).

Переустановка RC

Повторная инсталляция RC необходима в двух случаях. Если консоль RC установлена в разделе FAT, который впоследствии преобразуется в формат NTFS, то хранящиеся в каталоге cmdcons файлы, специфичные для конкретной файловой системы, недействительны для нового раздела NTFS. В этой ситуации необходимо заново инсталлировать RC или запускать RC с установочного компакт-диска Windows 2000.

Повторная установка RC необходима и после перехода на пакет исправлений SP2. В каталоге cmdcons содержатся важнейшие загрузочные драйверы. Они могут быть заменены при установке пакетов исправлений, поэтому требуется сначала применить пакет исправлений к файлам установки или использовать экземпляр Windows 2000 с уже исправленными файлами. После завершения процедуры установки SP2 следует повторно инсталлировать RC из каталога установки. В итоге в каталоге cmdcons будут находиться последние версии всех необходимых загрузочных драйверов.

Удаление RC

Удаление RC производится в несколько этапов. Сначала необходимо удалить скрытый файл CMDLDR в корневом каталоге загрузочного диска, скрытый каталог cmdcons и его содержимое, а затем текстовую строку в файле boot.ini, с помощью которой запускается утилита.

Поскольку CMDLDR и каталог cmdcons имеют атрибуты Hidden и System, требуется сначала сделать их видимыми в Windows Explorer. В меню Tools программы Windows Explorer нужно щелкнуть на пункте Folder Options и выбрать закладку View. Следует установить флажок Show hidden files and folders, сбросить флажок Hide protected operating system files и щелкнуть OK. Затем нужно отыскать и удалить каталог cmdcons и файл CMDLDR.

Удалить командную строку RC из файла boot.ini несколько сложнее, так как boot.ini является скрытым системным файлом, и предназначен только для чтения. Следует щелкнуть на файле правой кнопкой мыши в Windows Explorer, выбрать в меню пункт Properties и сбросить атрибуты файла. После удаления флажка Read-only появляется возможность изменить загрузочный файл и сохранить его с тем же именем. Атрибуты можно сбросить и из командной строки:

Attrib -h -s -r boot.ini

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

C:copy boot.ini boot.ini.bak

Затем, открыв boot.ini.bak в текстовом редакторе (например, Notepad, Word-Pad), следует удалить строку, содержащую текст Windows 2000 Recovery Console, и сохранить файл с настоящим именем boot.ini.

Теперь все следы RC удалены, и систему можно перезапустить. В целях безопасности после загрузки системы рекомендуется восстановить атрибуты Hidden, System и Read-only с помощью команды Attrib +h +s +r boot.ini. Если все манипуляции производились на компьютере пользователя, то желательно восстановить прежний режим функции View программы Windows Explorer.


Экран 5. Файл boot.ini с записью об RC.

Примеры использования RC

Команды консоли восстановления приведены в Таблице 1. С помощью этих команд можно копировать, переименовывать и заменять файлы и каталоги операционной системы; отключать и активизировать драйверы и службы; исправлять важнейшие загрузочные файлы; отыскивать ошибки на жестком диске и частично устранять их; создавать и форматировать разделы жесткого диска; выполнять другие операции. Чтобы выполнять сценарии с консоли, необходимо активизировать команду Set. Функции и синтаксис каждой команды документированы в статье Microsoft «Descrip-tion of the Windows 2000 Recovery Console» (http://support.microsoft.com/support/ kb/articles/q229/7/16.asp).

Работая с RC, следует помнить о некоторых важных ограничениях. Разрешены обращения только к системному диску, каталогу \%systemroot%, каталогу cmdcons и сменным носителям, в том числе 3,5-дюймовым дискам и компакт-диску. Другие каталоги системного диска можно увидеть на экране, но при попытке изменить файл или каталог, отличный от корневого системного каталога, система выдаст сообщение Access denied (отказ в доступе). Нельзя использовать RC и для создания новых файлов или копирования файлов с системного диска на сменный носитель (но можно копировать файлы с гибкого диска или CD-ROM на жесткий диск). Приступая к операции восстановления, следует помнить об этих ограничениях и убедиться в наличии всей необходимой информации и драйверов для замены.

Диск аварийного восстановления предназначен для устранения небольших неисправностей, возникающих при загрузке. Если система загружается, но затем возникают проблемы, связанные с конкретными приложениями, следует выбрать для загрузки режим Safe Mode. Чтобы изменить загружаемые компоненты операционной системы, нужна консоль RC. Следует помнить, что функции PnP Windows 2000 активны и в режимах Safe Mode и RC; поэтому перед запуском утилиты восстановления неисправное устройство следует отключить. Еще важнее помнить, что неосторожное обращение с любой из этих утилит может нарушить нормальное функционирование системы или совершенно вывести ее из строя, так что следует тщательно подготовиться к работе и действовать осмотрительно.

Паула Шерик — редактор Windows 2000 Magazine и консультант по вопросам планирования, реализации и взаимодействия сетей. Ее адрес: paula@win2000mag.com.


Использование RC для устранения типичных неисправностей

Консоль Recovery Console (RC) позволяет устранять некоторые проблемы, которые нельзя решить с помощью диска аварийного восстановления (Emergency Repair Disk, ERD) или режима Safe Mode. Три типичные задачи, для решения которых применяется RC, — удаление файла подкачки, отключение драйвера или службы и восстановление файлов ветви реестра SYSTEM.

Как удалить файл подкачки

При сбоях в процессе установки Windows 2000 или Windows NT 4.0 (или при инсталляции пакета исправлений) иногда образуется очень маленький временный файл подкачки, мешающий операционной системе создать более объемный постоянный файл. В таких случаях операционная система загружается и использует только временный файл, что резко снижает производительность. Временный файл подкачки открыт и используется во время работы системы, поэтому его невозможно удалить. Более того, при существующем временном файле операционная система не создает постоянный файл подкачки, даже если сконфигурирован постоянный файл подходящего размера. Удалить временный или постоянный страничный файл можно с помощью RC, но данная процедура довольно сложна.

  1. Перед загрузкой RC необходимо выяснить, где находится временный и постоянный файлы подкачки. И Windows 2000, и NT 4.0 размещают постоянный файл подкачки в корне раздела, а временный файл — в корне системного каталога. Чтобы узнать раздел и каталог временного и постоянного файлов, следует отыскать с помощью функции поиска Windows Explorer файл с именем pagefile.
  2. В качестве выбираемого по умолчанию назначается каталог, содержащий файл подкачки. Если файл находится в корневом каталоге раздела C и этот раздел выбран по умолчанию, то он появится сразу в командной строке (C:). Если файл подкачки находится в корневом системном каталоге winnt32, то следует ввести команду
    cd C:winnt32.
  3. Чтобы файл подкачки можно было увидеть из консоли RC, необходимо перезаписать его содержимым другого файла. Для этого следует скопировать любой файл в каталог, содержащий файл подкачки, и переименовать скопированный файл в pagefile.sys. Например, чтобы скопировать и переименовать файл с именем help.txt, нужно ввести команду
    copy help.txt pagefile.sys
  4. Чтобы удалить только что созданный файл подкачки, следует ввести команду
    delete pagefile.sys
  5. Затем следует перезапустить систему, введя в ответ на приглашение RC команду Exit. При перезапуске Windows 2000 замечает отсутствие файла подкачки и воссоздает его, используя параметры Virtual Memory из System Properties, Advanced, Performance Options. На моем ноутбуке Windows 2000 в результате этой операции был создан также новый файл hiberfile.sys для сохранения состояния системы во время «спячки».
Как отключить драйвер или службу

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

Чтобы просмотреть статус всех драйверов и служб, следует ввести в командной строке

listsvc

Данная команда выдает список драйверов и служб, состоящий из трех столбцов, в которых указаны имя внутреннего драйвера или службы, статус компонента и (в некоторых случаях) текст описания. Команда Listsvc показывает низкоуровневое имя, а не описательное, обычно приводимое в программах Services или Devices при работе в Windows 2000. Например, Listsvc выводит Lanmanworkstation для службы Workstation, Rasman для службы Remote Access Connection Manager и Seclogon для службы RunAs. Команда выдает длинный перечень результатов, и для ознакомления со всем списком приходится прокручивать много экранов. Выбрав имя сомнительного компонента, следует отключить его с помощью команды

disable 

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

Как восстановить файл ветви реестра SYSTEM

Если файл ветви реестра SYSTEM отсутствует, фрагментирован, испорчен или слишком велик, то Windows 2000 не может загрузить его и начать работу. Из-за аппаратных ограничений операционная система не в состоянии обращаться к памяти свыше 16 Мбайт во время начальной загрузки. Чтобы запустить операционную систему, необходимо разместить загрузчик, файлы ядра, коды уровня аппаратных абстракций (HAL) и файл SYSTEM в памяти объемом 16 Мбайт. Если данное условие нарушено, то Windows 2000 выдает сообщение об отсутствующем или испорченном файле. Обычно это сообщение свидетельствует о том, что файл SYSTEM фрагментирован или испорчен.

Если файл SYSTEM фрагментирован, то Windows 2000 не может начать работу в разделе NTFS. Чтобы частично — если не полностью — дефрагментировать файл, можно загрузить RC и скопировать файл SYSTEM. RC работает с версией операционной системы в минимальной конфигурации, поэтому утилита не нуждается в файле SYSTEM для запуска Windows 2000. Операция завершится успешно, если на жестком диске имеется непрерывное свободное пространство, где можно разместить копию, пригодную для загрузки. Следует загрузить RC и перейти в каталог \%systemroot%system32config (в котором хранятся активные файлы реестра) с помощью команды:

cd winntsystem32config

Затем нужно дать файлу SYSTEM временное имя:

rename system system.org

После чего копировать назад переименованный файл в файл с исходным именем:

copy system.org system

Наконец, следует перезапустить систему командой Exit.

Иногда в результате неполадок Windows 2000 или файловой системы файл SYSTEM оказывается не фрагментированным, а испорченным, в результате чего операционную систему запустить не удается. При наличии актуальных данных в каталоге
epair
egback испорченный файл SYSTEM можно заменить исправной копией, выполнив всего два действия. Во-первых, нужно переименовать испорченный файл и его собственную резервную копию (system.alt) в каталоге config:

cd system32config
ren system system.old
ren system.alt systemalt.old

Затем скопировать нормальную копию файла из \%systemroot%
epair
egback в \%systemroot%system32config:

cd \%systemroot%
epair
egback
copy system \%systemroot%system32config*.*

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

назад

Безопасный режим загрузки (Safe mode)

Загрузчик Windows 2000 (NTLDR) отображает на экране меню, из которого можно выбрать запускаемую операционную систему (см. главу 2). Если при появлении меню загрузки Windows 2000 нажать клавишу <F8>, то на экране появится меню опций отладки и дополнительных режимов загрузки, которое будет оставаться на экране до тех пор, пока не будет выбрана одна из опций.

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

Если вы имеете некоторый опыт работы с Windows NT 4.0, то наверняка знаете, что в этой системе проблемы с загрузкой чаще всего вызывались некорректно работающими драйверами устройств. Такие несовместимые драйверы могли привести к краху системы либо сразу же после инсталляции, либо даже после некоторого времени, когда их работа на первый взгляд казалась корректной. Причем вторая ситуация, когда драйвер в течение некоторого времени все же работал, не вызывая никаких проблем, всегда была более труднообъяснимой,(а в самом деле, что же могло вызвать ошибку?). При этом, хотя на первый взгляд и кажется, что нет причин, которые могли бы хоть как-то объяснить это непредсказуемое поведение, причины этому все же есть. Заключаются они в том, что как программная, так и аппаратная конфигурация компьютера со временем могут меняться, а эти изменений могут спровоцировать ошибки, допущенные при проектировании драйвера и оставшиеся незамеченными. Windows 2000, как и Windows NT 4.0, тоже может быть выведена из строя установкой несовместимого драйвера. Однако загрузка в безопасном режиме (safe mode), концепция которого была позаимствована из Windows 9x, предоставляет более удобные средства быстрого восстановления системы после подобных ошибок, нежели Windows NT 4.0.

Если несовместимый драйвер вызывает проблему при первой же перезагрузке, то вам очень повезло, потому что, как правило, в этом случае вам действительно поможет опция Загрузка последней удачной конфигурации (Last Known Good Configuration). Когда пользователь выбирает из меню безопасного режима эту опцию, система при загрузке использует информацию ключа реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet и восстановит всю конфигурационную информацию, сохраненную после того, как компьютер в последний раз был успешно загружен. В ряде случаев, если использование опции Загрузка последней удачной конфигурации не помогло, но вам известен драйвер, вызвавший проблему (список таких драйверов можно получить с помощью утилиты Sigverif, описанной ранее в этой главе), то вы можете попробовать другие способы быстрого восстановления. Например, можно попытаться использовать такие опции меню безопасного режима, как Безопасный режим (Safe Mode), Безопасный режим с загрузкой сетевых драйверов (Safe Mode with Networking) или Безопасный режим с поддержкой командной строки (Safe Mode with Command Prompt). Как уже говорилось, при использовании этих опций Windows 2000 загружается с минимальным набором драйверов и сервисов. После загрузки системы вы сможете удалить из системы проблемный драйвер с помощью штатных средств Windows 2000 — Мастера оборудования (Hardware Wizard) или Диспетчера устройств (Device Manager). (Чтобы вызывать мастер оборудования, выберите из меню Пуск опции Настройка, Панель управления, Установка оборудования (Settings, Control Panel, Add/Remove Hardware), а для вызова диспетчера устройств используйте опцию Пуск, Настройка, Панель управления, Система (Start, Settings, Control Panel, System), перейдите на вкладку Оборудование и нажмите кнопку Диспетчер устройств.) Если системный и загрузочный раздел отформатированы для использования файловой системы FAT, можно попытаться загрузить компьютер с помощью загрузочной дискеты MS-DOS (или Windows 9x) и вручную удалить или переименовать файл проблемного драйвера.

2000 г

Повышение надежности Windows 2000. Часть 1

WINDOWS 2000 MAGAZINE #03/99

Описание новых механизмов восстановления системы

По мере роста популярности Windows NT постоянно возрастало количество приложений, создаваемых для работы в ее среде. Практически любое устройство, способное функционировать на платформе Intel, поддерживает работу под управлением NT. По оценкам Microsoft, уже известно около 12000 программ, написанных для NT, и 24000 поддерживаемых этой системой устройств.

Марк РусСинович доктор философии в области вычислительной техники Университета Карнеги-Меллон и один из соавторов многих популярных утилит для Windows NT, включая NTFSDOS, Filemon, Regmon и Recover. С ним можно связаться по электронной почте по адресу mark@sysinternals.com или через Web-узел http://www.sysinternals.com

Повсеместное распространение таких программ и устройств привлекает внимание пользователей к этой операционной системе, которую легко использовать и развертывать, но они же доставляют разработчикам NT немало хлопот. Из-за небрежно написанных приложений и драйверов устройств NT пользуется славой нестабильной ОС. К настоящему времени Microsoft предоставила системным администраторам весьма ограниченный набор инструментов для восстановления системы после аварии и возложила тяжкое бремя разработки корректных приложений и драйверов на плечи самих разработчиков. Но, выпустив Windows 2000, Microsoft поставила перед собой цель, с одной стороны, дать возможность разработчикам превратить Windows 2000 в систему с нулевым временем незапланированного простоя и, с другой стороны, помочь администраторам самим выявить причину простоев, когда они возникают.

Каким образом Microsoft собирается этого достичь? Внедряя в Windows 2000 встроенные механизмы повышения надежности и предоставляя разработчикам инструменты, с помощью которых можно будет выявлять проблемы в приложениях и драйверах до того, как с ними столкнутся конечные пользователи. Вместе с тем в Microsoft признают, что несмотря на все усилия разработчиков время от времени систему бывает невозможно загрузить. Необходимость разбираться в подобных ситуациях лучше, чем это позволяет сделать Emergency Repair Disk (ERD), заставила Microsoft предоставить администраторам некоторые новые инструменты.

В этот раз я предлагаю вниманию читателей обзор имеющихся в Windows 2000 новых возможностей восстановления системы после сбоев, включая работу в режиме Safe Mode, Recovery Console, а также новый вариант создания аварийного дампа. В последующих двух номерах я расскажу о возможностях повышения надежности, добавленных в Windows 2000 (например, Windows File Protection), которые защитят пользователей от «взбесившихся» приложений. В заключение я рассмотрю программу Driver Verifier, которая, с одной стороны, позволит разработчикам драйверов быстро находить незамеченные ранее ошибки в своих программах, а с другой, поможет определять, какой драйвер несет ответственность за «обвал» системы.

Safe Mode

К числу наиболее вероятных причин, по которым Windows NT перестает загружаться, следует отнести работу драйверов устройств. Это может произойти или сразу после установки нового драйвера, или, что уже не так очевидно, после того, как драйвер нормально отработал некоторое время. И в том, и в другом случае нормальная последовательность загрузки прерывается аварийным остановом системы. Программная и аппаратная конфигурация машины может время от времени изменяться, что в свою очередь приводит к проявлению в работе драйверов скрытых ошибок. Если такая ошибка обнаруживается вслед за установкой нового драйвера во время самой первой перезагрузки системы, считайте, что вам повезло. В процессе загрузки еще остается возможность «откатиться» к конфигурации Last Known Good, что приведет к восстановлению ключа реестра HKLM\SYSTEM\CurrentControlSet1 в состояние, предшествовавшее сбою, когда система загружалась без проблем. Если конфигурация Last Known Good не помогает, можно попробовать другой способ. Например, если система располагается в разделе FAT, то, загрузившись с помощью системной дискеты в DOS, достаточно просто удалить или переименовать файл подозрительного драйвера. Если же система располагается в разделе NTFS, остается либо использовать утилиты восстановления производства независимых компаний или же рядом с незагружаемой версией NT установить новую, загрузиться в нее и обратиться к диску NTFS.

Windows 2000 весьма чувствительна к ведению драйверов устройств, что также может препятствовать процессу загрузки, но администратору этой ОС предлагается дополнительный способ решения проблемы: загрузка в режиме безопасной работы (Safe Mode). В Windows 2000 заимствована концепция Safe Mode из Windows 9x, в которой загрузочная конфигурация системы состоит из минимального набора необходимых драйверов и служб. Полагаясь только на необходимые для загрузки драйверы и службы, Windows 2000 тем самым избегает активизации драйверов от независимых компаний и других драйверов, которые могли бы привести к ее «обвалу».

Во время загрузки Windows 2000 следует нажать F8 для входа в специальное меню, содержащее пункт Safe Mode. Как правило, выбирается один из трех вариантов работы в Safe Mode: стандартный режим (standard), сетевой (networking-enabled) и режим безопасной работы с командной строкой (safe mode with command prompt). Стандартный режим означает подключение в процессе загрузки минимального числа драйверов и служб. При выборе сетевого режима к числу драйверов и служб стандартного режима добавляются новые для поддержания работы в сети. Наконец, режим безопасной работы с командной строкой идентичен стандартному режиму, но среда работы пользователя реализуется с помощью cmd.exe, а не Windows Explorer.

Windows 2000 имеет также четвертый тип Safe Mode: режим восстановления службы каталогов (DS Repair Mode), который отличается от стандартного и сетевого режима безопасной работы. Этот режим используется при необходимости провести восстановление Active Directory (AD) на контроллере домена с архивной ленты. При использовании DS Repair Mode загружаются все драйверы и службы, следовательно, нет смысла использовать этот режим для загрузки «незагружаемых» систем.

ЭКРАН 1. Ключ реестра 1

Каким образом Windows 2000 узнает, какие драйверы и службы составляют подмножество стандартного и сетевого режима безопасной загрузки? Ответ содержится в ключе реестра HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot. Как видно из Экрана 1, этот ключ содержит подключи Minimal и Network. В свою очередь последние также содержат подключи, в которых указываются имена или (1) драйверов устройств, или (2) служб, или (3) групп драйверов. Так, на Экрана 1 показан подключ vga.sys. Этот подключ определяет VGA-драйвер, который включен в загрузочную конфигурацию. В режиме Safe Mode система использует именно этот драйвер, а не тот, который, возможно, более полно учитывает характеристики адаптера, но вместе с тем может стать причиной сбоя системы в процессе загрузки. Каждый подключ под ключом SafeBoot имеет значение по умолчанию, которое определяет, что именно идентифицирует данный подключ. Так, значение по умолчанию для подключа vga.sys — Driver.

Укажем также на подключ Boot File System, для которого значение по умолчанию — Driver Group. Когда разработчик драйвера устройства пишет сценарий для его установки, он может указать, что драйвер входит в состав некоторой группы драйверов. Описание используемых системой групп драйверов находится в HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder. Разработчик указывает, что драйвер является членом группы, для того, чтобы Windows 2000 смогла установить, когда именно подгружать драйвер. Основная задача ServiceGroupOrder состоит в определении порядка загрузки группы. Некоторые типы драйверов должны загружаться либо до, либо после других типов. Для каждого драйвера в регистре имеется свой ключ, а принадлежность группе устанавливается в значении Group данного ключа. Ключи драйверов и служб расположены ниже HKLM\ SYSTEMCurrentControlSet\Services. Так, если посмотреть на подключи Services, можно обнаружить среди прочих и ключ VgaSave для драйвера VGA. Любые драйверы файловой системы, которые требуются Windows 2000 для обращения к системному разделу, перечислены в ключе Boot file system, который можно рассматривать как группу драйверов. Если системный раздел Windows 2000 расположен в NTFS, то драйвер доступа к разделу NTFS входит в состав именно этой группы. В противном случае, в состав группы входит драйвер Fastfat (он поддерживает работу FAT12, FAT16 и FAT32 в Windows 2000). Драйверы, поддерживающие работу остальных файловых систем, входят в состав группы File system. Эта группа включена в состав как стандартного режима Safe Mode, так и сетевого режима.

Когда во время загрузки выбирается один из режимов Safe Mode, программа-загрузчик NT (NTLDR) передает в ядро системы (ntoskrnl.exe) соответствующий переключатель в виде параметра командной строки вместе с параметрами, заданными в файле boot.ini. При задании любого режима Safe Mode программа NTLDR передает в ядро переключатель /SAFEBOOT:. В зависимости от конкретного типа выбранного режима безопасной загрузки NTLDR добавляет к этому переключателю одну или более строк. Для стандартного режима NTLDR добавляет строку MINIMAL, для сетевого NETWORK. Для режима загрузки с командной строки добавляется MINIMAL (ALTERNATESHELL), а для режима DS-repair — DSREPAIR.

Листинг 1: Пример содержимого протокола загрузки Windows 2000

Microsoft (R) Windows 2000 (R) Version 5.0 (Build 2031)
  5 16 1999 16:41:17.484
Loaded driver \WINNT\System32\ntoskrnl.exe
Loaded driver \WINNT\System32\hal.dll
Loaded driver \WINNT\System32\BOOTVID.dll
Loaded driver BChkD.sys
Loaded driver pci.sys
Loaded driver isapnp.sys
Loaded driver intelide.sys
Loaded driver \WINNT\System32\DRIVERS\PCIIDEX.SYS
Loaded driver MountMgr.sys
Loaded driver ftdisk.sys
Loaded driver Diskperf.sys
Loaded driver \WINNT\System32\Drivers\WMILIB.SYS
Loaded driver dmload.sys
Loaded driver PartMgr.sys
Loaded driver atapi.sys
Loaded driver disk.sys
Loaded driver \WINNT\System32\DRIVERS\CLASSPNP.SYS
Loaded driver Dfs.sys
Loaded driver Fastfat.sys
Loaded driver KSecDD.sys
Loaded driver Cnss.sys
Loaded driver NDIS.sys
Loaded driver Mup.sys
Loaded driver agp440.sys
Did not load driver Audio Codecs
Did not load driver Legacy Audio Drivers
Did not load driver Media Control Devices
Did not load driver Legacy Video Capture Devices
Did not load driver Video Codecs

Программа ядра сканирует переданные параметры для определения переключателей Safe Mode на самом раннем этапе загрузки. В соответствии с обнаруженными переключателями внутренней переменной InitSafeBootMode присваивается определенное значение. Программа ядра записывает значение этой переменной в реестр по адресу HKLM\SYSTEM\ CurrentControlSet\Control\SafeBoot\Options\OptionValue с тем, чтобы в дальнейшем различные подсистемы пользовательского уровня, например, Service Control Manager (SCM), смогли «понять», в каком именно режиме Safe Mode находится система. Кроме того, если используется режим загрузки с командной строки, ядро записывает 1 в реестр по адресу HKLM\ SYSTEM\CurrentControlSet\Control\SafeBoot\Options\UseAlternateShell. Наконец, все переданные в ядро параметры загрузки переписываются в реестр по адресу HKLM\SYSTEM\ CurrentControlSet\Control\SystemStartOptions.

Когда подсистема ядра I/O Manager готова начать процесс загрузки драйверов на основании записей в HKLM\SYSTEM\CurrentControlSet\Services, выполняется вызов функции IopLoadDriver. Подсистема Plug and Play Manager при обнаружении нового устройства перед динамической загрузкой его драйвера выполняет иную функцию — IopCallDriverAddDevice. Обе указанные функции в свою очередь вызывают функцию IopSafeBootDriverLoad перед тем, как загружать какой-либо драйвер. IopSafeBootDriverLoad проверяет значение InitSafeBootMode и решает, стоит ли вообще пытаться загружать этот драйвер с точки зрения выбранного режима Safe Mode. Например, если загрузка происходит в стандартном режиме, IopSafeBootDriverLoad ищет группу драйверов, которой принадлежит рассматриваемый драйвер, в подключе Minimal. Если такая группа находится, то вызывающей функции передается признак, разрешающий загрузку драйвера. В противном случае IopSafeBootDriverLoad пытается обнаружить в подключе Minimal имя самого драйвера. Если это удается сделать, драйвер может загружаться. Если же в подключе Minimal ни в группе, ни по своему имени драйвер не обнаружен, загрузка драйвера не производится. Если система загружается в сетевом режиме, то функция IopSafeBootDriverLoad все поиски осуществляет в подключе Network. В случае, когда не выбран ни один из режимов Safe Boot, IopSafeBootDriverLoad позволяет загружать все драйверы.

Для драйверов, которые исключаются при загрузке в режиме Safe Mode, имеется лазейка: NTLDR до обращения к ядру загружает все драйверы, для которых значение Start в реестре установлено в 0 (так называемые boot-start драйверы). Это означает, что система всегда использует эти драйверы во время загрузки. Поскольку NTLDR не проверяет ключ реестра SafeBoot, то до запуска ядра системы NTLDR загружает все драйверы boot-start.

Компонент пользовательского режима SCM, реализованный в виде программы services.exe, на этапе инициализации проверяет значение HKLM\ SYSTEM\CurrentControlSet\Control\SafeBoot\Options\OptionValue чтобы установить, загружается ли система в режиме Safe Boot. Если да, то SCM повторяет все действия функции IopSafeBootDriverLoad. По мере обработки служб, перечисленных в HKLM\SYSTEM\CurrentControlSet\Services, подсистема SCM загружает только те службы, имена которых присутствуют в реестре в соответствующем выбранному типу Safe Mode подключе.

Userinit (реализована в \winnt\ system32\userinit.exe) — это еще один компонент пользовательского режима, которой необходимо «знать», загружена ли система в режиме Safe Mode. Этот компонент инициализирует среду работы пользователя после его регистрации в системе. Userinit проверяет значение HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Options\UseAlternate. Если оно установлено, Userinit запускает программу, записанную в HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Options\ UseAlternateShell в качестве среды работы, а не использует привычную программу explorer.exe. Windows 2000 записывает имя программы cmd.exe в AlternateShell во время установки, тем самым пользовательской средой по умолчанию в режиме Safe Mode с командной строки становится командная строка Win32. Но даже в этом случае можно запустить программу explorer.exe с командной строки для начала работы в Windows Explorer. То же самое можно проделать и с другой программой графического интерфейса пользователя.

Приложения пользователя не проверяют значение OptionValue для того, чтобы выяснить, загрузилась система в режиме Safe Mode или нет, поскольку Microsoft официально не документировала наличие OptionValue. Вместо этого приложения используют вызов GetSystemMetrics (CLEAN_BOOT) API-интерфейса Win32 . Системные сценарии, которым необходимо выполнять ряд специальных операций, когда система загружается в Safe Mode, обращаются к переменной окружения SAFE_BOOT, поскольку эта переменная устанавливается системой только во время загрузки в Safe Mode.

Протокол загрузки

При выборе режима загрузки Safe Mode, загрузчик NTLDR передает в ядро Windows 2000 в качестве параметра строку BOOTLOG, наряду с уже известными нам параметрами Safe Mode. Во время инициализации ядра проверяется параметр BOOTLOG, независимо от наличия параметров Safe Mode. Если программа ядра обнаруживает строку BOOTLOG, ядро протоколирует все свои действия, связанные с загрузкой драйверов. Например, если IopSafeBootDriverLoad дает подсистеме I/O Manager команду не загружать драйвер, то I/O Manager, в свою очередь, вызывает функцию IopBootLog, которая фиксирует этот факт. Аналогично, после того, как IopLoadDriver успешно выполнил загрузку драйвера, который входит в конфигурацию данного режима Safe Mode, вызывается IopBootLog для регистрации факта успешной загрузки драйвера. Пользователь может просмотреть записи этапа загрузки системы, чтобы установить, какие драйверы вошли в состав загрузочной конфигурации.

Поскольку ядро стремится не записывать на диск что-либо до завершения программы chkdsk, что происходит после процедуры загрузки системы, функция IopBootLog не записывает сообщения в файл. Запись производится в HKLM\SYSTEM\CurrentControlSet\BootLog.

Как только начинает работать первый компонент пользовательского режима — Session Manager (\winnt\ system32\smss.exe), запускается программа проверки целостности дисков chkdsk, а затем функция NtInitializeRegistry выполняет инициализацию системного реестра. Ядро воспринимает это как разрешение записи на диск. Функция IopCopyBootLogRegistryToFile создает в системном каталоге Windows 2000 (\winnt) файл ntbtlog.txt и копирует в него содержимое BootLog. При этом «поднимается» флажок, извещающий функцию IopBootLog о том, что запись протокола загрузки в файл произведена.

Recovery Console

Safe Mode — это вполне удовлетворительный инструмент для устранения неисправностей в системах, которые перестают загружаться из-за ошибок в работе драйверов на этапе выполнения последовательности загрузки. Но в некоторых ситуациях Safe Mode не помогает. Если «проблемный» драйвер принадлежит конфигурации Safe Mode, загрузка по-прежнему будет невозможна. Другой пример: сбои в работе драйвера независимого разработчика, скажем, антивирусного драйвера, не дадут системе загрузиться, если этот драйвер относится к типу boot-start (драйверы этого типа грузятся независимо от того, выбран Safe Mode или нет). Наконец, если системный модуль или файл драйвера, жизненно необходимые системе в конфигурации Safe Mode оказываются по какой-либо причине испорченными, или же если повреждена запись Master Boot Record (MBR) на системном диске, то и в этом случае при загрузке системы произойдет ошибка. Выйти из положения поможет новый инструмент Windows 2000 — Recovery Console (RC). При этом загрузка выполняется или с компакт-диска Windows 2000, или с загрузочных дискет, а не с проблемной установки на жестком диске. Среда — командная строка с ограниченным набором команд.

При загрузке с компакт-диска, процесс вскоре доходит до экрана, на котором предоставляется выбор — либо восстановить существующую установку, либо произвести новую. При выборе режима восстановления, система предлагает вставить компакт-диск, после чего необходимо выбрать один из трех вариантов восстановления: стартовать RC, инициировать процесс Emergency Repair или же воспользоваться свойством Advanced System Recovery для восстановления данной установки с ленты. При нажатии F10 в состоянии экрана Setup Welcome можно в обход всех остальных меню напрямую попасть в RC.

Таблица 1: Набор команд Recovery Console

Команда Функция
ATTRIB Отображение атрибутов файлов и каталогов
CD, CHDIR Изменение каталога
CHKDSK Проверка целостности диска
CLS Очистка экрана
COPY Копирование файла
DELETE, DEL Удаление файла
DIR Просмотр содержимого каталога
DISKPART Добавление и удаление дисковых разделов
ENABLE, DISABLE Подключение и отключение драйверов и служб
EXTRACT Распаковка CAB-файлов Windows 2000
FIXBOOT Восстановление загрузочного сектора
FIXMBR Восстановление Master Boot Record
FORMAT Форматирование диска
LISTSVC Просмотр служб и их дескрипторов
LOGON Регистрация в выбранную установку NT/Windows 2000
MAP Отображение буква-диск
MKDIR Создание каталога
TYPE, MORE Отображение содержимого файла
RMDIR Удаление каталога
REPAIR Обновление установки на базе файлов с компакт-диска Windows 2000
RENAME, REN Переименование файла или каталога
SYSTEMROOT Изменение каталога на системный (т.е., \winnt)

RC предоставляет список установок NT, обнаруженных во время сканирования дисков. После того, как выбор сделан, следует ввести пароль администратора для регистрации в системе с административными полномочиями. После успешной регистрации пользователь попадает в окружение, напоминающее среду DOS. В Таблице 1 приведен список команд, доступных в этом окружении. Набор перечисленных команд достаточно гибок для того, чтобы выполнить простые операции ввода/вывода; с его помощью можно подключать и отключать службы и драйверы, а также восстанавливать загрузочный сектор и MBR. Вместе с тем, в среде RC предоставляется доступ к ограниченному набору каталогов, а именно: корневому каталогу, системному каталогу той установки, в которую вы зарегистрировались, и каталогам на сменных носителях — компактдисках и 3,5-дюймовых дискетах. Это обеспечивает защиту информации, к которой администратор в обычных условиях может и не иметь доступа.

Поскольку вам предоставляется возможность установить новую или восстановить существующую систему, с компакт-диска должна быть загружена копия ядра Windows 2000, включая все необходимые для этого драйверы (т.е. NTFS или FAT, драйверы SCSI, видеодрайвер). Для систем x86 файл setuptxt.sif в каталоге i386 на компакт-диске Windows 2000 управляет процессом загрузки драйверов с компакт-диска. Этот файл содержит директивы, которые предписывают, какие файлы следует загрузить и где именно на компакт-диске они находятся. Точно также, когда происходит загрузка Windows 2000 с жесткого диска, первой компонентой режима пользователя, запускаемой ядром, является Session Manager (smss.exe). Session Manager, который используется в программе Setup Windows 2000, несколько отличается от аналогичной программы, создаваемой в результате стандартной установки. Подкаталог \system32 содержит Setup Session Manager и именно эта компонента предоставляется через меню на этапе установки/восстановления Windows 2000, а затем предлагается выбрать тип восстановления. Если Windows 2000 устанавливается заново, Session Manager будет сопровождать вас на всем пути от выбора раздела для будущей системы до копирования файлов в этот раздел.

RC реализована с помощью двух драйверов: spcmdcon.sys и setupdd.sys. Когда в меню выбирается работа с RC, Session Manager загружает и запускает эти драйверы. Setupdd.sys — это вспомогательный драйвер, который позволяет spcmdcon.sys пользоваться функциями для работы с дисковыми разделами, загружать реестр, а также работать с видеодрайвером. (Setupdd.sys взаимодействует с драйверами диска для обслуживания разделов и использует базовые функции видео, встроенные в ядро Windows 2000 для вывода сообщений на экран.

После выбора установки для восстановления и передачи в RC пароля администратора, в RC должен быть запущен механизм для проверки попытки зарегистрироваться, несмотря на то, что подсистема безопасности Windows 2000 не загружена и, соответственно, не работает. RC должна сама установить, соответствует ли введенный пароль учетной записи администратора системы или нет. На первом шаге происходит обращение к setupdd.sys и загрузка куста SAM с диска. В SAM хранится информация о паролях; SAM размещен в файле \winnt\system32\config\sam. Затем RC определяет, использовался ли для шифрования SAM системный ключ. Если да, RC определяет местонахождение системного ключа в реестре выбранной системы. Шифрование SAM — это свойство, введенное в пакете обновления SP3 с целью защитить систему от взломщиков паролей (загружаясь в DOS с консоли системы, хакеры считывали пароли непосредственно из SAM-файла).

После этого RC определяет местонахождение пароля администратора в SAM и расшифровывает его, если в системе использовался ключ шифрования. На последнем шаге аутентификации RC применяет хеш-алгоритм MD5 (точно такой же алгоритм применяется в Windows 2000 во время процесса регистрации пользователей), хеширует пароль и сравнивает полученный код с тем, который хранится в SAM. Если RC обнаруживает соответствие кодов, считается, что регистрация произведена успешно. Если нет, то попытка воспользоваться RC будет отвергнута.

Аварийный дамп ядра

ЭКРАН 2. Конфигурирование аварийного дампа ядра

Последним усовершенствованием для восстановления системы Windows 2000 после сбоя является новый параметр при создании аварийного дампа. В NT 4.0 вы можете сконфигурировать систему так, чтобы в случае аварийного останова содержимое физической памяти записывалось в файл на диск. В случае «обвала» системы генерируется дамп, размер которого оказывается чуть-чуть больше объема емкости памяти. Однако почти вся или большая часть данных в файле дампа не рассматривается службой технической поддержки, которой предстоит произвести анализ этого дампа при поиске неисправности, вызвавшей аварийный отказ. Инициатором аварийного останова системы и в NT, и в Windows 2000 выступает программа ядра. Именно ядро содержит полезную информацию относительно состояния системы в момент «обвала», включая сведения о приложениях, которые были активны, о том, какие драйверы были загружены и какой именно код выполнялся в самый последний момент. Чаще всего, собственные данные активных приложений (данные режима пользователя), содержащиеся в физической памяти, не рассматриваются для определения причины аварии и лишь увеличивают размер дампа.

Специалисты Microsoft учли эту проблему и добавили новый параметр в окно Startup and Recovery для Windows 2000(см. Экран 2). Параметр Write kernel information only («Записывать только информацию ядра») исключает все собственные данные приложений. Когда этот параметр установлен, программы анализа дампа (Crash analysis tools), входящие в состав Windows 2000, в том числе dumpexam и WinDbg, «поймут», что дамп содержит сведения только о ядре системы, и будут соответствующим образом интерпретировать его. Место на диске, которое экономится с помощью этого параметра, от системы к системе, и даже от одной аварии к другой, будет сильно варьироваться. Однако типичный размер дампа для 128-мегабайтной системы составляет обычно около 40 Мбайт, в то время как полный дамп памяти обошелся бы в 128 Мбайт.

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

Надежные VPS и выделенные серверы в Нидерландах

Storage VPS, High CPU VPS

Профессиональная техническая поддержка

Домены, SSL сертификаты, VPN

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

Спринтхост — хостинг от 99 ₽ в месяц

Бесподобная поддержка, тестовый период 30 дней и домены от 149 ₽

Промокод на 30% кешбэк — CITFORUM

Новости мира IT:

  • 30.04 — Больше половины запущенных с 2021 года криптовалют провалились
  • 30.04 — Samsung вернула лидерство на мировом рынке смартфонов — Apple упала на второе место, а Xiaomi укрепилась на третьем
  • 30.04 — В Швейцарии запустили солнечную железную дорогу — солнечные панели уложили прямо между рельсами
  • 30.04 — Intel анонсировала техпроцесс 14A с «турбо-ячейками» и 18A-PT с 3D-штабелированием
  • 28.04 — Представлен релиз OpenBSD 7.7
  • 28.04 — USB 2.0 исполнилось 25 лет, но стандарт всё ещё «жив»
  • 28.04 — Исследователи Anthropic и Google поищут признаки сознания у ИИ — ещё недавно за подобное увольняли
  • 28.04 — Google ускорила Find My Device в 4 раза и скоро подключит UWB
  • 28.04 — Xiaomi прекратит поддержку семи популярных устройств
  • 25.04 — Охват IPv6 в Азиатско-Тихоокеанском регионе достиг 50%
  • 25.04 — Браузер Chrome для Android наконец-то научился открывать PDF-файлы
  • 25.04 — Intel привлекла ИИ к обнаружению ошибок у чипов в ЦОД
  • 25.04 — Adobe создала аналог robots.txt для изображений, чтобы запретить обучать ИИ на них
  • 25.04 — Экономическая неопределённость способствовала росту спроса на процессоры Intel прежних поколений
  • 25.04 — Телевизоры на системе «Яндекса» начнут показывать свою рекламу поверх рекламы эфирного ТВ
  • 18.04 — Массовый выпуск серверных процессоров на предприятиях в России начнётся не раньше 2030 года
  • 18.04 — Цифровой белорусский рубль «полноценно» заработает во второй половине 2026 года
  • 18.04 — Google вживую продемонстрировала возможности Android XR
  • 18.04 — Китай достиг полного цикла работы первого в мире ториевого реактора
  • 18.04 — Google официально признана монополистом в интернет-рекламе

Архив новостей

  • Обзор быстрых и сверхбыстрых облачных и хостинг-провайдеров
  • Быстрые и супербыстрые хостинг-провайдеры

В этой статье я хотел бы рассказать о настройке и восстановлении операционных систем семейства Windows. Эта статья может оказаться полезной всем — как новичкам, так и опытным пользователям, которые хотели бы получить базовые знания об операционных системах, основанных на ядре NT (new technology) — Windows 2000/XP/2003 Server, а также о более ранних операционных системах — Windows 95/98/Millennium Edition.

Способы восстановления операционных систем Windows 2000/XP/2003 Server

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

Эти файлы легко найти, заглянув в папку <SystemRoot>/System32/Config (где <SystemRoot> — папка (путь), в которой установлена Ваша система.

Вы увидите несколько файлов, наиболее важные из которых: SYSTEM, Software, SAM, Security, Default. Обратите внимание, у файлов отсутствует расширение. Все они являются критическими — повреждение любого из них может привести к полной неработоспособности Вышей системы.

Рассмотрим подробнее каждый из них:

  • SYSTEM — этот файл содержит сведения об аппаратной комплектации компьютера — процессоре, чипсете, оперативной памяти, BIOS. Этот файл содержит в себе (хранит) раздел HKEY_LOCAL_MACHINE/HARDWARE, в котором, если войти в Редактор реестра, вы можете увидеть весь состав аппаратуры компьютера. Это наиболее критичный файл.
  • Software — хранит сведения о программном обеспечении, установленном в системе, как ПО от Microsoft, так и от сторонних разработчиков. Файл представляет собой раздел реестра HKEY_LOCAL_MACHINE/Software и HKEY_LOCAL_MACHINE/Software/Microsoft.
  • SAM — (Security Account Manager) или, как указывается в некоторых источниках, Security Access Manager. Файл содержит сведения об учётных записях пользователей, идентификаторе безопасности (SID, Security Identifier), а также о других аспектах, связанных с пользователями в системе Windows.
  • Security — файл содержит сведения об общей политике безопасности, используемой на компьютере для конкретного пользователя.
  • Default — файл содержит некоторые параметры по умолчанию, касающиеся аппаратной составляющей, программного обеспечения и пользователей.

Другие файлы являются библиотеками, отладочными компонентами, а также журналами протоколирования, создаваемые операционной системой в процессе установки и функционирования. Например, файл setup.log содержит информацию о процессе установки (он является очень важным и создаётся операционной системой). Теперь — то вы поняли, что вся система (системный реестр) хранится в определённых файлах.

А сейчас я хочу обратить Ваше внимание на то, как использовать это преимущество с практической точки зрения.

Войдите в каталог <SystemRoot>Repair. Что Вы видите там? Правильно! Те же файлы — SAM, Security, Software, System, Default, которые Вы видели в каталоге <SystemRoot>/System32/Config. В чём же разница, спросите Вы? Всё очень просто. Заботливые разработчики из Microsoft (которых мы постоянно ругаем), предельно упростили задачу восстановления и сняли тяжёлое бремя возвращения Windows в рабочее состояние с простых пользователей.

Дело в том, что Windows создаёт две копии описанных выше файлов — в каталоге <SystemRoot>/Repair и в каталоге <SystemRoot>/System32/Config. В первом случае хранится полностью работоспособная копия системы, созданная при установке. В ней все настройки хранятся по умолчанию. Отсутствуют программы и драйвера, которые Вы устанавливали в системе — т.е. это «чистая» система.

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

Рассмотрим варианты восстановления системы:

Шаг 1. Загружаем компьютер с диска — реаниматора или с загрузочной дискеты. (Если Вы имеете опыт работы с DOS, то проблем возникнуть не должно).
Шаг 2. У меня Windows XP/2003 традиционно устанавливается в C:\Windows, поэтому в командной строке пишим: copy c:\windows\repair *.* c:\windows\system32\config (скопировать все файлы из каталога C:\windows\Repair в C:\windows\system32\config).
Шаг 3. Перезагружаем компьютер. Всё должно заработать. После перезагрузки система примет первоначальный вид.

Теперь о предосторожностях

При замене «рабочей» копии «чистой» копией необходимо обязательно копировать все файлы. При неполной замене файлов может возникнуть сбой системы. Microsoft вроде бы об этом ничего не говорит, однако, такие авторитетные авторы как Роберт Коварт, а также Питер Хипсон, автор книги «Реестр Windows XP» утверждают, что неполная замена файлов может привести к десинхронизации и, как следствие, полному краху системы.

Перед заменой системных файлов на всякий случай сделайте копию «рабочей» версии Windows. Скопируйте содержимое <SystemRoot>/System32/Config в отдельную папку. Это даст возможность вернуться к первоначальным настройкам, если восстановление пройдёт неудачно. Кроме того, обязательно сделайте полную копию реестра. Копия будет храниться в файле с расширением * .reg. В любой момент Вы можете запустить его и опять же, вернуться к первоначальному состоянию системы.

Обратите внимание на тот факт, что Windows не даст скопировать содержимое <SystemRoot>/System32/Config, т.к. эти файлы в данный момент используются системой (произвести данную операцию можно только в режиме DOS).

Мо можно выйти из этой ситуации, попробовав использовать команду xcopy с ключом /c (xcopy C:\windows\system32\config *.* D:\winrest /c).

Теперь Вы можете в любой момент сохранить текущее состояние Вашей системы.

А сейчас поговорим о таком полезном инструменте, как SFC (System File Checker), которая позволяет проверить, и в случае необходимости восстановить системные файлы. Данная утилита, насколько я знаю, была уже включена в первую версию Windows 98, в Windows ME от неё почему — то отказались, но она снова появилась в Windows 2000 и присутствует во всех последующих версиях. Использовать команду предельно просто. Откройте командную строку и напишите sfc /scannow. Данная команда активизирует процесс проверки системных файлов. Если программа найдёт повреждённый системный файл, она попросит вставить диск с дистрибутивом Windows для восстановления этого файла.

Несколько советов пользователям Windows 95/98/ME

Основными файлами в этих операционных системах являются system.dat (сведения о системе) и user.dat (сведения о пользовательских настройках). Скопируйте эти файлы в отдельную папку. Рекомендуется как можно чаще производить данную операцию, что всегда иметь под рукой наиболее свежую копию системы.

Также в состав этих операционных систем входят такие полезные программы как scanreg. Она помогает проверить реестр на ошибки и в случае необходимости восстановить его из резервной копии. Синтаксис команды:

  • scanreg /fix — проверка и лечение системного реестра;
  • scanreg /restore — восстановление реестра из резервной копии (по умолчанию Windows хранит копии 5 последних удачных загрузок системы);
  • scanreg /backup — создание резервной копии реестра.

Кроме того, вы можете воспользоваться такой полезной утилитой как msconfig, где присутствует много интересных настроек относительно загрузки системы, переменных окружения и Автозагрузки.

Программа msinfo32.exe, которую можно запустить из приложения Выполнить, открывает доступ ко всей аппаратной составляющей Вашего компьютера: запросам на прерывания IRQ (Interrupt Request), каналам DMA (Direct Memory Access). На основании работы этой программы можно производить общую диагностику системы, выяснять причины проблем, например, аппаратных конфликтов.

Загрузка…

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Register cleaner для windows 10
  • Microsoft windows search download
  • Как разрешить доступ к устройствам в видеочате рулетка после переустановки windows 10
  • Windows не удалось обновить данные реестра в ходе установки
  • Windows 10 version 1903 для систем на базе процессоров x64 kb4023057