Pull to refresh

Доломать Windows, чтобы починить: «Было предпринято несколько попыток, но причину проблемы определить не удалось»

Reading time 4 min
Views 60K
Время от времени случается, что ко мне обращаются пользователи с заглючившим Windows 7 или 8 (наверняка так же и с «десяткой» будут жертвы), у кого постоянно запускается «Восстановление системы» вместо нормальной загрузки, и автоматический механизм поиска и устранения проблем не справляется.



Мне удалось разобраться, почему возникает сообщение «Было предпринято несколько попыток, но причину проблемы определить не удалось» и как вернуть жизнь операционке без радикальной переустановки.

Симптомы проблемы: с диском всё в порядке, файловая система в порядке, на разделах файлы с загрузочной флешки или диска просматриваются, внешне всё на месте, все тесты система восстановления заканчивает с кодом 0x0 (нет ошибок), но Windows упорно не стартует, предлагая восстановление, при этом не может объяснить пользователю — почему.

Единственная зацепка — в описании проблемы, выдаваемом средством восстановления, есть строчка вида
Сигнатура проблемы 07: CorruptFile

На этом этапе уже можно догадаться, что операционная система не запускается по причине отсутствия или повреждения какого-то из файлов, необходимых на этапе старта ядра. Однако, нигде нет упоминаний, о каком именно файле речь. Это можно узнать лишь «доломав» операционку: нужно заменить процесс загрузки так, чтобы система восстановления просто не запускалась. Ниже готовая пошаговая инструкция.

1. Находясь в средстве восстановления, нажимаем «Показать дополнительные возможности восстановления системы» и выбираем запуск командной строки для ручного вмешательства.



Нас спросят логин и пароль для пользователя Windows, под которым мы сможем залогиниться в упавшую Windows, хотя это нам не принципиально.

2. В консоли выполняем последовательно две команды:

bootrec /RebuildBcd

bcdboot d:\windows

На всякий случай — предварительно убедитесь (путём dir d:\windows) что буква диска в данной среде восстановления действительно «d».

Вот, теперь мы «прибили» систему восстановления. Возможно даже, что кое-где на начальном этапе у нас теперь будут надписи не по-русски (или какой там был язык, если Windows локализованная), а по-английски. Если это нежелательно, то в конец второй команды добавьте опцию "/l ru-RU":

bcdboot d:\windows /l ru-RU

Ну или какой там у вас язык использовался. Далее. Смело перезагружаемся и (если спрашивают) выбираем обычную загрузку Windows. Очень скоро загрузка прервётся, показав на чёрном экране кучку белых букв, примерно так:



Разумеется, строчка с «File:» — единственное для чего всё это и затевалось. Хорошенько запоминаем имя указанного файла (или фотографируем на мобильник, записываем на бумажку и т.п.) и достаём нашу козырную загрузочную флешку с установщиком Windows (или вставляем аналогичный DVD), жмём Reset (при наличии) и загружаемся в установщик. Главное — чтобы у нас совпадала редакция (7, 8, ...), язык системы и разрядность (x86/x64) систем на диске и на установочном носителе.

Теперь нам надо вернуть всё как было до нашего прихода.



Выбираем, дойдя до изображения справа, восстановление системы. Нас просят, какую из систем мы собираемся восстанавливать:



Если что-то не так — нам скажут, что установочный диск не подходит к установленной системе. Следует убедиться в правильности выбранной разрядности (посмотрите на диске наличие папки «Program files (x86)» — если есть, то это 64-битная ось, если нет, соответственно, 32-битная, хотя надёжнее поискать SysWOW64 в папке самой оси), попытаться загрузить инсталлятор в другим языком, а может быть и взять другую редакцию.

Пришла пора откинуться в кресле и наблюдать за процессом.



По окончании этого процесса мы вернёмся туда, откуда начинали — к постоянному запуску системы восстановления, которая не знает в чём проблема. Если бы мы могли сразу увидеть название файла, который создал проблему — всего выше не потребовалось бы!
Как бы то ни было, теперь нам остаётся лишь исправить саму проблему, к которой мы так долго подбирались. Снова жмём «Показать дополнительные возможности восстановления системы» и выбираем запуск командной строки. Это нам нужно лишь для того, чтобы запустить regedit.exe

В редакторе реестра выбираем ветвь HKEY_LOCAL_MACHINE и в меню выбираем подгрузку куста реестра из файла:



В открывшемся диалоге скармливаем редактору файл SYSTEM из папки d:\windows\system32\config (это кусок реестра восстанавливаемой оси).

Нас спрашивают имя — даём абсолютно любое имя, например «1». Куст подключается и мы можем его выбрать в окне редактора. Теперь надо просто найти и удалить сведения о том файле, имя которого мы наблюдали белым по чёрному. Нажимаем Ctrl+f (можно даже просто F3) и вбиваем то самое имя в строку поиска (путь вводить совсем не обязательно). Когда редактор найдёт запись, удаляем всю ветвь (в левой части окна редактора, где дерево реестра) с этой записью и повторяем поиск (F3). Когда получим сообщение «Поиск в реестре завершён» — можно закругляться: сматываем дерево обратно на наше заданное кусту имя («1» например) и через меню редактора выгружаем куст.

Всё, ремонт закончен, перезагружаемся и проверяем работу операционки!

P.S.: Как должно быть видно по имени файла, которое мы с таким трудом выудили у системы — проблему как правило создают разного рода трояны, любезно устанавливаемые пользователями, работающими с административным аккаунтом системы, причём проблема возникает не тогда, когда троян (или даже просто малварь) устанавливается, а тогда, когда зверя выпиливает насильно антивирус. Оставшаяся в реестре запись файла трояна, как «позарез нужного для запуска», и приводит Windows к зацикливанию с попыткой восстановления. Поэтому, чтобы не вставать дважды — желательно сначала просканировать файлы антивирусом, поудалять мусорных троянов с диска, и потом приступать к описанным процедурам — на случай, если в системе прописалось больше одного таких зверька.
Tags:
Hubs:
+30
Comments 17
Comments Comments 17

Articles