Меню Рубрики

Разблокировка pae в windows 8 x86

Тестирование Windows 8 х86 со снятым 4 ГБ ограничением доступной физической памяти после установки обновления KB2859537

Здравствуйте уважаемые читатели блога www.ithabits.ru. Ставшая быстро популярной статья, посвященная описанию возможности работы 32-разрядных операционных систем Windows 8 с оперативной памятью больше 4 ГБ, заканчивалась обещанием протестировать работу такой системы на реальном компьютере.

Это обещание, возможно, еще долго стояло бы в очереди, отодвигаемое другими интересными темами, если бы не обновление безопасности от Microsoft за номером KB2859537.

В силу того, что это обновление помимо большого количества файлов заменяет еще и ядро ОС, повторное тестирование Windows 7 и Windows 8 с модифицированными ядрами оказалось неизбежным.

О том, что нужно сделать в системах с “поправленными” ядрами и двойной загрузкой (Patch PAE) после установки обновления KB2859537, рассказывалось в предыдущей публикации. Сегодня я наконец выполню обещание и напишу о результатах тестирования Windows 8 x86 с новым ядром в режиме 128GB.

Основные характеристики тестового компьютера

Материнская плата – Intel DX58SO
Процессор — Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz, 3060 МГц, ядер: 4, логических процессоров: 8
Память – DDR3 6 ГБ
Видео — ATI Radeon HD 5700 Series 1 ГБ
Основная система компьютера – Microsoft Windows 7 Корпоративная x64

Для того, чтобы быстро протестировать Windows 8 x86 на этом компьютере не создавая при этом новых дисковых разделов, установим операционную систему на виртуальный диск. Как это можно сделать подробно рассказывалось в этой статье применительно к Windows 8.1 Preview.

Установка Windows 8 на виртуальный диск

Я думаю, что будет полезно коротко пройти по этапам установки.

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

1. Создаем новый виртуальный диск на выбранном носителе в графическом интерфейсе Windows 7.

Открываем “Управление компьютером” –> “Управление дисками” –> “Создать виртуальный жесткий диск”:

Задаем расположение и имя файла с будущим образом виртуального диска и его размер.

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

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

После завершения операции создания VHD он будет автоматически присоединен к системе на первую свободную букву.

2. Если есть дистрибутивный DVD с Windows 8 Корпоративная, то можно сразу переходить к пункту №3.

Если в наличии ISO файл с образом дистрибутивного диска, то с помощью любого архиватора, поддерживающего данный формат — 7-Zip, Hamster, WinRar, нужно разархивировать файл Install.wim в любое подходящее место, например, в корень диска D:\. Этот файл является самым большим по размеру и составляет большую часть объема дистрибутива.

3. Запускаем командную строку и выполняем следующую команду:

C:\imagex /apply D:\Install.wim 1 I:\ — в данном случае предполагается, что утилита imagex перенесена в корень диска C:\, Install.wim находится в корне диска D:\, а новый виртуальный диск подключен в систему как I:\.

В случае DVD утилите imagex нужно указать путь до Install.wim на нем.

Подробнее о данной утилите смотрите в статье об установке Windows 8.1 на виртуальный диск.

Дожидаемся завершения операции копирования.

4. Обновляем системный загрузчик и создаем в BCD вариант загрузки Windows 8 с виртуального диска:

bcdboot I:\Windows /l ru-RU

5. Перезапускаем компьютер, выбираем загрузку Windows 8, завершаем установку новой системы как обычно. Устанавливаем все накопившиеся за прошедшее время обновления, в том числе KB2859537.

Одно интересное наблюдение по поводу содержимого BCD, вернее, по поводу его показа из разных систем. Это может быть важно в том случае, когда, по какой-либо причине, находясь в Windows 7 нужно создать секцию загрузки для Windows 8 в редакторе BCDedit.

Вот так выглядит секция загрузки Windows 8 из Windows 7 (BCDEdit без параметров):

——————-
идентификатор <5c2a7c55-a04e-11de-9dac-b90d3342b585>
device vhd=[D:]\win8-32.vhd
path \Windows\system32\winload.exe
description Windows 8
locale ru-RU
inherit
custom:17000077 352321653
osdevice vhd=[D:]\win8-32.vhd
systemroot \Windows
resumeobject <5c2a7c53-a04e-11de-9dac-b90d3342b585>
nx OptIn
custom:250000c2 1
detecthal Yes

А вот так она же, но уже непосредственно из Windows 8:

