» Hardware » Software » Windows » Internet » Humor » Other

Часть 18. Восстановление системы

Argon On-Line » Windows » NT club
 

— Мама, мама, что я буду делать?
— Мама, мама, как я буду жить?
© «Кин-Дза-Дза»

Дополнение к предыдущей статье

Сразу попрошу прощения у постоянных читателей нашего клуба за длительную задержку — работа, работа и еще раз работа… Всегда приходится чем-то жертвовать, но только не сегодня:-). Итак, объявляю 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.2. Верификация драйверов

Это средство программиста/сисадмина. Если вы имеете неподписанный драйвер, в корректности работы которого сомневаетесь, или сами создали драйвер, то лучше всего будет запустить утилиту verifier.exe (Win+R, verifier). Диспетчер проверки драйверов позволяет тестировать драйверы на типичные ошибки, а также выделять им отдельный пул памяти и следить за ним, что уменьшает вероятность сбоя при небольшом понижении быстродействия.

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

1.3. Подписывание файлов

Представляю утилиту sigverif.exe. Ее назначение — проверить файлы, по умолчанию системные, на наличие цифровой подписи и отобразить неподписанные.  Удобная и полезная для системного администратора штука, так как позволяет найти файлы, которые не имеют цифровой подписи, гарантирующей их работоспособность и подтверждающей имя разработчика и версию файла. Если вы проверите на наличие подписи системные файлы, то заметите, что только некоторые из них ее не имеют, причем системными они называются только потому, что лежат в каталоге %SystemRoot%:-).

1.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 (System) File Protection — защита файлов Win-dows (системных файлов)).

Как работает WFP? В фоновом режиме вычисляется контрольная сумма защищаемого системного файла, к которым относятся файлы с расширениями .sys, .dll, .ocx, .ttf, .fon, .exe. Затем она сверяется с контрольной суммой из файла каталога (.cat), содержащего цифровую подпись Microsoft для этих файлов. Файлы каталога операционной системы находятся в папке %SystemRoot% \ system32 \ <GUID>. Для большей части системных файлов, т.е. тех, которые хранятся в директории %SystemRoot% \ system32, файл каталога называется NT5.CAT. Далее, если контрольные суммы разнятся, файл восстанавливается из резервной копии, которая обычно хранится в папке %SystemRoot% \ system32 \ dllcache, или из дистрибутива ОС (если вы устанавливали ОС с компакт-диска, то система попросит вставить его в привод).

Кроме этого, существует также консольная утилита sfc.exe (System File Checker — проверка системных файлов), которая позволяет управлять работой WFP и задавать некоторые ее параметры. Получить справку по ключам данной утилиты можно, набрав в командной строке sfc /?. Нам будет интересен ключ /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

<< Назад | < Оглавление > | Далее >>

 
Еще
Оглавление раздела
Содержание / Новости

Карта сайта
О сайте
Ссылки

Форум
Обратная связь
Если ты нашел ошибку, хочешь что-то посоветовать либо поругать меня, не посчитай за труд написать об этом в следующем поле...







К началу страницы© 2002—2008 Argon