Восстановление hal dll windows xp. Быстрое решение ошибки “Не удается запустить Windows из-за испорченного или отсутствующего файла \WINDOWS\SYSTEM32\config\system” в Windows XP

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

Для наглядности, файл hal.dll будет удален вручную. А дальше, по шагам будем восстанавливать нормальную работу системы. После такого легкого вандализма над ОС, когда компьютер будет перезагружен, мы увидим такое сообщение на экране. Из-за повреждения, или отсутствия ключевых файлов загрузки, система не сможет выполнить запуск. Исправить эту ситуацию можно заменив поврежденный файл, или вернуть его на нужное место. Далее мы подробно рассмотрим весь процесс возращения к жизни операционной системы Windows. Но с начала, давайте же разберемся, для чего предназначен hall.dll?

Зачем нужен hall.dll?

Саму аббревиатуру HAL можно расшифровать как Hardware Abstraction Layer. Если перевести на русский, то это будет звучать как «Слой аппаратных абстракций». Подобный слой абстрагирования, располагается между физической аппаратною частью компьютера и его программным обеспечением. Звучит жутковато, но все не так сложно, как кажется. Такая прослойка, промежуточное звено, значительно упрощает «общение» между программами и «железом». Например, при разработке программ можно не учитывать многих особенностей и функций физической части ПК, ведь такой посредник как HAL это все преобразует в нужный формат.

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

В данном примере показан случай, когда некое приложение (пускай это будет игра) взаимодействует с видеокартой. Ведь игра не может учитывать всех особенностей абсолютно всех видеоадаптеров. Но любая подобная программа должна адекватно работать на разных компьютерах, с разными картами. Тут и приходит на помощь HAL, который выполняя роль посредника взаимодействует, через драйвер, с устройством. Надо отметить, что Direct3D, который тут тоже принимает участие, является компонентом, помогающим работать приложениям с графикой. Думаю, немножко уже разобрались, что такое HAL. А теперь нужно разобраться, что значит расширение DLL?

Для чего предназначено DLL?

Расшифровать DLL можно как Dynamic Link Library, по-русски это будет звучать «библиотека динамической компоновки» или «динамически подключаемая библиотека». Подобные библиотеки время от времени используют любые программы, если возникает такая потребность. Но этот элемент не приписывается к одному определенному приложению. Любая программа может его использовать, даже когда он загружен в оперативную память уже другой программой. Что тоже позволяет экономить оперативную память и другие важные ресурсы. Библиотеки подобного рода очень помогают, при создании новых приложений. Ведь часть ранее написанного кода не нужно переписывать заново. Его просто помещают в библиотеку и в дальнейшем используют, по мере необходимости.

Проведем такой маленький эксперимент. Запустите любое приложение, например, браузер, или текстовый редактор. После этого закройте его и запустите снова. Чувствуете разницу? Второй раз программа запустилась быстрее. А все благодаря библиотекам, которые она использует. После закрытия программы динамические библиотеки продолжают оставаться в оперативной памяти, в виде кеша. Второй раз их уже не надо загружать, поэтому и приложение быстрее запускается.

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

А ведь не все модули программы могут еще и быть необходимы пользователю. Поэтому dll и выручают нас в таких ситуациях. Запускается только то, что нужно, тем самым рационализируя и экономя затраты времени и энергии на работу программы. Библиотеки динамической компоновки могут иметь и совсем другое расширение. Например, к такому типу можно отнести элементы, которые находятся в панели управления (расширение cpl). На этом краткий обзор теории стоит закончить и перейти непосредственно к решению проблемы с файлом HAL.dll

Что делать, когда файл hal dll отсутствует или поврежден?

Давайте рассмотрим по ближе случай с ошибкой отсутствия, или повреждения файла HAL.dll, которая уже упоминалась выше. При любых неполадках, связанных с этим фалом, невозможно выполнить запуск операционной системы. Но восстановить данный элемент все же возможно, каким бы жутким не казался черный экран с сообщением об ошибке. Для этого нам потребуется консоль восстановления.

Чтобы воспользоваться консолью, возьмем установочный диск с Windows XP. Выполняем с него загрузку, выставив необходимые настройки в БИОС (как при установке ОС).

А теперь обратите внимание на полосу, где проходит инициализация в момент загрузки.

Также обратили внимание, что компонент HAL загружается даже до начала установки Windows. Впрочем, это просто интересное наблюдение, которое очередной раз доказывает важность этого элемента. Дальше нужно открыть консоль восстановления, нажав на букву «R», на своей клавиатуре. Когда появится следующее окно.

Теперь нужно произвести замену поврежденного, или отсутствующего hal.dll, на его полностью исправную копию.

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