——————-
идентификатор
device partition=C:
path \Windows\system32\winload.exe
description Windows 8
locale ru-RU
inherit
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject <5c2a7c53-a04e-11de-9dac-b90d3342b585>
nx OptIn
bootmenupolicy Standard
detecthal Yes

Обратите внимание на разницу выделенных строк. Более того, команды allowedinmemorysettings нет в списке команд BCDedit, следовательно, не понятно, как вручную прописать ее в загрузку. Можно предположить, что ей эквивалентно выполнение двух команд custom:.

Создание варианта загрузки Windows 8 без ограничения доступной физической памяти

Находясь в сеансе Windows 8 создаем новое модифицированное ядро ntoskrnx версии 6.2.9200.16659, и загрузчик winloadp.exe с помощью PatchPae2.exe и командного файла PatchPae2cmd. Командный файл выполнит запуск программы с нужными ключами, создаст новый вариант загрузки и добавит в него необходимые команды.

Для того, чтобы скачать командный файл PathPae2cmd, автоматизирующий все операции с PatchPae2, нужно просто подписаться на обновления блога по E-Mail. Ссылка на скачивание будет в почтовом подтверждении подписки.

После перезагрузки в режиме без 4 ГБ ограничения доступной физической памяти можно приступить непосредственно к тестированию.

Тестирование Windows 8 x86 в режиме 128GB

Для начала посмотрим, что показывает Windows 8 об использовании физической памяти в исходной системе и системе со снятым ограничением. Аналогичное исследование проводилось при исследовании использования памяти больше 4 ГБ в Windows 7 x86.

Windows 8 x86

Тут все достаточно ожидаемо. Из 6 ГБ установленной на материнской плате компьютера памяти Windows 8 x86 может задействовать не 4, а лишь 3,24 ГБ. С чем это связано мы подробно разбирали в этой статье.

Под адреса ввода/вывода устройств зарезервировано, на самом деле, не 2,8 ГБ, как показывает диспетчер, а всего 4 – 3,24 = 0,76 ГБ.

Таким образом, по сравнению с Windows 7, ничего не изменилось и чистые потери памяти составляют 6 – 3,24 = 2,76 ГБ.

Дополнительно запустим утилиту meminfo Alexa Ionescu (см. статью по приведенной выше ссылке).

C:\Windows\system32>c:\i386\meminfo -r
MemInfo v2.10 — Show PFN database information
Copyright (C) 2007-2009 Alex Ionescu
www.alex-ionescu.com
Physical Memory Range: 00001000 to 0008F000 (142 pages, 568 KB)
Physical Memory Range: 00090000 to 0009D000 (13 pages, 52 KB)
Physical Memory Range: 00100000 to 00102000 (2 pages, 8 KB)
Physical Memory Range: 00103000 to CF49D000 (848794 pages, 3395176 KB)
Physical Memory Range: CF4BF000 to CF64C000 (397 pages, 1588 KB)
Physical Memory Range: CF7BF000 to CF7DB000 (28 pages, 112 KB)
Physical Memory Range: CF7FF000 to CF800000 (1 pages, 4 KB)
MmHighestPhysicalPage: 849920

Она показывает, что основной непрерывный диапазон памяти сосредоточен в диапазоне 00103000 – CF49D000 и составляет 3,24 ГБ.

Windows 8 x86 128GB

Повторим то же самое в сеансе Windows 8 с “поправленным” PatchPae2 ядром ntoskrnx версии 6.2.9200.16659.

В строке “Установленная память” исчезло сообщение об объеме доступной памяти.

Зарезервированными под нужды оборудования теперь числятся всего 11 МБ. Как мы уже разобрались ранее, адреса ввода/вывода устройств занимают, естественно, те же 0,76 ГБ, но с физической памятью теперь пересекается лишь их мизерная часть.

В завершении посмотрим диапазоны памяти:

C:\Windows\system32>c:\i386\meminfo -r
MemInfo v2.10 — Show PFN database information
Copyright (C) 2007-2009 Alex Ionescu
www.alex-ionescu.com
Physical Memory Range: 00001000 to 0008F000 (142 pages, 568 KB)
Physical Memory Range: 00090000 to 0009D000 (13 pages, 52 KB)
Physical Memory Range: 00100000 to 00102000 (2 pages, 8 KB)
Physical Memory Range: 00103000 to CF49D000 (848794 pages, 3395176 KB)
Physical Memory Range: CF4BF000 to CF64C000 (397 pages, 1588 KB)
Physical Memory Range: CF7BF000 to CF7DB000 (28 pages, 112 KB)
Physical Memory Range: CF7FF000 to CF800000 (1 pages, 4 KB)
Physical Memory Range: 00000000 to B0000000 (720896 pages, 2883584 KB)
MmHighestPhysicalPage: 1769472

