А можно ли вернуть к жизни упавшую "двухтысячку"? За полчаса, без переустановки всей системы. Можно! Если только своевременно подготовиться к такой ситуации…
Кто из системных администраторов не предпочтет Windows, построенную на технологии NT, ее 98-й "сестре". Причин несколько: это и лучший пользовательский интерфейс, и более совершенная поддержка оборудования, и (о как мы это любим!) возможность ограничивать привилегии пользователей. К тому же эта ОС построена с расчетом на повышенную надежность. Чего стоит одна только NTFS — журналируемая файловая система, которую практически невозможно нарушить.
Долгожительству W2K/XP на нашем ПК должно способствовать и то, что эта операционка сопротивляется замене (в том числе и замене вирусами) критичных системных библиотек и хранит, как минимум, один набор корректных ветвей системного реестра.
Практика показывает — это действительно работает, и данная система действительно более стабильна, чем Windows 98. И все же, установив Windows 2000/XP на компьютеры своих пользователей, слишком расслабляться не стоит. Не забывайте, что надежность компьютерного комплекса состоит из двух составляющих: безотказности программ и безотказности оборудования.
Вспомните, во сколько крат возросли за последние несколько лет объемы винчестеров. Поверьте, производителям этих хранилищ данных все сложнее наращивать гигабайты без потери надежности. Проанализируйте: сегодня уже никто не предлагает трехгодичную гарантию на жесткие диски — как правило, ограничиваются годом.
В таких условиях очень важно проводить систематическое резервирование данных. Но об этом отдельный разговор. Сейчас же мы поговорим о том, как с наименьшими усилиями и без потери лишнего времени восстановить работоспособность Windows 2000/XP. Ведь в ситуации, когда компьютер не грузится, мы зачастую вынуждены прибегнуть к единственному выходу — переустановке системы. И процесс этот не только занимает много времени, но еще и чреват (в случае вольной или невольной небрежности) потерей пользовательских данных. А иногда эту процедуру произвести просто затруднительно — на винчестере недостаточно свободного места или под рукой нет всего набора необходимых программ.
Поэтому обдумайте дальнейшие действия — может, стоит попытаться просто исправить систему?
А для этого в первую очередь следует уяснить, из-за чего произошел сбой.
Причины катастроф
Из всех деструктивных событий, происходящих внутри компьютера и способных вызвать его отказ, следует выделить следующие:
- физическое разрушение диска;
- повреждение главной загрузочной записи и загрузочной записи раздела диска;
- повреждение системных файлов (имеются в виду файлы, непосредственно пробуждающие Windows к работе: ntldr, boot.ini, ntdetect.com и т.п.;
- повреждение целостности системного реестра;
- установка некорректных драйверов и сервисов;
- небрежная установка прав доступа к каталогу %systemroot%.
Причинами этих неприятностей может быть единовременный сбой в работе винчестера, или пропадание питания в сети, или неправильно работающая программа, или, наконец, вирус. Как бы то ни было, в результате старт операционной системы становится недоступным: Windows будет или безнадежно зависать, или постоянно перезагружаться. (Кстати. XP настроена так, чтобы всегда идти на самостоятельную перезагрузку при обнаружении серьезного сбоя в своей работе. Разработчики считают, что лучше поступить так, чем позволить пользователю работать в нестабильной ситуации, которая может привести к потере данных. Хотя у пользователя такое поведение ОС вызывает недоумение.)
Если же система не способна самостоятельно стартовать, остается лишь вмешаться в этот процесс и попытаться разрешить конфликт вручную.
Загрузка в безопасном режиме
Самое простое, что можно сделать.
Если Windows не смогла один раз нормально загрузиться, то в следующий раз она предложит пользователю выбрать вариант дальнейшей работы: нормальный или безопасный режим, командная строка. Хотя меню с выбором этих вариантов можно вызвать и самостоятельно — для этого нужно держать нажатой клавишу F8 в первые моменты загрузки Windows.
Режим безопасной загрузки иногда позволяет вернуть эту ОС в стабильное состояние, если степень ее повреждения не значительна. При этом следует представлять, из-за чего могли возникнуть трудности. Узнайте у пользователя, какие именно события происходили с момента нормальной работы системы — человек мог применить режим работы дисплея, не поддерживаемый видеодаптером, установить нерабочую программу или устройство, поменять настройки компьютера и т.д. Когда необходимая информация будет получена, нужно устранить источник неполадок.
Хуже, когда не удалось узнать причину нестабильности. В этом случае придется анализировать многие факторы: состояние устройств (используя Диспетчер устройств), работоспособность системных сервисов, целостность файловой системы и системного реестра. К сожалению, дать более определенные советы практически невозможно — ситуация имеет слишком общий характер. В самом крайнем случае можно полностью восстановить "регистри" (этот прием описан далее).
Обычно возможность загрузить 2000/XP в режиме защиты от сбоев является хорошим признаком того, что ее работу удастся возобновить и в нормальном режиме.
Работаем с консолью восстановления
Консоль восстановления системы иногда оказывается для сисадмина последней надеждой в борьбе за выживание Windows. Хотя ее возможности достаточно ограниченны (по крайней мере, для меня, много работающего в Linux) и включают лишь минимальный набор системных команд, пренебрегать этими возможностями все же не следует.
Спрашиваете, как же добраться до этой консоли? Существует два варианта.
Первый: воспользоваться установочным диском 2000/XP. После загрузки программы установки следует выбрать режим восстановления (R), а потом — использование консоли (C). Будет произведен анализ конфигурации на предмет наличия установленной ОС Windows 2000 или XP. Напомним, что W2K стандартно устанавливается в папку WINNT, а XP — в папку WINDOWS. Далее мы будем обозначать эти директории как %systemroot%. Но чтобы консоль восстановления признала эти директории как точки присутствия операционной системы, в них еще должен обязательно размещаться реестр — в поддиректории SYSTEM32\CONFIG. Если это так, на экран будет выдан список опознанных систем и приглашение войти в одну конкретную. Вам следует ввести ее порядковый номер. Простое нажатие Enter расценивается как отказ, после чего компьютер будет перезагружен. Теперь нужно ввести пароль администратора — и вы попадаете в командную оболочку.
Однако, как уже было сказано, есть и другой способ вызова консоли восстановления. Ее можно установить как дополнительную опцию на жесткий диск. Но только после установки Windows в целом. В результате при запуске компьютера появится соответствующее меню. Кстати, с жесткого диска консоль загружается быстрее.
Этот прием имеет смысл использовать, если вы собираетесь регулярно резервировать системные файлы вручную. Инсталляцию консоли производит программа установки с компакт-диска Windows 2000/XP, запущенная с ключом /cmdcons. Например, D:\I386\winnt32 /cmdcons приведет к появлению такого окна (см. рис. 1).
Рис. 1. Установка консоли восстановления на жесткий диск
Существует еще несколько моментов, которые следует знать, чтобы эффективно пользоваться возможностями данного инструмента. Так, если не предпринять никаких дополнительных действий, то границы перемещения по диску будут определяться деревом системной директории %systemroot%.
Хорошо это или плохо? Скорее, плохо. Суть такого ограничения в том, чтобы работать только с ресурсами системы. А ведь, с другой стороны, консоль восстановления понадобится нам как раз в критических ситуациях, когда возникнет необходимость переписать данные с дискеты или компакт-диска. Так что лучше сразу дать командной строке больше свободы.
Побороть это ограничение можно, используя локальную политику безопасности. Открываем Пуск > Настройки > Панель управления > Администрирование > Локальная политика безопасности. Переходим в Локальные политики > Параметры безопасности. Теперь вы видите, что нужно изменить один из параметров безопасности (рис. 2).
Рис. 2. Разрешаем доступ ко всем дискам из консоли восстановления
Но это еще не все. В своей работе консоль использует несколько важных переменных окружения:
- AllowAllPath (позволяет выполнять команду CD по всему диску);
- AllowWildCards (позволяет применять шаблоны имен файлов в составе команд копирования и удаления);
- AllowRemovableMedia (позволяет копировать файлы со съемных носителей);
- NoCopyPrompt (позволяет переписывать файлы без запроса разрешения от пользователя).
Нам нужно будет установить в TRUE первую и третью переменную. Делается это так:
set AllowAllPath = TRUE
и:
set AllowRemovableMedia = TRUE
Итак, мы ознакомились с тем, как запускать консоль и как ее настраивать. А вот команды, которые предлагает эта оболочка, и то, как с ними работать, давайте будем изучать уже применительно к конкретной задаче.
Генеральный резерв штаба
Восстановление системы порядком облегчится, если вовремя создать резерв важных системных файлов. Условно их можно разделить на две категории: библиотеки и реестр.
К разряду библиотек отнесем набор программ и dll-фалов. Их можно один раз скопировать в отдельную директорию. Делать это следует лишь после установки и настройки системы. Правда, после каждого обновления сервисного пакета или драйверов процедуру нужно будет повторять. Но даже если в нужный момент под рукой окажутся библиотеки не последней свежести, в большинстве случаев они все равно могут сильно помочь.
Как определить, какие файлы копировать? Поручите это самой Windows. В ее составе — отличная утилита, NTBackup. Запускаем ее и вызываем мастер архивации. Указываем ему, что архивировать следует только состояние системы. Выбираем местоположение файла архива (там должно быть достаточно свободного места, порядка 500 Мб). Нажимаем Готово — и процесс пошел.
Рис. 3. Мастер архивации поможет отобрать системные файлы
После того как будет создан упакованный файл с набором системных файлов, имеет смысл произвести обратное действие: извлечь из него содержимое в специальный каталог. Конечно, если нет проблем со свободным местом — в противном случае придется ограничиться ручным копированием наиболее важных файлов.
Итак, запускаем всю ту же NTBackup, но теперь уже в режиме восстановления. Для этого не следует вызывать Мастер восстановления — просто перейдите на соответствующую вкладку. В появившемся окне не забудьте в поле Восстановить файлы в: выбрать Альтернативное размещение и указать соответствующую папку, как на рис. 4.
Рис. 4. Распаковывать системные файлы нужно в отдельную папку
Лучше если она будет размещена в %systemroot% — на случай если не будет возможности перемещаться по всему диску. Посмотрите еще на имена созданных подпапок: Загрузочные файлы и Реестр. Набирать длинные русские имена в консоли не слишком удобно. Пожалуй, лучше переименовать их, скажем, в BOOTF и REG.
Однако если у вас нет желания держать на винте огромное число дополнительных файлов, для резервирования можно избрать лишь самое необходимое: системные загрузочные файлы и реестр. К первой группе я бы отнес boot.ini, Bootfont.bin, ntdetect.com, ntldr, %systemroot%\system32\ntoskrn.exe, %systemroot%\system32\hal.dll (а еще лучше — все файлы из system32). А файлы системного реестра находятся в папке %systemroot%\system32\config (это файлы без расширений) и %systemroot%\repair\RegBack (здесь находится последний рабочий вариант реестра).
Так вот, скопировать можно все, кроме актуального дерева реестра. Эти файлы постоянно открыты системой — вот, кстати, почему еще возможно их повреждение. Чтобы их переписать, нужно будет воспользоваться консолью восстановления. Выполните в ней следующие действия (предполагается, что папка %systemroot%\bkp\reg уже создана):
cd system32\config
copy default ..\..\bkp\reg
— и то же самое для файлов default, sam, security, software, system, userdiff.
Очень рекомендуется иметь 3-4 снимка рабочего реестра, описывающих различные состояния системы.
Еще один способ: загрузиться с дискеты и воспользоваться утилитой доступа к NTFS-разделу (конечно, если Windows установлена на систему FAT, все значительно упрощается).
Если сбоит диск
Когда сбой операционной системы, по вашему мнению, происходит по вине винчестера (по причине его дефектности или из-за нарушений в файловой системе), можно попытаться вернуть 2000/XP в рабочее состояние, запустив утилиту проверки диска из консоли восстановления.
Как попасть в эту консоль, вы уже знаете. После этого наберите команду chkdsk. В данной ситуации к ней можно применять только два ключа:
- /P — проверять диск, даже если он помечен как исправный;
- /R — искать дефектные блоки и при возможности восстанавливать информацию.
Работа этой программы основана на использовании Autochk.exe из папки CMDCONS.
Допустим, эта утилита справилась с задачей, и операционная система загрузила графическую оболочку. Постарайтесь сразу же выполнить две процедуры: создать архив всех важных данных и провести полную проверку диска, включая поиск дефектных секторов. Конечно, лучше делать это, подключив винчестер к другому, полностью исправному компьютеру.
И если в результате вы обнаружите, что на HDD присутствуют сбойные блоки, следует в кратчайшие сроки вывести это устройство из употребления.
Восстанавливаем начальную стадию загрузки
Когда сердце пользователя замирает от изумления, вызванного странной надписью "NTLDR is missing", системный администратор не должен терять самообладания. Дефект в MBR или загрузочном секторе диска может быть устранен. Для этого даже предусмотрено два штатных средства — команда FIXMBR и FIXBOOT. Их можно вызвать из консоли восстановления, загрузившись с помощью установочных дискет или компакт-диска.
Правда, есть и плохие новости: без традиционного fdisk не обойтись. О роли загрузочных записей только вкратце: Главная загрузочная запись (Master Boot Record, MBR) отвечает за выбор операционной системы, а Загрузочная запись (Boot Record) — уже за загрузку конкретной операционки.
Когда повреждена MBR, на экране чаще всего возникает непрерывный поток символов. Чтобы исправить ситуацию, следует выполнить несколько простых действий. Вначале посмотрим (из консоли восстановления), какие диски представлены в компьютере:
map
C: \Device\Harddisk0\Partition1
Или что-то в этом роде описывает таблицу распределения логических дисков в системе. Исправлять MBR следует не в разделе, а на самом физическом диске. Поэтому:
fixmbr \Device\Harddisk0
Нужно будет еще подтвердить свои намерения, набрав y и нажав Enter. Далее компьютер напишет, как прошла операция.
О том, что нужно применять fixboot, говорят различные надписи, сообщающие об отсутствии операционной системы. Спасение в следующих строках:
Fixboot \Device\Harddisk0\Partition1
Имейте в виду, устройства нумеруются с "0", а логические разделы — с "1".
Если Windows все же не грузится, причиной может оказаться отсутствие активного раздела на диске. Стартуйте с дискеты MS-DOS, запустите fdisk и назначьте признак активности основному разделу, на котором находятся системные файлы — ntldr, ntdetect.com, boot.ini.
При исправном MBR и загрузочном секторе операционная система уже способна самостоятельно выдавать кое-какую отладочную информацию. Например, о том что нужен файл ntldr. При правильной настройке консоли восстановления его можно скопировать из папки, где хранятся резервные файлы или с дискеты. Иначе нужно будет применять утилиты, специально предназначенные для работы с NTFS.
Исправляем BOOT.INI
Именно из этого файла берется информация о том, какую операционную систему и с какими параметрами нужно загружать. В самом распространенном случае, когда на компьютере только одна система, файл выглядит так:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows XP Professional" /fastdetect
Имейте в виду, что XP устанавливается в папку Windows. Возможно, придется подправить строку ARC. Это просто:
- фрагмент multi(0)disk(0) менять не нужно;
- параметр rdisk указывает на порядковый номер жесткого доска (0…3);
- partition — на раздел диска (1…4).
Проблемы с "регистри"
Наверное, все Windows были бы похожи друг на друга как близнецы, если бы не разные реестры. Это глобальное хранилище наиболее важной для работоспособности системы информации имеет исключительное значение. И именно поэтому даже небольшая ошибка в нем может привести к краху всей системы. Учитывая это, в ОС W2K/XP предусмотрена возможность отката к предыдущему, рабочему состоянию. Инициировать этот процесс можно из меню загрузки, через клавишу F8.
К сожалению, такой откат не всегда эффективен. Состояние реестра, которое ОС считает рабочим, может оказаться совсем не таким. Вот поэтому-то и рекомендуется иметь несколько копий дерева системной конфигурации. Как это сделать, вы уже знаете. Так что остается лишь скопировать его в нужный раздел: %systemroot%\system32\config. Как это сделать? Можно из консоли восстановления, воспользоваться командой copy. Так, как в разделе Генеральный резерв штаба — только в обратном порядке. Или, опять же, воспользоваться утилитами доступа к NTFS.
Рисковать или нет?
Так что же делать, когда Windows капризничает? Естественно, в первый раз, возможно, и не стоит экспериментировать с системными утилитами. Так ведь и всех данных лишиться можно. Как говорится, тренироваться лучше "на кошках".
Но, во-первых, иметь резерв системных файлов никогда не повредит — а вы уже знаете, как его можно сделать. Во-вторых, не исключено, что у вас уже есть неиспользуемый винчестер со слетевшей операционкой — вот он-то и лучше всего подойдет в качестве подопытного материала.
Ну, а если совсем уж не терпится, можно самому создать себе "условия". Возьмите свободный винчестер, установите туда XP и создавайте себе проблемы сколько сил хватит: стирайте загрузочные сектора, портите реестр, удаляйте системные файлы. Вот и будет возможность потренироваться.
Утилита доступа к NTFS
Доступ к NTFS-разделу винчестера можно организовать различными путями. Самый распространенный из них — достать жесткий диск из корпуса и переставить на компьютер с установленной ОС, поддерживающей такой вид файловой системы. Это может быть Windows 2000/XP или Linux.
Если же проводить манипуляции по сборке-разборке ПК вам лень или если это просто невозможно (скажем, опечатан корпус), можно поступить по-другому. Воспользоваться специальными утилитами. К сожалению, бесплатных программ для работы с NTFS в режиме чтение/запись нет (разве что Linux). А среди коммерческих следует отметить NTFSDOS Professional Edition, демо-версию которой можно взять на сайте производителя — http://www.sysinternals.com/.