Что мы делаем в подобной ситуации? Правильно, находим hal.dll на установочном диске операционной системы и копируем его в нужную папку уже на компьютере. Зайдя в консоль восстановления, нужно перейти в каталог установочного диска. Для этого введите в консоль следующую команду (в данном случае директория установки Windows (I386).

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

Ищем наш утерянный файлик.

Вот мы его кажется и нашли. Но обратите внимание на странное расширение DL_ (вместо DLL). Не стоит пугаться, это нужный нам файл, просто он находится в cab архиве. В таких архивах часто хранятся различные компоненты Windows, перед установкой на компьютер. Но нам все равно потребуется распаковать его. Для этих целей используем команду «expand» .

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

Система покажет краткую справку по данной команде, с различными параметрами для нее. А пока, продолжим приводить Windows в порядок. Файл hal.dll мы уже нашли, и он находится в архиве. Теперь осталось только его распаковать и скопировать в нужную папку. Сделать это можно буквально одновременно, написав такую команду:

expand d:\i386\hal.dl_ c:\windows\system32

Не забываем, что буква диска в Вашем случае может быть другой.

Давайте расшифруем эту команду:

  • expand - команда распаковки;
  • d - диск, имя привода;
  • i386 - папка;
  • hal.dl_ — архив с файлом библиотеки

вторая часть команды показывает куда производится распаковка:

  • c:\ - логический диск на винчестере;
  • windows и system32 - системные папки, вторая является конечным пунктом, где будет храниться наш файл.

После того, как команда была выполнена, можно проверить что hall.dll находится на своем месте. Переходим в C:\Windows\system32, дальше выполняем команду «dir /p». На экране будет показано содержимое каталога, ищем наш файл.

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

Но почему происходит такое, когда hal dll отсутствует или , не может же все это происходить таким чудесным образом? Можно отметить следующие причины:

  • вредоносная программа, или вирус;
  • проблемы с винчестером, наличие на нем битых секторов;
  • сбой после замены, или установки оборудования.

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

Что сказать, многие пользователи компьютерных систем настолько привыкли к работе в среде Windows XP, что ни за что не хотят менять ее на более свежие системы. Однако сама «экспишка», равно как и последующие версии ОС Windows, подвержена появлению ошибок типа: «Не удается запустить HAL.dll», «Файл не найден», «Файл поврежден или отсутствует» и т. д. Давайте посмотрим, что можно сделать для восстановления загрузки системы без кардинальных мер типа полной переустановки.

Что это за файл?

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

В общих чертах: в Windows XP HAL.dll отвечает за взаимодействие программных и «железных» компонентов и представляет собой так называемый слой программного кода на уровне аппаратных абстракций, то есть, скрывает некоторые моменты аппаратной реализации на всех уровнях - от «железа» до прикладных программ. Это касается всех присутствующих в системе компонентов.

Так почему же возникают непонятные многим ошибки при загрузке системы, когда на экране монитора появляется надпись «HAL.dll отсутствует или поврежден»? Windows XP, как одна из устаревающих систем, подвержена таким сбоям более всего.

Основные функции библиотеки

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

В целом же это универсальный мост, который позволяет программе работать на любом оборудовании в универсальном режиме. Чтобы было понятнее: в чем-то функционал библиотеки HAL.dll по принципу работы можно сравнить с тем же DirectX.

Почему возникает ошибка «HAL.dll отсутствует или поврежден» (Windows XP)?

Вообще причин для появления таких ошибок может быть очень много. Самыми банальными ситуациями являются повреждения винчестера или планок оперативной памяти. В этом случае нужно просто провести их диагностику.

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

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

Восстановление системы

Первой рассмотрим ситуацию, когда систему загрузить все-таки можно. Естественно, в начале загрузки системы на может появиться строка, сообщающая о том, что компонент Windows root\System32\HAL.dll не найден (отсутствует или поврежден).

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

После появления командной строки нужно просто прописать в ней сочетание c:\windows\system32\restore\rstrui.exe (восстановление системы), а дальше просто следовать инструкциям на экране. Во многих случаях это помогает. Но что делать, если сообщение со строкой отсутствия загрузочного элемента Windows root\System32\HAL.dll l появляется снова и система не грузится вообще?

Исправление неправильных записей в файле boot.ini

Немногие пользователи знают, что не всегда ошибка загрузки связана именно с рассматриваемой библиотекой. Иногда это только следствие, а причина кроется в некорректных (неправильных) записях в файле boot.ini, указывающих на раздел тома, где находится операционная система. Можно, конечно, использовать некоторые программы для Windows XP (мы их перечислим несколько позже), но сейчас посмотрим, что можно сделать самому без их помощи.

Итак, для начала загружаемся с любого инсталляционного диска Windows XP, предварительно выставив CD/DVD-ROM в качестве приоритетного устройства загрузки в BIOS, после чего нажатием клавиши «R» переходим к консоли восстановления.

Теперь выбираем необходимую сборку Windows XP, если нужно, вводим пароль админа, а затем используем команду bootcfg/rebuild и нажимаем «Ввод». После обнаружения копии Windows и поступившего запроса добавляем ее в список загрузки (нажимаем «Y» и вводим идентификатор в виде модификации Windows XP (Home Edition или Professional), в общем, то, что установлено на компьютере).

После этого перегружаемся и выбираем вариант загрузки с новым источником. Только после этого можно будет найти в системе файл boot.ini, открыть его при помощи обычного «Блокнота» и удалить неправильный путь загрузки.

Ошибка HAL.dll: устранение последствий при помощи консоли

Вышеприведенные варианты восстановления срабатывают не всегда. Причина действительно может состоять именно в повреждении или отсутствии искомого файла, который по умолчанию расположен на системном диске (чаще всего это диск «C») по адресу Windows\System32\HAL.dll.

Тут нам снова понадобятся инсталляционный диск и вход в как это было описано выше. Теперь наша задача сводится к тому, чтобы найти на диске оригинальный файл и скопировать его в системный раздел винчестера. Оговоримся сразу: такие действия применимы исключительно к системе Windows XP, с «семеркой» и «восьмеркой» такие вещи не проходят.

Допустим, дисковод у нас обозначен литерой «E». Сам файл на диске находится в папке i386. Чтобы убедиться, что он действительно есть, используем команду E:\I386>dir. Нашли? Прекрасно! Но почему же тогда название файла не соответствует оригиналу, а обозначено как HAL.dl_? Только потому, что это запакованный архив CAB, который нам и нужно распаковать.

Для этого используем команду expand e:i386hal.dl_ c:\windows\system32 (с пробелом перед литерой диска «C»). Можно, конечно, распаковать файл и просто на системный диск, а затем скопировать его в нужное место. Но зачем, если можно произвести копирование и замену напрямую? После этого система должна загрузиться в обычном режиме без всяких проблем.

Лучшие программы для исправления ситуации

Впрочем, если такие способы исправления ошибки «HAL.dll отсутствует или поврежден» (Windows XP) некоторым пользователям могут показаться слишком заумными, можно использовать множество специализированных приложений типа Acronis Disk Director, Acronis Recovery Expert, Bootice и другие.

Такие программы для Windows XP, в принципе, особо между собой не отличаются, поскольку загружать их нужно непосредственно с оптического носителя или флэшки, а в работе они используют сходные методы. Другое дело, что пользователю не придется вводить специфичные команды, поскольку в них меню полностью конкретизировано, а в основе своей они рассчитаны на восстановление утерянных или поврежденных данных или даже целых логических разделов жесткого диска.

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

Может случиться и такое, что при повторной установке Windows возникнут такие ошибки, что и инсталляция до конца доведена не будет, а в итоге пользователь получит совершенно неработоспособную систему.

Заключение

Конечно, использование программ восстановления информации - это хорошо. Но все равно твердой уверенности в том, что необходимый файл динамической библиотеки будет полностью восстановлен, никто гарантии дать не может. Поэтому, несмотря на кажущуюся простоту работы с такими приложениями и их практически полную автоматизацию, лучше не полениться и воспользоваться стандартными методами восстановления загрузки системы. Пусть они сложнее или занимают больше времени, зато в таком случае можно быть на все сто быть уверенным, что работоспособность Windows XP будет восстановлена целиком и полностью.

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

Если вдруг ваша Windows XP перестала запускаться и выдает на экран что-то вроде:"Windows could not start because the following file is missing or corrupt: C:\Windows\System32\hal.dll" значит файл hal.dll был испорчен или удален.

Пошаговая инструкция:

Для , вам необходимо выполнить следующие действия:

  1. Конечно же убедиться, что при старте Windows XP вы видите на экране одну из следующих ошибок:

    * Windows could not start because the following file is missing or corrupt:
    C:\Windows\System32\hal.dll
    * C:\Windows\System32\hal.dll missing or corrupt:
    Please re-install a copy of the above file.
    * Windows could not start because of a computer disk hardware configuration problem.
    Could not read from the selected boot disk. Check boot path and disk hardware.
    Please check the Windows documentation about hardware disk configuration and your hardware reference manuals for additional information.
    Эти ошибки значат, что система не может запуститься из-за повреждения или удаления файла hal.dll. Также возможно, что в конфигурацию были внесены какие-либо изменения и Windows ищет этот файл в другом месте.

  2. Отыщите у себя на полке, среди кучи дисков, загрузочный диск с Windows XP и загрузитесь с него.
  3. Когда увидите на экране приглашение к установке Windows, нажмите на клавишу R.
  4. Далее пункт восстановления Windows (как правило, это первый пункт среди появившихся на экране).
  5. После запроса пароля администратора, введите его.
  6. Появится командная строка, в которой вы и должны, поочередно, выполнить все нижеприведенные команды: ATTRIB -H -R -S C:\BOOT.INI затем: DEL C:\BOOT.INI затем: BOOTCFG /REBUILD FIXBOOT
  7. Выньте диск с Windows из дисковода и перезагрузите компьютер.

Если после этих действий, на экране появляется все та же ошибка, попробуйте повторить действия 1-5 и, в командной строке, выполнить восстановление hal.dll с загрузочного диска Windows XP. Для этого выполните команду: EXPAND F:\I386\HAL.DL_ C:\WINDOWS\SYSTEM32\HAL.DLL (здесь F - это имя моего CD/DVD-дисковода)

После этого вновь перезагрузите компьютер.

Надеюсь, что этот совет вам очень помог в решении восстановления hal.dll в Windows XP .

Если вы давний пользователь операционной системы Windows, особенно XP, то наверняка сталкивались сами или ваши знакомые с такой проблемой как ? Как это выглядит. Вчера допустим вы выключаете нормально компьютер, а с утра этот железный друг выдает вместо нормальной и привычной загрузки Винды вот это: Не удаётся запустить Windows из-за испорченного или отсутствующего файла: . . . hal.dll

Ни в коем случае не путать с HALL.DLL (с двумя буковками LL на конце). Если увидели такое - то это однозначно проделки вредоносной какой-то программы. Для этого нужно просканировать систему подключив этот жесткий диск к другому компу или воспользовавшись (кто понимает о чем речь) Live-CD и удалить этот вирус .

Ну если вы убедились, что это не вирус тогда поехали дальше. В большинстве случаев эта проблема выскакивает из-за того, что на самом деле повреждены системные файлы, такие как hal.dll или ntoskrnl.exe (либо к ним нет доступа), или имеются изменения или повреждения еще одного системного файла - boot.ini

Немного расскажем про этот интересный файлик - HAL.DLL. При расшифровке он значится как Hardware Abstraction Layer или Уровень Аппаратных Абстракций и без него никак не может загрузиться ОС, в частности WIndows XP. Это своеобразный посредник между аппаратным и программным обеспечением. Нужен разработчикам программ для совместимости функций устройств.

Ну так вот что бы восстановить файл hal.dll нам потребуется установочный диск от ОС. С него мы запускаем консоль восстановления (как это делать смотрим по ссылке). Дальше в консоли прописываем:

expand X:\i386\hal.dl_ С:\windows\system32

Если этот фокус не удался возможно нужно ещё подменить файл ntoskrnl.exe . Его мы также восстанавливаем в консоли по команде:

expand X:\i386\ntoskrnl.ex_ С:\windows\system32

Где X: - это буква вашего CD рома, C: - буква жесткого диска, на котором располагается операционная система. И перезагружаемся.

Если и это не сработало, вероятно вы сами или какие то приложения без вашего ведома (бывает когда перезаписывается загрузчик при переустановке с Win 7 или Висты на XP или когда установлено две системы) заменили или исправили такой файлик как boot.ini . Что бы исправить эти изменения так же через консоль восстановления введите:

bootcfg /rebuild

Потом ответить «Y» на запрос системы «Добавить систему в список загрузки?», на запрос «Введите идентификатор загрузки» ответьте что-нибудь, что б потом узнать эту восстановленную систему в списке предложенных. На следующий запрос «Введите параметры загрузки операционной системы» вводить ничего не надо, просто жмите кнопку ввода и перезагружайте компьютер. Вуаля после перезагрузки система начала что-то спрашивать. Выберите тот пункт, который мы прозвали, когда вводили идентификатор загрузки. Радуемся нормальной загрузке Windows.

Ну если после всех проделанных операций компьютер так же продолжает выдавать, что есть ещё один вариант решения вопроса, но он связан с повреждениями на вашем винчестере. Бывает, что жёсткий диск выходит из строя, но местами, то есть появляются битые сектора. Видимо файл 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 и многократно использовать ее в своих будущих проектах. Со временем можно, к примеру, просто обновить версии библиотек, добавив, таким образом, необходимый функционал в программу.

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Проверим это предположение. Перейдем в консоли восстановления на наш в директорию установки 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. неудачное изменение конфигурации оборудования



Top