среда, 16 октября 2013 г.

Ошибка Windows\System32\Config\System на Windows XP


Одна из причин возникновения данной ошибки, описана здесь. В этой статье, я опишу варианты восстановления работоспособности операционной системы.
Немного подробнее о том, что произошло. Файл System(без расширения), является одним из нескольких файлов, формирующих реестр Windows(реестр - база данных настроек операционной системы и установленных программ, динамически формируется при каждой загрузке операционной системы), то есть по сути, является его частью, и содержит так называемый "куст"(Registry hive) HKEY_LOCAL_MACHINE\SYSTEM.
Более подробно, об этом, написано здесь. Содержит по большей части сведения об оборудовании(настройки,профили,драйверы и т.д.) и службы. Нет, конечно, это не полный список содержимого настроек этого файла, но для понимания вариантов восстановления и последствий, этой информации достаточно.


  Итак, произошла печаль и Windows, вместо привычного рабочего стола выдает ошибку,
текст можно поделить на две части, в первой - указывается где должен лежать или лежит файл, который не удается прочитать и загрузить из него информацию. Во второй части - рекомендация от компании Microsoft, которой следовать НЕ нужно. Забегая вперед, объясню почему. На установочном диске, этот файл безусловно есть, но в виде заготовки. В процессе установки Windows, он копируется на жесткий диск, и в процессе же установки пополняется данными, о физически установленном оборудовании, таком как контроллеры IDE, ACPI и т.д. Таким образом, при замене файла с установочного диска, велик риск получить кучу других "неприятностей". Работоспособная копия, "чистого" файла system, создана сразу после установки системы и хранится на жестком диске. Удобнее и правильнее, в крайнем случае, работать с ней, но обо всем по порядку.
  Черт, опять надо описать теорию, тем кому лень читать, листайте вниз до картинок. Файлы как правило, могут повредиться в двух случаях, произошла ошибка при записи информации в файл, или произошло повреждение места пребывания файла на жестком диске(еще печально, когда второе вытекает из первого в замысловатой последовательности и наоборот). Первое - файл поврежден неправильной строчкой, символом, байтом внутри и не читается правильно(при этом он копируется, перемещается, можно его удалить и т.д. и вообще выглядит прилично). Второе - поврежден кластер файловой системы в котором "лежит" часть файла(файл может занимать от одного до "очень много" кластеров, достаточно повреждения одного, для нечитаемости всего файла). Кластер, может быть поврежден, в следствии повреждения сектора жесткого диска. Появится повод, напишу подробнее, с примерами. Итак, начнем перебирать варианты восстановления.
  После включения компьютера, но до загрузки Windows, необходимо неистово стучать по клавише "F8" на клавиатуре, и у вас вместо ошибки, появится меню загрузки,

выбираете "Загрузка последней удачной конфигурации (с работоспособными параметрами)", у вас все заработало. Это чудо. Правда. Говорит о том что был поврежден не значительный параметр в незначительном месте файла и не было отключено восстановление системы. Нет меню или не помогло? Идем дальше.
  У вас случайно оказался под рукой дистрибутив Windows XP. Устанавливаем его в дисковод, устанавливаем загрузку с дисковода в BIOS или иными способами запускаем установку Windows XP.
Попав в это меню нажимаем клавишу "R"
Нажимаем "1" и клавишу "Enter"
Пароль Администратора. Здесь вход производится под встроенной учетной записью администратора, которая при обычном входе в систему не отображается. Если на эту учетную запись пароль не устанавливался(по умолчанию не ставится), просто нажимаем Enter на клавиатуре, если пароль ставился, то вводим пароль, затем - Enter.
 
Если все сделано правильно, появится вот такое приглашение ввести команду.
Вводим CHKDSK /R и нажимаем "Enter" на клавиатуре. Терпеливо дожидаемся окончания проверки файловой системы на наличие ошибок и их исправление. По окончании, вводим EXIT, нажимаем "Enter". Перезагружаем компьютер в обычном режиме. Все заработало. Был поврежден кластер на диске, он успешно исправлен, файл читается. Не помогло или нет диска? Идем дальше.
  Теперь, нам понадобится, либо загрузочный диск, или флешка с "Erd commander" или "WinPE" в простонародье именуемые "LiveCD" или "Лайфа", либо физически выкрутить жесткий диск из компьютера и подключить его к заведомо рабочему компьютеру. Загрузочный диск или флешка предоставляет на одну возможность восстановления больше, поэтому в примерах будет использоваться именно загрузочный диск. Я пользуюсь "Alkid Live CD & USB", где качал - не помню, легко находится в интернете(там где скачивается, как правило всегда есть инструкция о том как это записать на диск или флешку, и как потом этим пользоваться). Ни в коем случае не является эталоном, подобных вещей в интернете масса. Итак, загружаемся с диска(или флешки).
