Восстановление Windows Server 2003 после тяжелых ранений
Крис Касперски
Windows Server 2003 – достаточно надежная и неприхотливая система, средняя наработка на отказ которой составляет несколько лет. Для борьбы с падениями народ вовсю использует Norton Ghost, Acronis TrueImage и другие платные утилиты, плохо работающие (или совсем не работающие) со SCSI-дискам/RAID-массивами, а про штатный MS BackUp никто и слушать не хочет — все сразу начинают махать руками и гнать волну. Плох же тот мастер, кто не знает свой инструмент! Мыщъх использует MS BackUp уже более семи лет и со всей ответственностью заявляет, что это отличное средство восстановления системы, обладающее огромным скрытым потенциалом, о котором мы сейчас и расскажем.
Содержание:
- Введение
- Создание резервной копии
- Простые случаи восстановления
- Тяжелые случаи восстановления
- Ремонт bkf-архивов
- Заключение
- Врезка: Что находится внутри системного архива
- Полезный совет
Почему «падает» Win2k3? Причины на самом деле различны, и если попытаться огласить весь список, то получится здоровенный талмуд, поэтому перечислим лишь наиболее значимые из них:
- установка «кривого» программного обеспечения (пакетов обновлений, прикладных приложений, драйверов etc), вызывающая конфликты разной степени тяжести и/или ведущая к разрушению критических структур данных;
- сбои питания и/или дефекты оборудования, нарушающие целостность системного кода/данных;
- вирусные эпидемии и хакерские атаки, завершающиеся внедрением нестабильно работающего rootkit’а;
- ошибки оператора, удалившего жизненно важные системные файлы, отключившего базовые службы или сделавшего иную глупость.
Так же приходится сталкиваться с физическими отказами жесткого диска, контроллера RAID-массива, разрушением главной загрузочной записи, boot-сектора и другими катастрофами планетарного масштаба, требующих для восстановления данных не только соответствующих навыков, но и, в ряде случаев, весьма дорогостоящего оборудования.
К счастью, такие происшествия случаются не часто, и в наших рассуждениях мы будем исходить из того, что жесткий диск (RAID-массив) на аппаратном уровне функционирует исправно, файловая система цела (или может быть вылечена штатной утилитой chkdsk), а пострадала лишь сама операционная система, причем тяжесть разрушений колеблется от нестабильной работы до полного отказа загружаться. Более сложные случаи восстановления мы не рассматриваем, отсылая читателя к серии статей «Восстановление данных на NTFS разделах» и книгам «Техника восстановления данных»/»Data recovery tips and solutions», электронные копии которых лежат на мыщъхином сервере: http://nezumi.org.ru/recover.zip, http://nezumi.org.ru/recover-full-rus.zip, http://nezumi.org.ru/recover-full-eng.zip. Естественно, совершенно бесплатно.
Хочется еще раз напомнить читателю, что залогом сохранности данных была и остается резервная копия, о технике создания которой мы и будем говорить. При нынешних ценах на сменные носители отсутствие резервной копии объясняется лишь полной безответственностью системного администратора или неумением автоматизировать процесс резервирования. Но объяснение — это еще не оправдание! Приговором (в случае разрушения) становится кропотливая работа ручного восстановления «осколков» данных, когда файлы приходится собирать буквально по кусочкам. И стоит эта работа намного больше носителей для резервного копирования. Добавь сюда простой организации на время восстановления, и ты поймешь, почему в настоящей статье мы будем говорить только об утилите MS BackUp, оставив остальные способы восстановления за кадром.
Набираем в командной строке «ntbackup.exe» (именно «nt», а не «ms») и дожидаемся запуска. Поклонники графических сред и мыши могут воспользоваться другим путем: «My Computer -> Any Disk -> Properties -> Tools -> Backup Now».
Сразу пропускаем главное окно приложения с большими прямоугольными кнопками, вызывающими различных мастеров (no kidding!), и переходим непосредственно к вкладке «Backup».
Здесь отмечаем галочкой пункт «System State» (состояние системы), форсирующий архивирование следующих компонентов (перечисленных в колонке справа): загрузочные файлы, реестр и классы COM+. К сожалению, мы не можем влиять на выбор компонентов, что есть большая вселенская несправедливость, поскольку в подавляющем большинстве случаев система выходит из строя из-за разрушения реестра или классов.
Указываем путь к файлу архива в строке «Backup media of file name» и нажимаем «Start Backup», после чего нас запросят описание/метку архива (backup description/label) и способ его создания — append (дозапись в конец) или replace (замещение старых данных). По своему личному опыту мыщъх рекомендует не класть все яйца в одну корзину, то есть всегда создавать архивный файл заново, отказавшись от идеи дозаписи в его конец, поскольку это чревато целым рядом различных проблем.
Нажав кнопу «Advanced» (дополнительные опции), мы можем выбрать тип архива: normal (полная архивация со снятием атрибута архивный), copy (полная архивация без снятия атрибута архивный), incremental (архивирование только измененных или вновь созданных файлов), differential (тоже самое, что incremental, только без снятия атрибута архивный), daily (архивирование файлов, измененных в течение дня). Последние три типа для восстановления требуют архивы normal/copy и всю цепочку incremental/differential/daily, что часто приводит к путанице и снижает вероятность успешного восстановления, особенно если хотя бы один из архивов поврежден, так что мыщъх рекомендует всегда выбирать тип «normal», несмотря на то, что он требует больше времени, чем последние три.
Галочка «Verify data after backup» (проверка целостности данных после архивирования) при резервировании на жесткий диск бессмысленна, и поэтому ее лучше не взводить, а вот «Automatically backup System Protected Files with the System State» («Автоматически архивировать защищенные системные файлы вместе с состоянием системы») лучше оставить взведенной по умолчанию.
Наконец, после нажатия на кнопку «Start Backup» начинается процесс архивации, занимающий (в зависимости от быстродействия системы) от нескольких минут до получаса. На выходе мы получаем bkf-файл размером порядка 400 Мб (точный размер зависит от версии системы, количества установленных заплаток, драйверов и приложений), но в своей практике мыщъх еще не сталкивался с тем, чтобы bkf-файл (типа «replace») не влезал бы на один CD-R/RW диск, не говоря уже о DVD-R/RW. Хранить на жестком диске архив небезопасно, впрочем, как показывает практика, оптические носители сыпятся еще чаще, так что несколько копий никому не помешают.
ОК, мы имеем архив состояния системы, и если вдруг Win2k3 начнет вести себя не стабильно, мы всегда сможем выполнить откат. Приложения и драйвера, установленные после создания архива, в большинстве случаев отката не переживут (зависит от того, в какие ключи реестра они себя прописывают) и потребуют переустановки.
Поэтому вырабатываем следующую стратегию поведения. Создаем архив системы. Устанавливаем новое приложение/драйвер/заплатку. Тестируем сервер в течение некоторого времени (например, недели), если полет нормальный — создаем новый архив системы, а старый удаляем. Если же после установки приложения/драйвера/заплатки появляются глюки, неустранимые деинсталлятором, выполняем принудительный откат через MS BackUp. Эта бесхитростная схема позволила мыщъху продержать пару серверов и пяток рабочих станций более семи лет без переустановки системы.
Система глючит, работает не стабильно, но, все-таки, загружается, позволяя нам запустить MS BackUp и выполнить откат к стабильному архиву. Если же Win2k3 зависает или выбрасывает голубой экран на стадии загрузки, попробуй при запуске нажать
В общем, нужно любым способом добиться загрузки системы, после чего запускай «ntbackup» и, не мешкая (ведь система может упасть в любой момент), переходи к вкладке «Restore and Manage Media» (Восстановление и управление носителями).
Здесь находится перечень всех bkf-архивов с описаниями и метками, которые мы только успели создать. Достаточно распахнуть соответствующую ветвь в левом окне, выбрав самый свежий архив, и установить галочку напротив «System State». По умолчанию архив ищется в той же локации, где он был создан, но мы можем изменить путь, нажав кнопку «Browse» и указав, к примеру, лазерный диск (примечание: для ускорения процедуры восстановления рекомендуется предварительно скопировать bkf-файл с CD/DVD на HDD).
В поле «Restore files to:» (куда восстанавливать) оставляем значение по умолчанию — «Original location» (исходная локация) и нажимаем кнопку «Start Restore», запуская процесс восстановления.
После перезагрузки мы получаем нормально работающую систему.
Представим себе, что система не загружается. Ну, не загружается, и все тут, хоть грызи свой хвост, хоть бейся зубами об лед! Большинство администраторов, вылакав пол-литра корвалола, просто переустанавливают винду поверх старой или… даже страшно сказать — с нуля, забыв о том, что MS BackUp (который все ругают!) может ускорить эту работу в сотни раз!
Находим машину с любой стабильно работающей NT-подобной системой (Win2k, WinXP, Win2k3, на счет Вислы мыщъх, правда, не уверен). Вставляем туда CD/DVD с архивом, запускаем MS BackUp, переходим во вкладку «Restore and Manage Media» и (внимание!) в поле «Restore files to:» выбираем пункт «Alternative location» («Альтернативное размещение»), указав любую папку, например, C:TEMPServer2003. Нажимаем «Start Restore» и получаем копию системы, только в другом месте.
Теперь подумаем: как перетащить все эти файлы на восстанавливаемый Win2k3. Решения на самом деле всего три. Снять жесткий диск с сервера и подключить его к рабочей машине вторым, после чего скопировать все файлы из папки Server2003 в каталоги Windows и (опционально) Program Files (внимание! файлы ntdetect.com и ntldr должны находиться в строго определенных местах диска, и потому их лучше не копировать, иначе система вообще перестанет загружаться).
Естественно, если на сервере установлен хитрый SCSI или RAID, то подключить его к рабочей станции не удастся, и в этом случае придется воспользоваться LiveCD, поддерживающим NTFS (например, Knoppix или Windows PE).
Если же RAID настолько хитрый, что его не видит даже LiveCD, то к рухнувшему серверу подключаем еще один жесткий диск, устанавливаем на него Win2k3 (со всеми необходимыми SCSI/RAID драйверами), перетягиваем туда по сети или через CD/DVD разархивированные файлы и осуществляем перезапись.
Как показывает практика, в подавляющем большинстве случаев для восстановления системы достаточно переписать всего лишь реестр и классы, находящиеся в папках: tempserver-2003Registry и tempserver-2003COM+ Class Registration Database. Скопируй их в каталог WINDOWSsystem32config поверх уже существующих файлов и перезагрузись.
Вот, собственно говоря, и все. При правильной организации вопроса восстановление системы, которая даже не загружается, занимает не более 10-15 минут, расходуемых, главным образом, на распаковку bkf-архива. Если же эту операцию выполнить заблаговременно, то на загрузку с LiveCD, с последующим копированием реестра, не уйдет и 5 минут!
Не то, чтобы часто, но все-таки случается, что MS Backup не может открыть bkf-файл, который сам же и создал. Причины могут быть самыми разными, но нас сейчас не это волнует. Единственная копия архива, и та не рабочая! Как быть? Что делать? А на экран, тем временем, выдаются следующие малоприятные сообщения:
- «The backup file is unusable. You must erase it, or choose another file» (архивный файл не может быть использован, вы должны очистить его или выбрать другой файл);
- «The fixed media is full. You cannot back up all of the specified data to this disk device. The backup operation will stop» (несъемный носитель заполнен, вы не можете сохранить все указанные файлы на этом устройстве, операция архивации будет остановлена);
- «The backup file contains unrecognized data and cannot be used» (архивный файл содержит нераспознанные данные и не может быть использован);
- «An inconsistency was encountered on the requested media» (архивный файл несовместим с данным носителем).
Поскольку проблема возникла не вчера и даже не позавчера, то кричать «караул» не стоит. Предлагаю воспользоваться одной из многочисленных утилит, предназначенных для «вытягивания» всей уцелевшей информации из bkf-файлов (а, как уже говорилось выше, в большинстве случаев нам достаточно вытянуть файлы, ответственные за хранение содержимого реестра, так что шансы на восстановление у нас есть, и это очень хорошие шансы).
Ниже приводятся ссылки на производителей платных и бесплатных утилит. Какую из них выбрать — вопрос вкуса. Лично мыщъх предпочитает коммерческий пакет «Kernel BKF Recovery» от «Nucleus Data Recovery». Другие пакеты не тестировал, так что не могу сказать о них ни хорошего, ни плохого.
Рассмотрев вопросы, связанные с восстановлением системы, мы оставили за бортом проблему архивации пользовательских данных и документов, что также можно сделать посредством MS BackUp, причем не только в ручном режиме, но и, например, по расписанию. Однако стратегия резервирования пользовательских данных далеко выходит за рамки темы нашего разговора и главным образом определяется политикой компании. Кто-то предпочитает держать все документы на сервере, используя системы контроля версий, обеспечивающих не только банальную архивацию, но и хранящих историю изменений, что крайне важно при совместной работе с документами.
Другие же хранят документы на рабочих станциях пользователей. Глупость, конечно, вернее не глупость, а огромная головная боль для администратора, но именно эта «глупость» создает децентрализованную систему, способную функционировать даже при крахе сервера. В общем, вариантов много. А MS BackUp – всего лишь архиватор со встроенным планировщиком. Но для поддержания сервера на плаву ничего другого и не надо!
Врезка: Что находится внутри системного архива
Чтобы лучше понять возможности (и ограничения!) MS Backup, необходимо знать, какие именно файлы она резервирует при сохранении системы:
- некоторые ветви реестра, сосредоточенные в файлах: system, software, security, sam, default, ComRegDb.bak, образующие ветвь HKEY_LOCAL_MACHINE (остальные ветви реестра не сохраняются);
- практически все содержимое папок Sytem32 и System (стратегия отбора файлов не совсем понятна, похоже, берутся все жизненно необходимые компоненты, плюс некоторые файлы, относящиеся к установленным приложениям сторонних разработчиков);
- некоторые важнейшие файлы и папки из каталога Windows (например, AppPatch, msagent, MICROSOFT.NET, etc);
- отдельные файлы и папки из каталога PROGRAM FILES (например, COMMON FILES, Internet Explorer, Outlook Express etc);
- содержимое каталога RSAMachineKeys из папки DOCUMENTS AND SETTINGSALL USERSAPPLICATION DATAMICROSOFTCRYPTO, содержащие ключи шифрования (если, конечно, таковые имеются).
Остальные файлы (в том числе и пользовательские учетные записи) не сохраняются, хотя ничего не мешает указать их вручную, проставив соответствующие галочки напротив папок «DOCUMENTS AND SETTINGS<Имя пользователя>«.
Достаточно часто причиной сбоев системы становится повреждение учетной записи администратора (может возникнуть, например, из-за порчи ветви реестра HKEY_CURRENT_USER, которую, кстати говоря, MS Backup не архивирует). Иногда доходит до того, что администратора вообще не пускают в систему, и приходится использовать различные утилиты для восстановления пароля администратора или же переустанавливать ОС, что отнимает уйму нервов и времени.
Но есть более простой путь — достаточно создать несколько учетных записей для пользователей, входящих в группу «Администраторы», и если «поломалась» одна учетная запись, воспользоваться другой, благо, на сервере учетные записи администраторов обычно не содержат никаких уникальных персональных настроек.
Статья опубликована в октябрьском номере журнала «Xakep» за 2007 год.





