Канал на Youtube


Бесплатная техподдержка !

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


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

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

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

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

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

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

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

Что такое HAL ?

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

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

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

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

Зачем нужен HAL.dll

  Игра не "знает" всех возможностей и функций дискретной видеокарты, поэтому она просто передает запросы на выполнение того или иного действия на уровень ниже (до слоя 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.dll

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

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

Консоль восстановления Windows XP

  Поскольку файл 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» подставляете букву диска своего оптического привода.

Восстановление файла HAL.dll

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

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

Файл HAL.dll скопирован на диск
 

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

Загрузка Windows восстановлена
 

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

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

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

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




Настя
Нечего не помогает  :(

Кахович Андрей
А что Вы делаете? На какой результат рассчитываете?

Сергей
При попытке установить XP на старый жёсткий диск появляется также такое сообщение — это отчего? На самом этом жёстком диске и системы нет (она удалена с помощью другой, 7-ки, с другого диска).

Кахович Андрей
Старые жесткие диски перед использованием обычно нужно проверять. Предварительная проверка может производиться вот таким образом.

Виталий
Если это происходит во времяустановки хр - Нужно переключится на загрузку с диска, после чего пойдет установка дальше

Кахович Андрей
В статье имелось в виду именно повреждение файла hal.dll

Антон
Очень хорошая статья. Удалось исправить немного по другому после windows> пишем chkdsk /p после проверки exit и после перегрузки все работает.

Кахович Андрей
Спасибо за отзыв! Главное, что работает!   !;)

Александр
Добрый день! Воспользовался вашим советом и заменил файл с загрузочного диска. Без результатов... Пробовал заменить файл через Live Cd, тоже без результатно... Файл hall.dll отсутствует или поврежден. В чем может быть проблема?

Кахович Андрей
Если проблема только в самом файле, то его замена помогает. Если же повреждение данного файла произошло по причине какой-то другой неисправности, то его восстановление, конечно, ничего не изменит. Проблема может быть как программного, так и аппаратного характера. Например: с тем же жестким диском.

Валерий
Помощь нужна...
Был винчестер с ХР. После шаловливых ручек перестала загружаться - отсутствует hal.dll. Попробовал переписать файл с другого компа - не прокатило. Установил другую ХР и переписал файл с нее - не прокатило. Нашел этот сайт, нашел дистрибутив с которого открывается ремонт через "R", прошел все согласно рекомедаций - получилось, только, пришлось записать его через команду "copy". Заменил старый файл, но система так и не грузится. Что посоветуете?

Кахович Андрей
Это смотря что там "шаловливые ручки" наделали?   !;) Могли и винчестер уронить, правда? Тогда это уже другая история. На каком этапе после "ремонта" происходит сбой? Что конкретно значит загадочная фраза: "так и не грузится"?

Андрей
у меня такая ситуация у меня всё запускается но при запуске опред. приложений и эксплуатирование этого приложения появляется синий экран с ошибкой 124 я скачал блюскрин посмотрел во всех ошибках а все они 124-тые фигурирует этот файл а вы рассказываете про ситуацию когда виндовс НЕ запускается так вот что мне делать ?

Кахович Андрей
Если не хотите переустанавливать систему (иногда это быстрее и проще, чем восстанавливать ее работоспособность), то попробуйте заменить этот файл (предварительно сохранив его копию). Если он таки поврежден, то это должно помочь. С другой стороны, убедитесь, что нет аппаратных проблем: например, с жестким диском.

Тарас
В мене пошкоджений файл hal.dll ,на 10 віндовсі що порекомендуєте?

Кахович Андрей
От чесно, із 10-ю намагаюсь мати справ якомога менше і рідше!  :) Тому точний алгоритм дій не підкажу, але, згідно логіки, він мав би бути аналогічним тому, що описаний вище.

Ирина
Пишет, что
не может создать файл hal.dll
0 файлов распаковано

Кахович Андрей
Возможно, где-то в команде допустили ошибку? Как вариант, можете скачать нужный файл из Интернета и подставить вместо поврежденного.

Ирина
Спасибо, Андрей!
Для скачивания файла с интернета пришлось перенести жесткий диск на другой комп.
Вернув,на старый комп. С новым Hal.dll дальше заставки загрузка не пошла. Пришлось "долго плясать с бубном" в результате загрузилось

UserGate
Можно подробнее про "танцы с бубном"?

Кахович Андрей
Пожалуйста, Ирина. Главное что, в итоге, - получилось! Вы - молодец  =)

igor
в мене подібна ситуація:

пошкоджений файл hal.dll
Встановив консоль відновлення, вставив рідний диск з віндовс ХР (збірка SAMLAB)
після введення описаної команди вибиває "не возможно создать файл hal.dll"
В чому причина?

Кахович Андрей
Можливо, щось не уважно набрали в команді: зайвий пробіл чи його відсутність і таке інше? Зрештою, можете завантажити цей файл з Інтернету і підставити замість пошкодженого!


Страницы: [1] | [2] | [3] | [4] | [5] | [6] [Следующая] | [Последняя]


Бесплатные авторские уроки !