Включение pae windows xp

Время на прочтение4 мин

Количество просмотров346K

Сразу оговорюсь, «преодолевал» в названии отражает только тот факт, что теперь моя XP видит всю память, установленную на системной плате. Не я придумал способ, я просто им воспользовался и теперь хочу поделиться.
Вопрос о четырёх гигабайтах памяти в Windows XP (здесь, и далее 32 бит) поднимался на просторах Интернет неоднократно. И так же неоднократно делался вывод, что более четырёх увидеть в принципе невозможно, а так как оборудование тоже требует адресного пространства, то и того меньше. Обычно 3.25 Гб, или около того. Очень подробно и убедительно история вопроса освещена здесь: Четыре гигабайта памяти — недостижимая цель?

Меня этот вопрос тоже волновал. Хотя, казалось бы, можно поставить 64 битную систему, или даже Windows Server (как известно он даже в 32-битной версии видит всю память), но я хотел пользоваться Windows XP. Два раза за последние 3 года я переходил на Windows 7, в первый раз на 64-битную, второй раз на 32-х битную, но в итоге оба раза вернулся назад на XP, которая живёт у меня без переустановки с 2007 года.
Последний раз я отказался от семёрки в пользу старушки буквально две недели назад. Притом, надо отметить, что семёрка была хоть и 32-х битная, но в ней была разблокирована возможность видеть всю доступную память. Способ разблокировки доступен в Интернет. И теперь мне с новой силой захотелось решить этот вопрос и в XP.

Поиски привели на этот сайт: Patch Vista’s Kernel to Address more than 4 GB of Memory
Статья посвящена разблокировке Windows Vista, зато в комментариях, пара человек описывает аналогичный способ для Windows XP. Я решил последовать их советам и опробовать эту методику на практике.

Для начала нужен дистрибутив Windows XP SP1. Возможно, подойдёт и просто первый сервиспак, не знаю, у меня его нет. В общем-то, там нужен только один файл. А именно файл библиотеки Hardware Abstraction Layer. Начиная со второго сервиспака эта библиотека работает с PAE «фиктивно», т.е. даже если режим расширенной трансляции адресов включён – он ничего не делает и не выходит за пределы четырёх гигабайт. А вот библиотека от первого сервиспака работает полноценно и может адресоваться ко всей доступной памяти, аналогично тому, как работает с памятью 32-битный Windows Server. В установленной Windows XP данный файл называется hal.dll, но в дистрибутиве имеется несколько HAL-файлов, и только один из них инсталлируется в систему под именем hal.dll в процессе установки. Необходимо было узнать, какой из файлов нужно использовать на моём конкретном оборудовании. Делается это просто, надо вызвать Свойства в контекстном меню проводника на файле hal.dll в установленной Windows. Файл находится в папке %systemroot%\system32, и вот что я увидел:

В дистрибутиве Windows XP SP1 в папке I386, я взял файл HALMACPI.DL_. Это архив, в котором находится один файл, искомый мной halmacpi.dll. Я его извлёк WinRAR’ом, но можно обойтись и командной строкой:
expand HALMACPI.DL_ HALMACPI.DLL
Полученный файл надо поместить в папку %systemroot%\system32, что я и сделал. Хочу ещё раз обратить внимание, что если кто-то захочет повторить мои шаги, файл надо брать с именем, указанном в свойстве «Исходное имя файла» в свойствах hal.dll из установленной Windows XP.

Второе, что необходимо сделать, это получить пропатченную версию ядра Windows. Как известно, существует 4-ре версии ядра:

  • ntoskrnl.exe — однопроцессорное ядро Windows.
  • ntkrnlmp.exe— многопроцессорное ядро Windows.
  • ntkrnlpa.exe — однопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.
  • ntkrpamp.exe — многопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.

В той инструкции, которую я использовал, говорилось про ядро ntkrnlpa.exe и в моей инсталляции Windows стоит именно оно. Что делать, если попадётся другое ядро – я, честно говоря, не знаю.
Первым делом, я сделал копию ядра, назвал его krnl16.exe, в принципе название неважно. Далее HEX-редактором (я использовал DOS-Navigator, по старой памяти) надо найти последовательность

  • BB 00 00 10 00 33 FF 6A 07 8B F0 и заменить её на
  • BB 00 00 40 00 33 FF 6A 07 8B F0