Нетрудно заметить, что добавился новый большой диапазон памяти, объемом 2,75 ГБ. Это значит, что вся “потерянная” память “нашлась” и вернулась.

Теперь плавно переходим собственно к тестированию. Проведенное тестирование нельзя назвать слишком серьезным. Скорее, это своеобразные “показательные выступления”. Тем не менее они достаточно красноречивы.

Для того, чтобы быстро занять и задействовать большое количество оперативной памяти я создал в VirtualBox в Windows 8 две виртуальные машины: одна — Windows 7, которой выделено 3 ГБ RAM, другая – Windows XP с памятью 1 ГБ.

Обе виртуальные машины отлично запустились и продолжили исправно функционировать. Так выглядит использование памяти в Windows 8 x86 128 GB во время их работы.

Я оставил виртуальные машины включенными на несколько часов, при этом продолжал работать на компьютере запуская различные приложения, в том числе в гостевых машинах. За все это время никаких проблем обнаружено не было.

Излишним будет говорить, что в Windows 8 x86 с “родным” ядром ntoskrnl гостевую машину, которой было выделено 3 ГБ памяти, запустить просто не удалось.

Выводы

Очевидно, что в новых ядрах ОС Windows, устанавливаемых обновлением безопасности KB2859537 с середины августа 2013 года, сохранился прежний механизм ограничения доступной физической памяти. Благодаря этому они по-прежнему без проблем модифицируются такими программами, как ReadyFor4GB (Windows 7) и PatchPae2 (Windows 7/8).

Еще раз хотелось бы отметить, что возможность работы Windows x86 в режиме PAE без ограничения доступной физической памяти на уровне 4 ГБ отнюдь не эквивалентна переходу на x64.

Проведенное удачное тестирование Windows 8 x86 128 GB не гарантирует от возможных ошибок в работе ОС в таком режиме на других компьютерах. О причинах возможных неприятностей можно прочитать здесь.

Источник

И снова преодолеваем 4 ГБ ограничение оперативной памяти. До 128 ГБ RAM в Windows 8 х86

Здравствуйте уважаемые читатели блога www.ithabits.ru. Совсем немного времени прошло с момента предыдущей публикации из цикла статей о “приключениях” большой оперативной памяти в 32-битных операционных системах, которую я явно погорячился анонсировать как заключительную. Сегодня мы продолжим наши эксперименты, только теперь уже применительно к Windows 8.

Почему Microsoft ограничивает доступную 32-разрядным клиентским версиям Windows физическую память на уровне 4 ГБ

На протяжении вот уже почти десятилетия, начиная с выхода Windows XP SP2, компания Microsoft с завидным упорством вводит пользователей в заблуждение, утверждая, что работать с оперативной памятью больше 4 ГБ могут исключительно 64-битные версии операционных систем.

С тем, что это не так, и как обстоят дела на самом деле, мы разобрались в первой публикации на тему особенностей работы 32-битных ОС с большой оперативной памятью (больше 3 ГБ). Вообще, на страницах блога этой теме было уделено достаточно пристальное внимание.

Еще раз хотелось бы отметить, что тема удивительно интересная, и я очень рекомендую всем с ней ознакомиться.

Для тех, кто предыдущие статьи еще не читал, основные моменты в двух словах.

В далеком 1995 году появился первый 32-битный процессор с 36-разрядной адресной шиной. Это позволяло ему работать с физической памятью объемом до 64 ГБ. Для того чтобы 32-разрядные системы могли работать с такой большой памятью, в процессор была встроена технология Physical Address Extension (PAE).

Через некоторое время поддержка PAE была включена в различные операционные системы. Microsoft Windows, естественно, не была исключением. Например, Windows 2000 Advanced Server умел работать с 8 ГБ оперативной памяти, а его редакция Datacenter – с 32 ГБ. Дальше – больше.

Неприятность с памятью больше 4 ГБ приключилась с клиентскими версиями Windows. На стадии тестирования Windows XP SP2, в которой режим PAE был включен принудительно для защиты от определенного класса вредоносного кода, оказалось, что некоторые 32-разрядные драйверы устройств сторонних производителей не умеют работать в режиме расширения физических адресов. Это обстоятельство приводило к неустойчивой работе системы в целом, вплоть до аварийных отказов с демонстрацией BSoD (Синий экран смерти). Подробнее об этом можно прочитать здесь.

Тогда, в 2004 году, Microsoft решила эту проблему ограничив в ядре размер максимально доступной физической памяти на уровне 4 ГБ. То есть, с одной стороны, принудительно включив PAE сделала доступной память выше 4 ГБ, с другой стороны, отменила это разрешение, установив соответствующее ограничение. С тех пор ничего не изменилось. Появление новой операционной системы Windows 8 не внесло никаких корректив.

Есть серьезные сомнения в том, что до сих пор существуют «плохие» драйверы, которые не умеют работать в режиме PAE с памятью больше 4 ГБ. Впрочем, как знать. Однако Microsoft могла бы уже, наверное, пойти навстречу пользователям ее операционных систем, а не производителям оборудования, экономящим деньги на квалифицированных программистах, честно все объяснить и предоставить возможность выбора.

Для тех, кто по той или иной причине до сих пор хочет или вынужден использовать 32-разрядную версию Windows на компьютере с памятью более 4 ГБ, такую возможность предоставить, но предупредить, что могут быть проблемы. Проблемы эти решать придется напрямую с производителями компьютерного оборудования.

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

Между прочим, примерно так когда-то и было. И именно так поступают те, кто использует модифицированное ядро Windows: попробовал — отлично, не получилось — вернулся к первоначальному варианту. Как это сделать применительно к Windows 7 x86 мы подробно разбирали в этой статье. К сожалению, при этом приходится нарушать лицензионное соглашение с Microsoft, что не есть хорошо.

Описание патча, снимающего 4 ГБ ограничение доступной памяти Windows 8 x86

Свято место пусто не бывает. Коль 32-разрядная редакция Windows 8 вышла опять с 4 ГБ ограничением на доступную память, то должен был появиться и патч, который это ограничение снимает. Он и появился. Программа называется PatchPae2. Ее лучше всего скачать с сайта автора.

Надо сказать, что в отличие от аналогичных утилит для Windows 7, эта пока не столь продвинута в части автоматизации процесса – запускать программу надо два раза с разными ключами и редактировать меню загрузки нужно самостоятельно.

Архив содержит собственно сам патчер (PatchPae2.exe), инструкцию и папку с исходными кодами программы. Кстати, утилита позиционируется как универсальная для всех операционных систем, начиная с Vista, то есть пригодна и для использования в Windows 7.

PatchPae2 кроме создания нового ядра, которое может работать с оперативной памятью до 128 ГБ, «подправляет» еще и загрузчик (loader).

Основные этапы работы с программой такие:

1. Создание модифицированного ядра Windows 8

a. Копируем файл патчера PatchPae2.exe на диск С: (в принципе можно и в любое другое место, но так командная строка будет короче);

b. Запускаем Командную строку с правами администратора. В Windows 8 для этого нажимаем Win+X, дальше в появившемся списке выбираем Командная строка (администратор). Разрешаем запуск;

c. Убеждаемся, что открылся каталог C:\Windows\system32. Если по какой-то причине открылся другой, переходим в него командой
CD C:\Windows\system32

d. Создаем новое модифицированное ядро, позволяющее работать с памятью объемом до 128 ГБ

Для Windows 8:
C:\PatchPae2.exe -type kernel -o ntoskrnx.exe ntoskrnl.exe

Для Windows Vista / 7:
C:\PatchPae2.exe -type kernel -o ntkrnlpx.exe ntkrnlpa.exe

В результате успешного выполнения должно появиться сообщение: «Patched», которое говорит об успешном создании нового ядра, которое может работать с памятью, объемом до 128 ГБ.

2. Создание нового загрузчика (loader) для отмены проверки подписи ядра при загрузке:

C:\PatchPae2.exe -type loader -o winloadp.exe winload.exe
В результате успешного выполнения должно появиться сообщение: «Patched.»

3. Создание варианта загрузки операционной системы с модифицированным ядром

Все дальнейшие операции будем делать в редакторе загрузочного меню BCDEdit.

a. Делаем на всякий случай бекап системного хранилища:
bcdedit /export «C:\Backup\bcd-backup» где C:\Backup\ – произвольно выбранная для хранения папка, а bcd-backup – произвольное имя файла копии хранилища;

b. Добавляем новый вариант загрузки путем копирования текущего:
bcdedit /copy /d «Windows 128 GB» – вместо «Windows 128 GB» можно выбрать любое понравившееся название.

В результате успешного выполнения должно появиться сообщение: «Запись успешно скопирована в .», где ID — 36-символьный, 32-значный идентификатор (номер записи) заключенный в фигурные скобки <> (скобки в командах писать обязательно);

c. Определяем загружаемое ядро.

Для Windows 8:
bcdedit /set kernel ntoskrnx.exe

Для Windows Vista / 7:
bcdedit /set kernel ntkrnlpx.exe
– название нового (модифицированного) ядра было определено на шаге 1.d.

Набирать в командах длинный ID – дело утомительное. Лучше поступить так. Нажимаем правую кнопку мыши, будучи в окне командной строки, и в появившемся контекстном меню выбираем «Пометить». Выделяем мышью нужные нам 36 символов, нажимаем “Enter”. Теперь можно вставить скопированную запись в нужное место команды.

Еще можно порекомендовать использовать для этой цели Блокнот, запустив его командой notepad. Скопировать с его помощью нужный текст в произвольный файл и копировать и переносить его фрагменты в командную строку по мере необходимости.

d. Назначаем новый загрузчик:
bcdedit /set path \Windows\system32\winloadp.exe – имя нового загрузчика winloadp было определено на шаге 2.

e. Отменяем проверку загрузчика:
bcdedit /set nointegritychecks 1
Следующие два пункта по желанию. Их можно пока не выполнять.

f. Назначить новый вариант загрузки с модифицированным ядром по умолчанию:
bcdedit /set default

g. Изменить время показа меню загрузчика:
bcdedit /set timeout 5 – определяет время в секундах, в данном случае меню будет показываться 5 секунд. Вы можете выбрать любое желаемое значение.

Если все было сделано правильно, то после перезагрузки появится вот такое окно:

Выбираем Windows 128 GB и получаем возможность работать с памятью более 4 ГБ в 32-разрядной Windows 8.

Файл патчера PatchPae2.exe с диска С: можно удалить – он больше не понадобится.

Еще раз хотелось бы отметить, что не смотря на возможность задействовать физическую память объемом до 128 ГБ, работа 32-разрядной операционной системы в режиме PAE отнюдь не эквивалентна 64-разрядной ОС. Приложения продолжают выполняться в обычном для них 32-разрядном адресном пространстве, но при этом, если установленная физическая память равна или превышает 4 ГБ, самих приложений может быть одновременно запущено больше. Как это выглядит на примере Windows 7 x86 можно наглядно посмотреть здесь.

Удаление патча

Удалить следы работы патча проще всего запустив msconfig в командной строке. Переходим на вкладку «Загрузка».

Выбираем Windows 128 GB и нажимаем «Удалить».

Это не единственный вариант. Если снова обратиться к bcdedit.exe, то можно сделать следующее:
bcdedit /import «C:\Backup\bcd-backup» – восстанавливает содержимое хранилища конфигурации загрузки из его копии, сделанной на шаге 3а,

или
bcdedit /delete – удаление записи из хранилища.

Далее можно удалить файлы модифицированного ядра ntoskrnx.exe и загрузчика winloadp.exe.

Прелесть патча в том, что он не наносит никакого вреда исходной системе.

Итоги

Описанный патч был протестирован на виртуальной машине Windows 8 Профессиональная в среде Oracle VirtualBox. Система с модифицированным ядром загрузилась без каких-либо сообщений об ошибках и «увидела» всю оперативную память.

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

Успешной и приятной всем работы.

Для автоматизации всех операций с PatchPae2 появился командный файл. Он работает в Windows Vista, Windows 7 и Windows 8.

Для того, чтобы скачать готовый командный файл “PatchPae2cmd”, который выполнит все необходимые операции, нужно просто подписаться на обновления блога по E-Mail. Ссылка на скачивание будет в почтовом подтверждении подписки.

Файл нужно разархивировать и разместить в той же папке, в которой находится исполняемый файл PatchPae2.

Скрипт запускается только в 32-разрядных системах Windows с установленной оперативной памятью больше 3 ГБ.

Дополнительно к командам, описанным в статье, добавлена:

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

Внимание! Для тех, кто создал “поправленное” ядро и соответствующий вариант загрузки в BCD до 13.08.2013, обязательной для ознакомления является статья по поводу обновления KB2859537.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Разблокировать производителя windows 10
  • Разблокировать вход в windows 10
  • Разбить раздел жесткого диска windows 7
  • Разбить на логические диски в windows 7
  • Разбить винт в windows 10