Ошибка hal dll windows 10

Вы когда-нибудь наблюдали при загрузке компьютера надпись, которая бы говорила о том, что файл hal.dll отсутствует или поврежден? Если — «да» и Вы хотите научиться самостоятельно устранять данную проблему, то эта статья поможет Вам в этом.

Для наглядности, отсутствующий файл hal.dll мы организуем себе сами. Я зайду по пути C:\Windows\system32 (туда, где он и располагается) и просто удалю его из системной директории. Перезагрузимся.

После этого система сообщит нам, что файл hal.dll отсутствует или поврежден. Замечательно! :) Вот как выглядит подобная надпись:

Естественно, после этого — система на запускается, поскольку ее загрузка повреждена, и повторный рестарт ничего не дает.

Процедура «лечения» состоит в том, что поврежденный или отсутствующий файл hal.dll достаточно легко возвращается на свое место с помощью консоли восстановления Windows. И ниже мы подробно разберем этот момент.

Но пока давайте напомним себе, что же такое этот файл «hal» и что такое «dll»?

Что такое HAL ?

HAL — Hardware Abstraction Layer — уровень (слой) аппаратных абстракций. Это — слой программного кода, который скрывает (абстрагирует) нюансы аппаратной реализации компонентов компьютера (его «железа») от верхних уровней операционной системы и прикладных программ, запускаемых ее пользователем.

Это — своеобразное промежуточное звено между программным обеспечением и аппаратурой. Оно, к примеру, позволяет разработчику программы обращаться к различным функциям устройства, не зная его марку, модель и нюансы работы.

Операционные системы, в которых качественно реализован уровень аппаратных абстракций, могут быть легко перенесены (портированы) на различное оборудование (банкоматы, планшеты, телефоны и т.д.) Слой HAL как бы виртуализирует все аппаратное оборудование платформы, поэтому драйверы устройств также могут быть перенесены с минимальными изменениями.

Давайте обозначим место уровня аппаратных абстракций в иерархии взаимодействия программ и компьютерных комплектующих. Рассмотрим на примере видеокарты и программы, которая ее использует (например — компьютерная игра).

Игра не «знает» всех возможностей и функций дискретной видеокарты, поэтому она просто передает запросы на выполнение того или иного действия на уровень ниже (до слоя HAL), который работает с драйвером устройства. А вот драйвер уже точно «знает», на что способен наш графический ускоритель и как именно он работает.

Примечание: «Direct3D» — компонент интерфейса программирования приложений, работающих с графикой.

Теперь давайте порассуждаем о том, что же такое есть вторая часть нашего файла — компонент «DLL».

Что такое DLL ?

Аббревиатура переводится так — DLL (dynamic link library — динамически подключаемая библиотека). Это — автономный блок исполняемого кода программы, который подключается к ней по мере необходимости. Причем одна и та же dll, уже загруженная в оперативную память, может быть многократно использована различными программными приложениями, не создавая ее дополнительные копии и экономя ресурсы компьютера.

Динамически подключаемые библиотеки — очень удобное решение, которое позволило программистам (наконец-то :) ) каждый раз заново не «изобретать велосипед». Теперь можно однажды написанный участок исполняемого кода поместить в dll и многократно использовать ее в своих будущих проектах. Со временем можно, к примеру, просто обновить версии библиотек, добавив, таким образом, необходимый функционал в программу.

Давайте рассмотрим изложенное выше не примере: запустим текстовый редактор (например — Microsoft Word или Open Office) и посмотрим сколько времени уйдет на его загрузку? Теперь — полностью закроем его. И — снова запустим. Во второй раз он откроется очень быстро. Почему это происходит? Потому что после закрытия приложения его динамические библиотеки (dll-ки) не выгружаются из оперативной памяти (это происходит только при ее крайней нехватке), а кешируются в ней. Отсюда — быстрый повторный запуск редактора.

С «философской» точки зрения, разница между dll и exe файлом — не большая. Просто первый не может быть запущен автономно. Динамические библиотеки, включаясь в работу по мере необходимости, предоставляют приложению дополнительную функциональность, которую запрашивает пользователь.

Можно создать программу (тот же MS Word) и без использования библиотек (в виде одного исполняемого «exe» файла). Чем это может нам повредить? Просто тогда он будет загружаться очень долго. Ведь это не просто редактор текста, а — многомодульная структура, в которую входит построитель диаграмм, редактор формул, модуль проверки орфографии, инструмент работы с графикой и т.д.