Здесь 1000h = 4096 Мб, заменяем на 4000h = 16384 Мб. Т.е. поднимаем ограничение до 16Гб. В принципе, можно вписать и большее число. Пропатченный файл также должен располагаться в system32.

Теперь осталось отредактировать boot.ini. Нужно скопировать имеющуюся строчку и дописать пару параметров. У меня была строка:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN

Я добавил в неё /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE и в результате получилось:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU 16Gb» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE
Теперь есть возможность загружаться как в стандартный Windows с присущим ему ограничением на память, так и в пропатченный, так как я не заменял ни одного системного файла, а только добавил два, которые включаются в работу с помощью вышеописанных параметров boot.ini

Ребут!
И… BSOD.
В принципе, такое может быть. Как следует из обзора истории проблемы на ixbt причиной, по которой Microsoft отключила адресацию верхней памяти, было существование кривых драйверов под различное оборудование, кривизна которых, впрочем, проявлялась только в полноценном режиме PAE. Вполне вероятно, у меня сбоит один из них, за 6 лет в системе накопилось много всего, но какой? Пробую запуститься в безопасном режиме, и УРА! Вот они, мои гигабайты:

Но как определить сбойный модуль? Погуглив, я нашёл для этого методику, которая заключается в анализе малого дампа памяти, создаваемого Windows при BSOD. Анализ производится программой Blue Screen View, но вот все найденные мной способы включения режима записи дампа к успеху не привели: дамп не создавался, поэтому пришлось использовать научный метод тыка. Для начала я деинсталлировал то ненужное, что нашлось в системе. А именно драйвер защиты Guardant и драйвера ATI от старой видеокарты.
Ребут.
Результат превзошёл мои ожидания. Честно говоря, я не ожидал, что метод тыка даст такие результаты, и попробовал его просто, чтобы сделать хоть что-нибудь. Который из драйверов вызывал проблему, я точно не знаю, но думаю, что, скорее всего Guardant.
Но главное: цель достигнута, и теперь я подумываю о расширении памяти до 8-ми Гб.

  • Примечание 1. Поскольку в методике используется dll из первого сервиспака, есть вероятность, что в ней имеются какие-либо уязвимости, закрытые последующими сервиспаками. Я не изучал этот вопрос.
  • Примечание 2. Некоторые драйверы в пропатченой Windows XP могут вызывать BSOD. Впрочем, их крайне мало в природе.
  • Примечание 3. В первоисточнике ценных знаний сообщают, что на некоторых системах имеются проблемы с USB при использовании данной методики. У меня пока проблем нет. По крайней мере, клавиатуры, мышки и флешки работают в штатном режиме.

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

By Greg Lindberg

Updated February 10, 2017

The Physical Address Extension (PAE) memory is a feature in the Windows XP operating system for supporting more than four gigabytes (GB) of memory. This is useful for users who have 32-bit (IA-32) Intel Pentium Pro platforms and later models. In order to enable PAE you must have administrator rights and be able to add the PAE switch to an entry for the Boot.ini file. Before trying to add the switch you should check to make sure PAE is not already enabled.

Check to see if PAE is enabled by clicking on the “Start” option and then by clicking on the “Run” option. Enter “sysdm.cpl” into the “Open” field and then click on the “Enter” option.

Click on the “Advanced” tab and then click on the “Settings” option from the \»Performance\» section. Click on the “Data Execution Prevention” tab and review the status message at the bottom of the dialog box to see if PAE is enabled or not.

Close out of the dialog box and then click on the “Start” option to begin the process of enabling PAE. Click on the “Run” option and then enter “notepad c:\boot.ini” into the “Open” field. Click on the “Enter” button.

Look for the “/noexecute” switch below the operating system heading and place your cursor at the end of the command. Enter a space and then “/pae” at the end of the command.

Save the file and then restart your computer. The PAE will now be fully enabled on your computer.

Доступ к остальной части вашего памяти в 32-разрядных ОС WindowsAccess the Rest of your Memory in 32-bit Windows

Введите это в поле и нажмите Enter, чтобы получить доступ ко всей вашей памяти.

Если вы похожи на некоторых из нас, вы застряли с 32-разрядной Windows XP, Windows Vista или Windows 7. Вы не хотите инвестировать в 64-битную Windows и все связанные с этим проблемы, просто чтобы получить доступ к остальной части памяти.

