Лечу Windows 7

May 06, 2018 14:55

   Сейчас - тот редкий случай, когда я пытаюсь вернуть к жизни свой собственный компьютер. Обычно приходится чинить компьютеры знакомых, и я всегда удивляюсь: что нужно делать с компьютером, чтобы так его убить? С моим что-то трудноизлечимое случается редко (редкие глюки, устраняемые перезагрузкой, я не считаю). А вот сейчас случилось, и я всё так же удивляюсь - ведь практически на пустом месте, я ничего не делал с ним в тот день, по крайней мере, никаких опасных экспериментов.
   Как обычно, включил компьютер утром 1-го мая, проверил почту, походил по Интернету и забыл про него. Он, естественно, перешёл в ждущий режим. Где-то к вечеру пришло желание поискать на пиратских сайтах журналы по электронике, а также посмотреть сериальчики. :) Нажимаю "Any key" (в данном случае Ctrl), компьютер просыпается, но экран не включает. Ну, думаю, видеоадаптер после ждущего режима не включился - не беда, можно выключить совсем, и восстановиться, как из спящего режима. Так и делаю, и всё срабатывает, как обычно - компьютер показывает мне те окна, которые были открыты, когда я от него отошёл. Открываю браузер, качаю журнал, параллельно пытаюсь скачать фотографию с планшета. И тут оказывается, что компьютер "не видит" планшет, говорит, что какая-то служба неверно установлена. Ну ладно, думаю, журнал скачаю и перезагружу компьютер, а то что-то в нём уже покосилось за день - бывает. Докачиваю, перезагружаю.
   И тут следовало бы вставить главу "Серп и молот - Карачарово" из книги Венедикта Ерофеева "Москва - Петушки". Потому что на экране одна за другой бегут текстовые строки о том, какой файл повреждён и что с ним будет сделано. В результате нескольких минут ожидания появляется синий экран смерти с надписью: "STOP: c000021a {FatalSyatemError} The verification of a KnownDLL failed".
   Конечно, в Интернете много написано о том, как устранить ошибку c00021a. Возникает она во многих случаях, и поэтому и устранять её все предлагают по-разному. Конечно, первое, что было сделано - попытка вернуться к предыдущему состоянию. Но оказалось, что точка восстановления в списке всего одна, и при попытке восстановить систему возникает сообщение о том, что файл повреждён. После примерно пяти попыток восстановления исчезла и эта единственная точка.
   Следующим шагом было ведение протокола загрузки, чтобы понять, на каком файле всё останавливается. Увы, в Log заносятся загруженные файлы, в результате понять, какой файл из оставшихся грузился следующим и вызвал сбой - невозможно.
   Были попытки запускать из командной строки средства восстановления системы команду "sfc /offbootdir=e: /offwindir=e:\windows /scannow", в ответ писалось, что ошибки найдены, но исправить их нельзя, и что список их можно посмотреть в файле CBS.LOG. Файл такой, однако, нигде так и не был найден.
   Ещё в Интернете встречаются советы прочесть последний файл из папки minidump - дамп памяти, записывающийся в момент сбоя. Изучив вопрос и просмотрев дампы на разных работающих компьютерах, обратился снова к своему, и тут осознал, что у меня эти дампы никогда не записывались - вероятно, соответствующая галочка не была поставлена...
   И тут я нашёл в Интернете ещё одно полезное соображение: найти среди файлов exe, dll, cpl, tlb и подобных файлы нулевой длины, и заменить их нормальными. Ну конечно, как я сразу не догадался? Файлов-то подобных там и правда полно!
   Бодро взялся за дело, благо FAR обязательной установки не требует и запускается прямо из этой восстановительной командной строки. И тут случайно наткнулся на довольно неожиданную вещь, которую обязательно нужно здесь написать, чтобы не забыть.
   Наверное, многим бросалось в глаза, что есть в 64-битной системе Windows 7 в папке Windows две похожие папки с именами System32 и SysWOW64. А ещё там есть папка Winsxs, в которой много мелких папок с именами, начинающимися с "amd64_", "wow64_" и "x86_", в которых сдублированы многие из файлов, находящихся в первых двух папках. Конечно, первое, что пришло мне в голову - это то, что в папке System32 лежат 32-битные программы и библиотеки, в папке SysWOW64 - 64-битные, а в папках, начинающихся на "x86_" и "amd64_" - их копии. И я сразу стал копировать в многочисленные "нулёвки" в папке SysWOW64 файлы из папок, начинающихся на "amd64_". Наломал дров! И тут случайно обнаружил, что всё было совсем наоборот. System32 - это папка с 64-битными программами, а SysWOW64 - с 32-битными. Соответственно, копии файлов из Sysyem32 лежат в папках, начинающихся с "amd64", а копии файлов из SysWOW64 - в папках, начинающихся на "x86" и (редко) "wow64". Кроме того, между парами соответствующих файлов в папках установлены жесткие связи - "хард линки", поэтому копировать соответствующие файлы друг в друга смысла нет. Но мне повезло - как оказалось, между повреждёнными файлами связи рвутся. Поэтому искать повреждённые файлы на замену можно по отсутствию связей, даже если я по первоначальной глупости заменил какой-то из повреждённых 32-битных файлов неповреждённым 64-битным.
   Пока не знаю, чем всё это кончится, а в Интернет выхожу с того, что сейчас уже мало кто осмелится назвать словом "компьютер" (Pentium M 1,73 GHz, 490 Mb RAM, Windows XP Home edition).

Компьютерные страданья, windows, hdd

Previous post Next post
Up