Восстановление системы (ч. 1)
— Мама, мама, что я буду делать?
— Мама, мама, как я буду жить?
(с) "Кин-Дза-Дза!"
Дополнение к предыдущей статье
Сразу попрошу прощения у постоянных
читателей нашего клуба за длительную
задержку — работа, работа и еще раз
работа… Всегда приходится чем-то
жертвовать, но только не сегодня:-). Итак,
объявляю 18-е заседание нашего клуба
открытым.
По письмам читателей я сделал вывод, что
нужно упомянуть несколько нюансов,
связанных с созданием новой группы. Скажем,
вы создали группу и пользователя в ней,
однако не увидели его в окне приветствия и/или
не смогли войти. Для того, чтобы все
получилось, нужно знать следующее:
• Вы не разрешили новой группе локальный
вход. Вообще по умолчанию группа не
обладает никакими привилегиями. Делается
это в Локальной политике безопасности\Локальные
политики\Назначение прав пользователя\Локальный
вход в систему. Добавляя там группу, не
забудьте нажать кнопку Типы объектов и
поставить галочку напротив пункта Группы.
• Окно приветствия отображает
фиксированный набор пользователей из
определенных групп. Для входа нажмите два
раза (не входя под другими аккаунтами из
группы Администраторы!) "волшебную
комбинацию" Alt+Ctrl+Del и введите имя
пользователя и пароль. Теперь
переключаться на пользователя из созданной
группы можно будет с помощью Диспетчера
задач (закладка Пользователи, пункт
Подключить контекстное меню), обратно —
стандартная комбинация Win+L (если включено,
конечно, Быстрое переключение
пользователей). А вообще в таком случае
лучше просто выключить Окно приветствия и
пользоваться способом входа в систему а-ля
Windows 2000, но Быстрое переключение
пользователей станет недоступным.
Какой все-таки смысл создавать новую группу?
Смысл есть, когда нужно тонко
разграничивать доступ для множества
пользователей, что актуально для домена.
Для домашней машины вполне хватает двух
групп: Администраторы и Пользователи.
Введение
Я долго думал, как назвать эту статью. В
принципе, полное название звучало бы
примерно так: "Обеспечение
работоспособности Windows 2000/XP и способы
восстановления системы в случае сбоя".
Довольно длинно получилось, вы не находите?
Пришлось выбрать более краткий примерный
аналог. Он не совсем точно отражает суть
статьи, так как в ней затронуты в первую
очередь превентивные меры по обеспечению
жизнедеятельности ОС, но, как известно, пока
гром не грянет — мужик не перекрестится,
поэтому смысл названия сместился в сторону
действий по "ликвидации аварии".
Рассматривать тему мы будем на примерах
Windows 2000 и XP, так как эти ОС наиболее
распространены у домашних пользователей
среди систем линейки NT.
Материал мне пришлось разбить на 2 (а то и 3)
статьи — его слишком много. В первой
части мы рассмотрим причины возникновения
сбоев, а также средства их предотвращения и
исправления, одинаковые в обеих ОС. Вторая
часть будет посвящена, в основном, новым
средствам Windows XP, а также тому, что не
поместилось в первой части. Если будет
нужно, сделаем еще и третью часть. Учтите,
что я буду вести разговор не обо всех
технологиях и средствах защиты ОС от сбоев
и их последствий, а только о наиболее
популярных и удобных. За кадром останутся
некоторые нововведения в архитектуре ОС и
прочее. Причем рассматриваются сбои и
устранение оных для операционной системы,
для пользовательских же данных был и
остается один надежный способ защиты —
резервное копирование.
Причины сбоев
У любого программного и аппаратного
обеспечения есть "нехорошая"
тенденция сбоить, причем в самый
неподходящий момент. Видимо, это качество
передалось по наследству от его создателя
— человека. Это, конечно, шутка, но, как
известно, в любой шутке есть лишь доля шутки,
все остальное — правда.
Сбои могут быть самыми различными:
точечными и обширными, серьезными и просто
неприятными, но наиболее опасными из них
являются те, которые не дают системе
загрузиться — для их ликвидации нужно
заблаговременно позаботиться о "путях
отступления". Перейдем, однако,
непосредственно к рассмотрению вопроса.
Вот список наиболее часто встречающихся
причин сбоев в работе самой ОС. Часто
подобные проблемы мешают нормальной
загрузке операционной системы.
• Повреждение, удаление, замена на
несовместимые версии важных системных
файлов, в т.ч. и кустов реестра. Большая
часть таких фалов находится в папке %SystemRoot%\system32,
реестр в %SystemRoot%\system32\config.
• Установка несовместимых служб и
драйверов. Это один из бичей всех NT-систем.
Для уменьшения этой проблемы даже ввели
цифровую подпись драйверов, подтверждающую,
что они прошли тестирование в WHQL (Windows Hardware
Quality Lab — перевод очевиден) на
корректность работы и совместимость с ОС.
• Изменение критических для
работоспособности системы параметров на
недопустимые значения. Основная часть
таких данных хранится в ветви HKLM\SYSTEM\Current-ControlSet.
Для повышения отказоустойчивости они
дублируются — ключи HKLM\SYSTEM\ControlSetnnn, где nnn
— номер. CurrentControlSet является лишь ссылкой
на один из этих ключей.
• Повреждения файловой системы:
разрушение структуры каталогов, главной
загрузочной записи (MBR), загрузочного
сектора (Boot Sector) и т.д. NTFS очень
чувствительна к подобным сбоям: если есть
неисправимая ошибка, ОС просто не
загрузится и покажет "синий экран смерти".
С другой стороны, NTFS — журналируемая,
самовосстанавливающаяся ФС, обладающая
достаточной степенью "дуракоустойчивости".
К слову, за 3 года эксплуатации NTFS "умерла"
у меня 1 (один) раз из-за моей небрежности
— я переразбивал разделы старой,
несовместимой версией Partition Magic (следуя
старому русскому принципу авось пронесет).
В итоге я получил BSOD при загрузке ОС.
Проблема решилась удалением
недосозданного раздела банальным DOS'овским
fdisk'ом. Для апологетов FAT я предлагаю сделать
такую "шутку": запустите
дефрагментатор и нажмите Reset. NTFS такие
издевательства переносит "на ура".
• Физическое повреждение жесткого диска.
Тут вспоминается старый анекдот про
программистов: "Вопрос: Сколько
требуется программистов, чтобы ввинтить
лампочку в патрон? Ответ: Ни одного. Это
аппаратная проблема, программисты их не
решают". Именно так следует действовать и
вам. Проверка диска на сбойные сектора лишь
смягчит симптомы скорой гибели вашего
винчестера — его нужно просто заменить.
• Неверно установленные права на
системные папки: %SystemRoot%, %UserProfile%, %ProgramFiles%. В
случае неправильно заданных прав на
каталог %SystemRoot% система вообще может не
загрузиться.
С причинами сбоев, думаю, разобрались.
Теперь посмотрим, какие средства нам
предоставляет ОС для защиты от этих
напастей и ликвидации их последствий. Эти
средства делятся на две категории:
автоматически используемые ОС и
нуждающиеся в ручном управлении. Нас
интересуют обе категории.
1. Общие для обеих ОС средства
1.1. Цифровая подпись для драйверов
Начиная с Windows 2000 Microsoft стала использовать
подписывание драйверов, прошедших проверку
в лабораториях WHQL. В итоге "правильный"
драйвер должен иметь сертификат WHQL и
цифровую подпись, гарантирующую этот
сертификат и защищающую файлы драйвера от
модификации. Цифровые подписи содержатся в
файлах каталога (catalog — не путать с
папками файловой системы!) с расширением .cat.
Политика установки драйверов назначается в
Панели управления, утилита Система,
закладка Оборудование, кнопка Подписывание
драйверов (см. рис. 1). Для домашней системы
будет оптимальным вариант "Предупреждать
— каждый раз предлагать выбор действия".
Так сказать, и волки сыты, и овцы целы, но
только в случае вашей уверенности в
корректности неподписанного драйвера. Для
"серьезных" систем подходит только
вариант "Блокировать", да еще с
галочкой "Использовать это действие в
качестве системного по умолчанию" —
эксперименты с непроверенными драйверами
нужно проводить на специально выделенном
для этого компьютере.
1.2. Верификация драйверов
Это
средство программиста/сисадмина. Если вы
имеете неподписанный драйвер, в
корректности работы которого сомневаетесь,
или сами создали драйвер, то лучше всего
будет запустить утилиту verifier.exe (Win+R, verifier).
Диспетчер проверки драйверов позволяет
тестировать драйверы на типичные ошибки, а
также выделять им отдельный пул памяти и
следить за ним, что уменьшает вероятность
сбоя при небольшом понижении
быстродействия (см. рис. 2).
Работать с этой программой несложно, но
нужны знания аппаратной части компьютера,
архитектуры ОС и опыт системного
программирования, иначе названия
параметров вам ничего не будут говорить.
Думаю, вы редко будете пользоваться данным
средством, однако знайте, что оно есть.
1.3. Подписывание файлов
Представляю утилиту sigve-rif.exe. Ее
назначение — проверить файлы, по
умолчанию системные, на наличие цифровой
подписи и отобразить неподписанные (см. рис.
3).
Удобная и полезная для системного
администратора штука, так как позволяет
найти файлы, которые не имеют цифровой
подписи, гарантирующей их
работоспособность и подтверждающей имя
разработчика и версию файла. Если вы
проверите на наличие подписи системные
файлы, то заметите, что только некоторые из
них ее не имеют, причем системными они
называются только потому, что лежат в
каталоге %SystemRoot%:-).
1.4. Профили оборудования
Строго говоря, эта технология не совсем
относится к обеспечению работоспособности
системы, но в грамотных руках…
Что такое профили оборудования? Это набор
параметров в реестре, указывающих, какие
драйверы и службы нужно загружать в данном
случае. В итоге мы получаем средство,
защищающее нас от некорректных драйверов и
"глючных" устройств. Действуем мы так.
Перед подключением устройства и/или
установкой нового драйвера/службы
открываем в Панели управления утилиту
Система закладку Оборудование и жмем
кнопку Профили оборудования.
В открывшемся окне (см. рис. 4) копируем
текущий профиль (кнопка Копировать) под
новым именем. Это наша резервная копия.
Затем устанавливаем нужное программное и/или
аппаратное обеспечение. В случае сбоя у нас
есть возможность загрузиться в
работоспособной конфигурации, сделать ее
основной, а сбойную версию просто удалить.
Профили оборудования хранятся в ветви HKLM\SYSTEM\CurrentControlSet\Hardware
Profiles в ключах вида nnnn, где nnnn — число.
Подключ Current ссылается на текущий профиль.
Если просмотреть структуру ветви HKLM\SYSTEM\CurrentControlSet\Hardware
Profiles\Current, можно найти сходство с ветвью HKLM\
SYSTEM\CurrentControlSet. Действительно, профили
оборудования содержат лишь изменения
параметров по сравнению с настройками по
умолчанию.
1.5. Защита системных файлов
Еще одной проблемой для NT-систем было то,
что некоторые программы, написанные "умными"
программистами, заменяли системные файлы, в
основном, библиотеки (из-за чего эту
проблему даже назвали "dll hell"),
собственными, не всегда нормально
функционирующими, версиями. Конечно, если у
вас NTFS, то подобную операцию по умолчанию
можно проделать только с правами
администратора, но ведь и в этом случае
придется тщательно следить за версиями
файлов. Для выхода из сложившейся ситуации
Microsoft включила в свои ОС новое средство —
W(S)FP (Windows (Sys-tem) File Protection — защита файлов
Win-dows (системных файлов)).
Как работает WFP? В фоновом режиме
вычисляется контрольная сумма защищаемого
системного файла, к которым относятся файлы
с расширениями .sys, .dll, .ocx, .ttf, .fon, .exe. Затем
она сверяется с контрольной суммой из файла
каталога (.cat), содержащего цифровую подпись
Microsoft для этих файлов. Файлы каталога
операционной системы находятся в папке %
SystemRoot%\system32\<GUID>. Для большей части
системных файлов, т.е. тех, которые хранятся
в директории %Sys-temRoot%\system32, файл каталога
называется NT5.CAT. Далее, если контрольные
суммы разнятся, файл восстанавливается из
резервной копии, которая обычно хранится в
папке %SystemRoot%\system32\dllcache, или из дистрибутива
ОС (если вы устанавливали ОС с компакт-диска,
то система попросит вставить его в привод).
Кроме этого, существует также консольная
утилита sfc.exe (System File Checker — проверка
системных файлов), которая позволяет
управлять работой WFP и задавать некоторые
ее параметры. Получить справку по ключам
данной утилиты можно, набрав в командной
строке cfc /?. Нам будет интересен ключ /SCANNOW,
производящий немедленное сканирование
всех защищенных файлов и замену их на
работоспоспобную версию. Кстати, WFP можно
отключить в реестре, но я строго не
рекомендую этого делать — лучше
выставить размер кэша защищаемых файлов в 0,
а в случае чего вставлять компакт-диск с
дистрибутивом — сэкономим немного места
не в ущерб стабильности.
1.6. Системная дискета
Если вы думаете, что здесь речь пойдет о
системной дискете MS-DOS, то ошибаетесь —
подобная дискета бесполезна при
использовании NTFS, так как нужен специальный
драйвер, NTFSDOS, например. Нет, я говорю о
другом. Дело в том, что есть небольшая
хитрость, которая позволяет нам делать
интересные вещи.
Когда вы форматируете дискету в NT, то на ней
создается загрузочный сектор, причем не
стандартный для DOS, который загружает файл
io.sys, а NT-шный, загружающий ntldr. Что это нам
дает? А то, что мы вправе скопировать на
дискету системные файлы (которые нужны для
загрузки ОС) из корня системного диска: ntldr,
NTDETECT.COM, boot.ini, а также Bootfont.bin (для русской
версии NT) и (если захотите) bootsect.dos и подобные
ему (загрузочные сектора других ОС). В
результате при загрузке с дискеты мы
запустим любую ОС, находящуюся на
винчестере, прописанную в boot.ini на дискете и
имеющую файл с загрузочным сектором на
винчестере или дискете (если это не NT). Нюанс:
если вы не копировали на дискету файлы с
загрузочными секторами, то будут
использоваться файлы с жесткого диска, если
же вы их собираетесь использовать с дискеты,
то в boot.ini дискеты нужно будет заменить в
соответствующих строках букву диска (как
правило, C:) на букву дискеты (А: в
большинстве случаев).
Зачем нам это нужно? Затем, что подобная
дискета спасает нас от ряда проблем с MBR,
загрузочным сектором и уже упомянутыми
системными файлами — просто все это
используется с дискеты. Кроме того {в мою
голову сейчас пришла интересная мысль},
можно сделать одну интересную "фичу":
если у вас стоит несколько ОС, и выбор
загружаемой ведется с помощью стандартного
загрузчика NT, то можно сделать такую
дискету, а потом удалить с винчестера файлы
с загрузочными секторами (можно и не
удалять) и убрать ненужные записи из boot.ini.
Теперь загрузиться в другую ОС можно будет
только с помощью этой дискеты.
Что ж, на сегодня пора закругляться.
Продолжим в следующий раз.
Еще увидимся.
Creator, for_creator@tut.by
© компьютерная
газета