Смотрите, системы с 32-разрядной Windows могут видеть только 3-3,5 гигабайта вашей памяти, независимо от того, сколько вы установили. У большинства новых компьютеров есть 4, поэтому по крайней мере половина гигабайта ОЗУ не используется, что замедляет работу вашей системы.

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

Расширение физического адреса

Это функция, доступная для многих процессоров, которые позволяют 32-разрядной Windows с 32-разрядными процессорами по-прежнему получать доступ к памяти выше 3-35 ГБ. Иногда он включен по умолчанию, но, чтобы быть уверенным, давайте включим его.

Чтобы включить PAE в 32-разрядной Windows Vista или Windows 7:

  • Нажмите кнопку Пуск
  • Введите cmd.exe в поле и нажмите Enter.
  • Введите bcdedit / set pae ForceEnable и нажмите Enter.

Чтобы включить PAE в 32-разрядной Windows XP:

  • Нажмите кнопку Пуск
  • Щелкните правой кнопкой мыши Мой компьютер
  • Щелкните Свойства
  • На вкладке «Дополнительно» в разделе «Запуск и восстановление» нажмите « Настройки».
  • В разделе « Запуск системы» нажмите « Изменить» .
  • Добавьте / PAE в файл, сохраните и выйдите.

Перезагрузите компьютер, и ваша система теперь будет использовать дополнительную память, насколько это возможно. Это будет не так эффективно, как 64-битная операционная система, но вы определенно заметите разницу.

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

Как отключить DEP
Windows XP:
– войдите в систему с правами администратора;
– нажмите Пуск –> Настройка –> Панель управления –> Свойства папки;

– в окне Свойства папки откройте вкладку Вид;
– в разделе Дополнительные параметры установите флажок Отображать содержимое системных папок, снимите флажок Скрывать защищенные системные файлы, установите переключатель Показывать скрытые файлы и папки –> OK;

– откройте Мой компьютер –> диск C:\;
– найдите скрытый системный файл boot.ini, щелкните его правой кнопкой мыши;
– из открывшегося контекстного меню выберите Свойства;
– снимите флажок Только чтение –> OK;

– откройте файл boot.ini;
– установите значение опции noexecute=AlwaysOff

например, если операционная система у вас установлена на диске C:\, примерное содержимое файла 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» /noexecute=AlwaysOff /nopae /fastdetect

– сохраните сделанные изменения и закройте файл boot.ini.

Примечания
1. По умолчанию используется значение noexecute=OptIn.
2. AlwaysOff означает, что функция DEP отключена для всей системы, независимо от наличия аппаратной поддержки DEP.

3. Начиная с XP SP2 32-разрядная версия Windows использует один из следующих методов:
• функцию no-execute page-protection (NX), разработанную компанией AMD;
• функцию Execute Disable Bit (XD), разработанную компанией Intel.
Чтобы использовать указанные функции, необходимо, чтобы процессор работал в режиме расширения физических адресов (Physical Address Extension, PAE). Windows автоматически включает режим PAE для поддержки функции DEP, поэтому пользователям не нужно отдельно включать PAE путем указания параметра /PAE в файле boot.ini.

Windows Vista:
– нажмите кнопку Пуск;
– в строке Начать поиск введите cmd;
– под заголовком Программы щелкните правой кнопкой мыши cmd.exe;

– из контекстного меню выберите Запуск от имени администратора;
– введите пароль администратора, если появится соответствующий запрос;
– после приглашения системы введите команду bcdedit.exe /set {current} nx AlwaysOff
– нажмите Enter;
– появится сообщение Операция успешно завершена;

– закройте окно Интерпретатора команд Windows.

Примечания
1. По умолчанию используется значение bcdedit.exe /set {current} nx OptIn.
2. bcdedit.exe /set {current} nx AlwaysOff означает, что функция DEP отключена для всей системы, независимо от наличия аппаратной поддержки DEP.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Kyocera не сканирует в сетевую папку windows 10
  • Как активировать все ядра процессора windows 11
  • Набросок на фрагменте экрана windows 10 как отключить
  • Xtreme windows 7 64 bit
  • Kyocera ecosys m3040dn драйвер windows 10