Эти замечательные возможности не нужны пользователю все и сразу (загруженные в память одним исполняемым файлом), они подключаются по мере необходимости, в виде dll библиотек. Таким образом общая скорость загрузки программы резко сокращается.

Чтобы закончить с данной темой, хочу сказать следующее: динамические библиотеки это не обязательно только те файлы, которые имеют расширение «dll». К примеру, апплеты панели управления (с «родным» расширением cpl) также являются специализированными dll библиотеками.

HAL.dll отсутствует или поврежден

С необходимой теорией закончили, возвращаемся к практике! Теперь мы понимаем, когда данный файл отсутствует это — не есть хорошо. Мало того, операционная система просто не запустится и выдаст нам нехорошую надпись следующего содержания: «не удается запустить windows из за испорченного или отсутствующего файла hal.dll».

Нам нужно с помощью консоли восстановления исправить ситуация. Саму работу с консолью я описывать не буду (мы разбирали ее в предыдущей статье), но покажем весь процесс с самого начала.

Берем установочный диск с Windows XP (или 2000), выставляем в BIOS с него загрузку и перегружаемся. Внимательно понаблюдав за начальным процессом инициализации, мы можем увидеть вот такую интересную надпись внизу окна:

Как видите, операционная система загружает HAL еще до начала своей установки.

Но не отвлекаемся, а — продвигаемся! :) Входим в консоль восстановления, нажав клавишу «R» в соответствующем окне установщика.

Поскольку файл hal.dll отсутствует или поврежден, то нам необходимо заменить его такой же, но исправной копией.

Где его взять? Один из способов — зайти на очень полезный сайт: dll точка ru. Там буквально по алфавиту отсортированы различные динамические библиотеки, которые нам могут понадобиться для восстановления системы. Можно прямо оттуда загрузить любую и подставить вместо отсутствующей или поврежденной.

Но мы ведь — идейные администраторы! Мы таким легким способом пользоваться не станем, а «честно» восстановим Windows, получив дополнительный опыт и подтвердив свое право называться таковыми :)

Нам надо рассуждать примерно так: поскольку с установочного диска производилась инсталляция всех компонентов операционной системы, то, скорее всего, и отсутствующий файл hal.dll там же и находится. И его прямо оттуда можно скопировать.

Проверим это предположение. Перейдем в консоли восстановления на наш DVD-Rom оптический привод в директорию установки Windows (I386) и выполним команду обзора ее содержимого — «dir».

Примечание: у меня диск имеет букву «D», у Вас — может быть по другому. Также можете ввести команду в формате «dir /p» (без кавычек). Это позволит «пролистывать» содержимое директории по одному экрану за одно нажатие любой клавиши.

В ее недрах находим то, что нам нужно:

Как видим, название файла имеет вид: HAL.DL_ (не DLL). Почему? Это — запакованный cab-архив (Windows Cabinet File), подобный тип архивов часто используется для установки на жесткий диск компьютера компонентов самой ОС от Microsoft и набора драйверов к ней.

Для его распаковки мы с успехом можем использовать команду «expand», которая применяется самой ОС.

Примечание: для того, чтобы увидеть все возможности по использованию той или иной консольной команды, наберите ее, поставьте пробел, затем — правый слеш и знак вопроса.

На скриншоты выше Вы можете видеть все доступные параметры (ключи) с которыми может запускаться данная команда.

Распаковать и скопировать по нужному пути наш файл hal.dll мы можем теперь буквально в одну командную строчку: expand d:\i386\hal.dl_ c:\windows\system32 Естественно, вместо «d» подставляете букву диска своего оптического привода.

Рассмотрим сам формат набора. Распаковать (expand) откуда — диск «d» папка «i386» — файл «hal.dl_» — куда: диск «c», папка «windows» и в ней — «system32» (именно туда, где и должен находиться данный файл).

Проверим результат наших трудов. Зайдем по пути: C:\Windows\system32 и, применив команду «dir /p», поищем скопированный нами файл hal.dll

Как видите, он — на своем месте. Теперь — перезагрузимся и посмотрим на общий результат.

Как видите — операционная система успешно загружается. Наша миссия — выполнена!

Теперь — пару слов о том, по какой причине, собственно может быть поврежден или вообще отсутствовать данный системный файл? Тут есть несколько причин:

  1. компьютерный вирус
  2. сбойные сектора на жестком диске
  3. неудачное изменение конфигурации оборудования

Итак, друзья, мы успешно решили проблему, когда hal.dll отсутствует или поврежден и теперь можем по праву собой гордиться! Мы — сами себе админы ! :)

Понравилась статья? Поделиться с друзьями:
ErrorWin
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: