Я наконец получил Windows XP, работающую на моей новой старой системе в пятницу! Woohoo! (Это заняло всего 5 с половиной месяцев.)
Я бы изложил конкретные шаги, необходимые для ее устранения в случае, если кто-то еще столкнется с подобной проблемой, хотя, к сожалению, из-за растущего разочарования и нетерпения я в конечном итоге выбрал несколько выжженный подход и выполнял несколько шагов одновременно. Однако я сохранил рабочие файлы, которые использовал, и обнаружил внесенные изменения, поэтому я перечислю несколько вещей, которые можно попробовать, или, по крайней мере, они должны помочь.
(Очевидно, что это продвинутый материал для опытных пользователей; хотя даже опытные пользователи могут испортить это довольно плохо, отсюда начальный шаг резервного копирования.)
Чтобы вспомнить проблему, жесткий диск, содержащий существующую установку Windows, помещается в новую систему, и Windows не устанавливает автоматически драйверы для оборудования и предлагает пользователю установить неподписанные драйверы, даже для драйверов, которые должны быть подписаны. Кроме того, пользователь не может принять диалог (и), потому что Windows не установила драйверы для клавиатуры или мыши (или других устройств ввода).
Вот версия tl; rd:
- Сделайте резервную копию реестра ульев.
- Отключите все программы, драйверы и службы, которые вы можете.
- Настройте вещи (например, панель задач), чтобы вы могли видеть все (не скрывайте никакой информации).
- Имейте автоматический запуск файла .BAT, чтобы иметь простой способ вносить изменения и выполнять онлайн (в ОС) задачи.
- Используйте приложение макросов / сценариев для автоматизации нажатий клавиш и нажатий кнопок, поскольку вы не можете сделать это самостоятельно.
- Убедитесь, что все системные файлы присутствуют.
- Вручную удалите проблемное и более не существующее оборудование.
:
Загрузитесь в (чистую) DOS или другую ОС и создайте резервную копию кустов реестра в другом месте. Это включает в себя
%systemroot%\System32\CONFIG\*
и%userprofile%\NTUSER.DAT
Убедитесь, что настройки диска / раздела в BOOT.INI и
SystemBootDevice
в [HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet00 * \ Control] установлены правильно, поскольку ваш системный диск теперь может находиться на другом диске / разделе, чем он был (в моем случае, (r) диск был 0, но теперь был 1 из-за нового диска).
:
Смонтируйте соответствующие кусты реестра и отключите все посторонние автозапускаемые программы, особенно все, что вызывает окна и все такое, что закрывает ваш взгляд, поскольку вы не сможете свернуть их или щелкнуть другие окна / диалоговые окна впереди (вы необходимо упростить для устранения проблемы, как эта). Вам не нужно удалять записи автозапуска, вы можете вместо этого отключить их, чтобы они оставались там, когда вы запускаете Windows и хотите снова запустить их автоматически (особенно для записей, которые имеют несколько команд аргументы):
Для
Run
ключей вы можете просто добавить#
персонажа или что-то в начале команды. Таким образом, Windows не сможет запустить его, так как это недопустимый файл, и будет игнорировать его.Смонтируйте куст SYSTEM и установите для этого
start
параметра значение отключено (dword: 4) для любых посторонних драйверов и служб (особенно тех, которые уже отсутствуют).Отключите PageDefrag и т. Д. В
BootExecute
in… \ Control \ Session Manager, добавив a#
в начало команды (но оставьте вautocheck
покое, так как вы захотите проверить / исправить накопители, если в итоге вам придется перезагрузиться с помощью кнопки сброса).Вместо удаления любых ярлыков в
Startup
папках, просто переместите их в другое место.
Установка Windows, установка драйверов, независимо от водителя-подписи путем установки программного обеспечения, и NTUSER ульи реестра и настройки
\Software\Microsoft\Driver Signing
и\Software\Microsoft\Non-Driver Signing
в BIN: 00.
:
- Вы захотите увидеть панель задач и область уведомлений, поэтому включите самый верхний и отключите автоматическое скрытие, установив NTUSER и отредактировав,
\Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2
чтобы установить 9-й байт так, чтобы бит 0 был выключен, а бит 1 был включен (0x7A покажет максимальную информацию ). Кроме того, отключите любые другие программы консолидации / манипуляции на панели задач, такие как TrayManager PCMag (возможно, вы получили его до того, как начали продавать свои утилиты).
- Вы захотите увидеть панель задач и область уведомлений, поэтому включите самый верхний и отключите автоматическое скрытие, установив NTUSER и отредактировав,
:
Смонтируйте улей ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ и добавьте запись автозапуска для запуска .BAT-файла при запуске (без причины я назвал мой
C:\t\j.BAT
). Теперь вы можете легко заставить Windows делать что-либо, не имея прямого ввода. Конечно, это требует перезагрузки другой ОС, изменения командного файла и повторной загрузки Windows, чтобы внести изменения, но это лучше, чем отсутствие каких-либо действий в Windows.;-)
(Вы можете закомментировать материал вместо того, чтобы просто удалить его.) Добавить команду в конце командного файла для перезагрузки Windows, напримерshutdown -t 10 -r
. Не забывайте об этом, иначе вам придется нажимать кнопку сброса!В вашем пакетном файле (например
j.bat
) выполните определенные действия, такие как импорт любых файлов .REG (которые вы можете редактировать в автономном режиме, в другой ОС, как вы можете это сделать с помощью своего пакетного файла). Попросите командный файл запустить диспетчер устройств и развернуть окно (с помощью такого инструмента, как Nircmd ), чтобы дать вам возможность просмотреть текущее состояние оборудования. (Попробуйте использовать инструмент командной строки, такой как QRes, чтобы установить максимальное разрешение, которое может сделать ваш видеодрайвер - который может быть универсальным адаптером VGA, например, 1024x768.) Вы также можете перерегистрировать файлы .DLL для исправления. некоторые проблемы, особенно связанные с Центром обновления Windows.Вы не хотите, чтобы командный файл выполнялся быстро и безумно, поэтому вам понадобится инструмент командной строки, который может приостанавливать выполнение заданного количества секунд, чтобы приостановить выполнение сценария - нет,
pause
команда не годится, поскольку для продолжения необходимо нажать клавишу. (Я использовал программу, которую написал несколько лет назад, но в Интернете их достаточно, или просто взломайте ).
:
- Получите приложение для записи макросов / создания сценариев, такое как HotkeyMaster, WinMacro, MacroMaker, AutoHotkey, AutoIt! и т. д. и сконфигурируйте его так, чтобы он выполнял любые действия клавиатуры или мыши, которые вам нужны (таким образом вы можете «делать» что-то в Windows, фактически не имея доступных устройств ввода). Вы захотите настроить его так, чтобы он определял определенные окна или диалоговые окна по названию и / или классу и / или элементу управления и соответственно выполнял определенные щелчки мыши или нажатия клавиш. Например, вы можете автоматически определить диалоговое окно подтверждения драйвера и нажать кнопку
Next
илиContinue
кнопок. (Убедитесь, что приложение макроса запускается при запуске, а не в файле .BAT, чтобы убедиться, что они запускаются к тому моменту, когда Windows обнаружит оборудование и начнет запрашивать драйверы; альтернативно, пусть они запускаются в начале командный файл с помощьюstart
команды, чтобы избежать блокирования командного файла, поскольку они не будут выходить.)
- Получите приложение для записи макросов / создания сценариев, такое как HotkeyMaster, WinMacro, MacroMaker, AutoHotkey, AutoIt! и т. д. и сконфигурируйте его так, чтобы он выполнял любые действия клавиатуры или мыши, которые вам нужны (таким образом вы можете «делать» что-то в Windows, фактически не имея доступных устройств ввода). Вы захотите настроить его так, чтобы он определял определенные окна или диалоговые окна по названию и / или классу и / или элементу управления и соответственно выполнял определенные щелчки мыши или нажатия клавиш. Например, вы можете автоматически определить диалоговое окно подтверждения драйвера и нажать кнопку
:
Убедитесь, что все необходимые системные файлы на месте. Запустить (через командный файл)
sfc /scannow
. Убедитесь, что ваш диск Windows находится в дисководе, при условии, что в Windows даже установлены драйверы CD / DVD. Вы также можете попробовать вручную скопировать все отсутствующие файлы в автономном режиме. Например, я скопировал все файлы из моей последней резервной копии XP, указав не перезаписывать существующие файлы. Таким образом, все отсутствующие файлы были восстановлены (особенно в следующих каталогах:- C: \ Windows
- C: \ Windows \ INF
- C: \ Windows \ Кэш драйверов
- C: \ Windows \ ServicePackFiles
- C: \ Windows \ System32
- C: \ Windows \ System32 \ Dllcache
C: \ Windows \ System32 \ Drivers
(Мне также довелось восстановить следующие каталоги, не связанные с установкой оборудования, незадолго до того, как они наконец снова заработали. Совпадение? Я не знаю.)
- C: \ Windows \ Assembly
- C: \ Windows \ Microsoft.NET
- C: \ Windows \ WinSxS
- C: \ Windows \ Help
C: \ Windows \ System32 \ WBEM
(Вы можете удалить или переименовать C: \ Windows \ System32 \ CatRoot *)
:
Удалите все файлы .PNF в C: \ Windows \ INF. Windows перестроит их из существующих файлов .INF в следующий раз, когда потребуется установить драйвер (который на данный момент все еще при каждой загрузке). Это похоже на очистку кэша браузера, когда страница отображается некорректно, чтобы обеспечить получение и использование самой последней копии файлов.
В крайнем случае, получите и используйте инструмент Microsoft
DEVCON
для удаления определенных устройств, чтобы Windows могла попробовать установить оборудование с нуля. Однако сначала вы захотите запустить команду (через ваш пакетный файл),DEVCON findall * > C:\t\devcon.log
чтобы вывести список всего вашего оборудования и его соответствующих идентификаторов. Таким образом, вы можете составить правильный и настраиваемый список того, какое оборудование вы хотите удалить. К устройствам, которые необходимо удалить, относятся следующие:- "* ACPI *"
- "USB \ ROOT_HUB *"
- "SERENUM \ MOUSE *"
- " VEN_8086 "
- "HID *"
- "* TUNMP *"
- "PCI \ VEN_1102 *"
- "PCI \ VEN_1033 *"
- "PCI \ VEN_1011 *"
- "PCI \ VEN_1186 *"
- "PCI \ VEN_11AB *"
- "PCI \ VEN_1274 *"
"PCI \ VEN_5333 *"
(Это основные устройства, связанные с материнской платой, такие как процессоры, порты, шины, устройства ввода, сетевые карты, жесткие диски и оптические приводы.)
Как вы можете видеть, это (не удивительно) а огромная боль, чтобы получить Windows, работает снова, если вы шлепнуть системный диск в новую систему (читай материнскую плату) и хотите, чтобы избежать необходимости переустановить. Отсутствие метода ввода делает это очень трудным, но не невозможным . Это занимает много времени, усилий, терпения, инструменты, внимание к деталям, и осторожность, но это возможно, и награды (откладывая полную переустановку и тем самым теряя кто знает, сколько тысяч настроек сделано в течение долгого времени ) может стоить того.
К счастью, мне наконец удалось заставить это работать, потому что я не готов просто установить и переустановить. Теперь я могу не только снова использовать Outlook Express (а также загружать и очищать около 5000 писем, скопившихся в моих учетных записях), но я снова могу заняться программированием в своей установленной копии старого доброго VS2003. (Не то чтобы я не привык к Windows 7; на самом деле, какое-то время я чувствовал себя странно в XP, но я снова чувствую себя как дома, как будто я переезжаю в общежитие на год, а потом возвращаюсь в свой дом. спальня дома.)