Загрузились. Теперь необходимо убедиться в наличии файла System.
В данном примере в нужной папке файл лежит на месте, но не работает(не читается и т.д.). Первым делом, необходимо создать копию этого файла, затем файл исходник - переименовать(можно произвольно), а копии - присвоить имя исходника(system). Дело в том, что, одна только эта манипуляция, перемещает системный файл, с ВОЗМОЖНО плохо читаемого кластера файловой системы, и БЫВАЕТ достаточной, для того, что-бы все заработало.
Файлы переименованы, теперь проверим файл system на читаемость.
Для этого, нам необходимо запустить редактор реестра. Нажимаем кнопку "Пуск", затем "Выполнить".
В открывшемся окне "Запуск программы" в поле "Открыть" набираем REGEDIT и нажимаем кнопку "ОК".
В открывшемся редакторе реестра, с левой стороны, выделяем ветку реестра как на скриншоте(можно любую, но так нагляднее и меньше шансов запутаться, если вы делаете это в первый раз, лучше делать в точности как на скриншоте).
Далее нажимаем "Файл" и "Загрузить куст"
Через открывшееся окно проводника заходим в папку C:\Windows\System32\Config выделяем файл System и нажимаем "Открыть"
Нас попросят указать имя раздела, назовем его "1" далее "ОК"
Здесь видно что потребовалось восстановить файл для открытия, все получилось, жмем кнопку "ОК".
Пояснительный скриншот. На нем видно что это структурно-одинаковые ветки реестра, за исключением ветки CurrentControlSet которая создается динамически при каждом включении компьютера.
 ВАЖНО! Теперь необходимо выгрузить куст, который мы загружали. Это необходимо для корректной работы реестра(для перемещения файла, если он подключался не под LiveCD, а все восстановительные работы велись на рабочем компьютере под управлением рабочей операционной системы).
Выделяем загруженный куст как на скриншоте
Нажимаем "Файл", далее "Выгрузить куст".

 Здесь нажимаем "ДА".
Теперь редактор реестра можно закрыть.Пробуем загрузить пострадавшую операционную систему. Заработало? Нет? У вас вообще отсутствовал файл system, или редактор реестра сообщил о том, что восстановление завершилось ошибкой?
Тогда далее.

Особенностями загрузочных дисков "LiveCD" являются настроенные политики безопасности и права доступа(а точнее их отсутствие) позволяющие попасть внутрь папки System Volume Information. В ней хранятся точки восстановления системы. Попасть в эту папку в обычной среде Windows нельзя.
Заходим в System Volume Information, далее в restore(.....)
Видим список папок RP с номерами. Нас интересует папка с наибольшим номером, и с ближайшей датой(блин, ну как это, с ближайшей датой от убывания с приближением к наименьшей от текущей, как-то так, ну в общем все поняли я думаю). Если по окончании эксперимента ничего не выйдет, будем пробовать с предпоследним номером. Практика показывает что такое случается крайне редко.
Далее заходим в папку snapshot
Копируем из этой папки, файл _REGISTRY_MACHINE_SYSTEM
В папку назначения(скриншот), далее переименовываем его просто в system. Пробуем загрузить нерабочую операционную систему. Заработало? Нет? В папке System Volume Information не было папок RP(отсутствие папок RP говорит о выключенном восстановлении системы)? Тогда, будем пробовать последний вариант.
Заходим в папку C:\WINDOWS\repair и копируем оттуда файл system в C:\WNDOWS\System32\Config. Вся эта папка - снимок реестра на момент установленной операционной системы. После того как система загрузится, вам понадобится переустановить драйвера на оборудование которое "слетит" в диспетчере устройств. Если после установки Windows, вы меняли название компьютера и рабочей группы - придется опять его поменять. Если вы устанавливали программное обеспечение добавляющее собственные службы - вам придется либо прописывать службы руками в реестре, либо переустанавливать программное обеспечение. Подавляющее большинство программ будет работать, но что-то можно не заметить, что-то можно пропустить или не знать, поэтому последний пример, на мой взгляд крайний. Искреннее спасибо тем - кто дочитал от начала и до конца:).

1 комментарий:

  1. Статья полезная и подробная, но мне, как для человека, не столь глубоко, разбирающегося в ремонте компьютеров, лучше бы её разделить на 3 статьи. И в название ссылок на каждую из этих мини статей указать на сколько грамотно было бы воспользоваться этим решением. Хотя для тех, кто будет лечить компьютер, наверное, проще будет этот весь материал распечатать сразу, и делать всё, как написано.
    А вот что я точно совсем не понял - это предложение о длине названия файла и его даты. Возможно это нужно пояснить на картинке.
    А вот разговорный стиль общения - меня порадовал!
    Артём

    ОтветитьУдалить