Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для J7BXA

Старожил


Сообщения: 447
Благодарности: 9

Профиль | Отправить PM | Цитировать


Здравствуйте!
После очередной перезагрузки и манипуляцией с драйверами перестала грузится ОС.
Буквально следующее пишет она при загрузке:
"Не удается запустить Windows из-за испорченного или отсутствующего файла: <Windows root>\system32\hal.dll . Установите заново копию указанного выше файла".

Поражает то, что это не впервой на этой системе.
В первый раз я не придал большого значения этому и занялся установкой ОС по новой.
Но когда это повторилось, то тут я уже намерен выяснить причину тому.

Загуглив данную проблему я наткнулся на один из вариантов профилактики данного вопроса:


Цитата:
Если машина просто перестала загружаться во всех режимах, то предотвратить подобное можно, опробовав другие ядра, подредактировав boot.ini. Нужно всего лишь продублировать рабочий пункт меню выбора ОС, например, multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /fastdetect и приписать после /fastdetect следующие опции: /kernel=ntoskchk.exe /hal=halchk.dll, а также в директории WINDOWS\System32 сделать копии вашего ядра и HAL-а. Назвать их, конечно же, надо ntoskrnl.exe -> ntoskchk.exe и hal.dll -> halchk.dll.
Если система не даёт его установить, то в этом случае придётся делать это вручную. Для начала найдите в windows\inf файл под названием hal.inf. После этого, изучите его, что бы выяснить, какие файлы и куда переписываются при смене ядра. Обычно перезаписывается только hal.dll, названия какого hal какому ядру соответствуют, можно узнать из списка:
Standard PC - hal.dll
Advanced Configuration and Power Interface (ACPI) PC -halacpi.dll
ACPI Uniprocessor PC - halaacpi.dll
ACPI Multiprocessor PC -halmacpi.dll
Compaq SystemPro Multiprocessor or 100% Compatible - halsp.dll
MPS Uniprocessor PC -halapic.dll
MPS Multiprocessor PC -halmps.dll

После этого остаётся "выдрать" соответствующий файл из Windows\Driver Cache\i386\driver.cab, скопировать его в Windows\system32, и сослаться на него в boot.ini. После загрузки (если повезёт :P ), можно переставить его по нормальному, в списке это ядро появится.
Кто может более подробно рассказать о этот методе и как он работает?
Сначала будет грузится ОС в обычном режиме, а если с ней будут какие-то проблемы, то попробует загрузить уже с дополнительными параметрами, а точнее, используя копии файлов (в данном случае это ntoskchk.exe и halchk.dll) и если с проблема из-за них, ОС загрузится?
Или ОС проверит родные файлы ОС с копией и в случае разницы заменит их?

Следовательно мой boot.ini должен выглядить следующим образом:

Код: Выделить весь код
 [boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /execute /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /execute /fastdetect /kernel=ntoskchk.exe /hal=halchk.dll
Но не будет ли ОС каждый раз спрашивать у меня какую ОС я хочу загрузить?


P.S. Заранее благодарен!

-------
Я не Мастер, я только учусь...
Suum Cuique


Последний раз редактировалось J7BXA, 17-09-2010 в 13:34.


Отправлено: 20:04, 16-09-2010 | #204