ДОСТУП к СЕКРЕТАМ
системного
администрирования !
Что именно я получу ?
Количество подписчиков: 6622
ОТЗЫВЫ ПОДПИСЧИКОВ
Последние материалы !
Делаем печатные платы дома
Наложить музыку на видео
Телескоп системы Добсона
Новое занятие для души !
Ремонт камеры наблюдения
Не рабочий ADSL модем

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 отсутствует или поврежден и теперь можем по праву собой гордиться! Мы - сами себе админы ! :)



Понравилась статья? Нажмите на кнопки ниже или
оставьте свой комментарий внизу страницы !
 

Владимир
Здравствуйте, у меня большая проблема hal.dill, мне нужна ваша помощь, помогите мне пожалуйста. И можно с вами связаться для более быстрого общения, а не через сайт?!

[Ответить]
Кахович Андрей
Одна из самых подробных статей по данной теме - выше   !;) А в чем проблема?

[Ответить]
Игорь
До этого была xp. После такой ерунды, думаю установить 7. Возможно ли это?

[Ответить]
Кахович Андрей
А в чем проблема установить Windows 7 или я не понял вопрос?

[Ответить]
Матвей
Подскажите пожалуйста, все делал как по инструкции вводил всё верно, но у меня не диск установочный, а загрузачная флешка(через программу Wintoflash) в консоли постоянно пишет после введения команды синтаксическая ошибка...я сто раз проверял текст, и никаких результатов, до этого была XP всё работало..Напишите, что вы думаете об этом..

[Ответить]
Кахович Андрей
Ну, во первых: я не знаю, где на флешке находятся файлы, которые нужно скопировать (может не там, где на диске)? Во вторых: не вижу, что и на каком этапе Вы вводите, как же я могу помочь?

[Ответить]
Mixaylo
не могу заити в d:\i386

[Ответить]
Кахович Андрей
Может у Вас диск «D» и не Д совсем, а другой буквой обозначается? Какой командой делаете переход? Что пишет в ответ?

[Ответить]
Валерий
Спасибо. Талант не зароешь!
Творите дальше!

[Ответить]
Кахович Андрей
Спасибо на добром слове, Валерий!

[Ответить]
Игорь
Оччень большое спасибо! за подробное,пошаговое и доходчивое разъяснение.простым юзерам сложно найти "грамоту" по ПК.сам учился и учусь работать с ПК методом тыка,уже 13 лет  :)

[Ответить]
John
Вам 13 лет или с компьютером работаете "методом тыка" 13 лет? В любом случае будем рады видеть вас на нашем форуме. Поделитесь продвинутыми методиками научного тыка. Но, вообще-то, если 13(!) лет работаете с компьютерами и продолжаете пользоваться "методом тыка", то это грустно. Теорию можно было бы и подучить.

[Ответить]
Денис
Здравствуйте! У меня стоит Виндовс 7 домашняя базовая. В последнее время стал вылезать синий экран смерти с ошибкой 0х00000124, через программу Эрорка посмотрел, что это за ошибка, пишет что это аппаратная ошибка при работе на виндовс виста, а у меня семерка, как такое возможно. Через прогу Блю скрин посмотрел в чем беда, показывает:hal.dll+12a3b и ntoskrnl.exe+18dc33 Что это такое и как с ним бороться?!

[Ответить]
Николай
У меня точно такая же ошибка!

Вы случайно не нашли решение кроме переустановки винды?

[Ответить]
Кахович Андрей
Та версия программы про Win7 может ничего и не знать (ничего необычного, в принципе). Если не принципиально - переустановите ОС. Если проблема останется, тогда - тестирование "железа" (каждого из основных компонентов в отдельности).

[Ответить]
Игорь
Добрый день! Делал так, как описано, но при dir /p пишет, что не может найти такой, хотя с Live-CD я его вижу в папке c:\windows\system32. Получилось всё после удаления висты и форматирования диска. Хотел переустановить висту, но диск с вистой ноут не видит в DOS

[Ответить]
Кахович Андрей
Так dir /p - это просто команда для вывода на экран содержимого каталога (dir), а ключ p - показывает информацию постранично (по одному экрану за раз), можно набирать и без него.

[Ответить]
Геша
может поможете?
У меня дело осложнено тем , что windows запускается из-под Linux. Как в этом случае восстановить hal.dll?

[Ответить]
Кахович Андрей
Это как?!  :ups: Думаю, лучше сразу - на наш форум (там гораздо удобнее общаться).

[Ответить]
Леонид
Спасибо!

[Ответить]
Кахович Андрей
На здоровье. Заходите еще!

[Ответить]

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

Оставить комментарий

Ваше имя:

Комментарий:
Введите символы: *
captcha
Обновить


Поиск по сайту

ФОРУМ нашего сайта !

Ресурсы по теме !