Кое-что про устройство Windows
Короче, описывать все мои приключения с системой мне как-то не хочется — слишком много скукотищи в этом. Расскажу только о некоторых моментах. Ещё раз отмечу, что без Лёши Туганова я бы просто не догадался о возможности большинства из этих манипуляций.
В реестре ли проблема
Чтобы выяснить, в реестре ли проблема, достаточно подменить свой имеющийся реестр (файлы в C:\WINNT\system32\config) тем, который система сохранила на всякий случай сразу после установки (файлы в C:\WINNT\repair), не забыв, конечно, предварительно сохранить сегодняшний конфиг. Проще всего это сделать, переименовав config в config.new.
Такая подмена реестра на старый оказывается совершенно безболезненной: система спокойно загружается, воспринимая произошедшее так, будто вы просто разом воткнули кучу нового оборудования и для него надо установить драйверы. Это всё можно просто проигнорировать. На то, что в папке Program Files лежит куча «новых» папок, системе наплевать; как, впрочем, и на кучу «новых» dll’ок в system32.
Я просто зашёл в «Сетевые подключения» и увидел, что там по-прежнему не было никаких соединений, и новые не создавались. И службы многочисленные также не работали.
Но это был только «общий» реестр, а ведь есть ещё «личный» (HKEY_CURRENT_USER). Он лежит в Documents & Settings в файле ntuser.dat. С ним была проделана аналогичная операция подмены (с сохранением резервной копии, конечно); тут в качестве донора использовался Defaut User — это пользовательский профиль, на основе которого создаются новые профили. Это также ничего не дало.
Таким образом, был сделан важный вывод о том, что проблема не в реестре, а в чём-то другом.
Папка system32 и комбинаторика
Следующим этапом стало «лечение» папки system32. Оно заключалось в переименовывании папки в system33 и копировании «здоровой» system32 с ноутбука. В этой скопированной с ноутбука папке реестр был заменён на мой, который из папки repair.
Удивительно, что система вообще запустилась после такого, но она запустилась! И выдала невероятное количество ошибок, заключающихся в ненайденности каких-то dll’ок — оно и понятно, в реестре всякие драйверы прописаны, а в ноутбучной папке их нет.
Важно то, что после этого «Сетевые подключения» и всякие там службы заработали. В сетевых подключениях, кстати, оказались ноутбучные подключения, что говорит о том, что подключения хранятся не в реестре, а в каких-то других файлах в папке system32.
Осталось только правильно скомбинировать все части, чтобы получить здоровую систему. Рецепт получился примерно такой:
- Берём system32 с ноутбука.
- Добиваем недостающими файлами из system33, чтобы все нужные dll’ки были.
- Берём свой HKEY_CURRENT_USER, резервная копия которого у нас есть.
- Берём свой «общий» реестр, который config.new (то есть, он должен в результате оказаться system32/config).
- Карри и майонез по вкусу.
- Перезагружаемся.
Система как новенькая. Если не считать одной мелочи.
Служба Windows Installer
Почему-то после этих манипуляций система у меня запустилась, сказав, что произошли сбои при запуске одной или нескольких служб. По данным eventlog’а, это была одна служба — Windows Installer.
Ковыряние в интернете показало, что починить слетевший Windows Installer можно, написав следующую команду: msiexec /regserver.
Такие дела.
Спасибо, очень познавательно. Только все равно непонятно кто был виноват и как его найти.
А диск всё же стоит проверить. Больше всего похоже на какое-то повреждение диска, после чего тот потерял файл с важной dll. У меня такое было, правда после этого виндоуз вообще не загрузился. Тебе повезло.
Переустановка Windows в тот же каталог, как тебе в комментариях советовали, видимо помогла бы :)
Checkdisk считает, что всё ОК; S.M.A.R.T. тоже. Что же ещё сделать?
Переустановка Windows в тот же каталог сдохла на середине со словами «Продолжение установки невозможно. Это неустранимая ошибка» (оптимистично так). В результате система оставалась в таком недоустановленном состоянии и вообще ничего не работало. От этого снова спасла подстановка ##system32## с ноутбука и т. д. ;-)
Надеюсь что у меня такая проблема не возникнет, но на всякий случай решил уточнить... Карри можно заменить на хмели-сунели?