• Главная
  • Карта сайта
Не найдено

Як зняти 4 ГБ обмеження оперативної пам'яті в Windows 7

  1. Опис патча 32-розрядної ядра Windows
  2. Контрольна сума
  3. Цифровий підпис
  4. Завантаження Windows з модифікованим ядром
  5. Програми модифікації 32-розрядної ядра і завантаження Windows з підтримкою 128 гігабайт оперативної пам'яті
  6. Питання безпеки і скасування зроблених змін

Привіт шановні читачі блогу www.ithabits.ru. При підготовці матеріалу для однією з попередніх публікацій циклу про проблеми великий оперативної пам'яті в 32-розрядних операційних системах потрібно зняти ліміт, що обмежує адресний простір фізичної пам'яті на рівні 4 ГБ в Windows x86.

Коли і навіщо Microsoft встановила це обмеження ми детально розібрали в іншій статті цього ж циклу. Я вирішив не плутати "божий дар з яєчнею" і описати сам процес створення "безлімітного" модифікованого ядра Windows в окремій статті. Цим ми зараз і займемося.

До початку "славних справ" не зайвим буде зазначити, що описані далі дії не можна визнати законними, так як вони тягнуть за собою порушення ліцензійної угоди з Microsoft. З цієї причини відразу ж домовимося, що проводиться модифікація Windows системи буде тимчасовою, виконується виключно в пізнавальних цілях і реально експлуатуватися така система ніколи не буде.

Сподіваюся, до цього моменту сумнівів в тому, що 32-розрядні ОС можуть працювати з фізичною пам'яттю до 128 ГБ і що 4-гігабайтний ліміт встановлений Microsoft спеціально, ні у кого не залишилося. Залишається розібратися де знаходиться ця 4 ГБ "дах" і як її перестрибнути.

Відповідь на це питання дав Джефф Шапель (Geoff Chappell) в статті " Licensed Memory in 32-Bit Windows Vista ", Перша редакція якої була опублікована в 2009 році.

На початку цього досить об'ємною роботи автор висловлює своє незадоволення позицією Microsoft, яка вводить в оману користувачів стверджуючи, що робота з оперативною пам'яттю об'ємом більше 4 ГБ можлива тільки в 64-розрядних версіях ОС.

Далі безпосередньо описується використовуваний Microsoft механізм обмеження доступної пам'яті і спосіб його модифікації:

Опис патча 32-розрядної ядра Windows

Обмеження максимально доступною фізичної пам'яті встановлено в PAE ядрі, яке в Windows 7 / Vista називається NTKRNLPA.EXE. Внутрішня процедура MxMemoryLicense викликає недокументовану функцію ZwQueryLicenseValue. Така перевірка виконується два рази.

Патч, запропонований автором, має на увазі дуже невеликі зміни в ядрі - всього по 7 байт в кожному з двох входжень. Після зроблених змін ядро ​​продовжує викликати ZwQueryLicenseValue, але результати цієї перевірки підміняються так, що дозволений верхня межа фізичної пам'яті встановлюється в 128 ГБ.

Передбачається, що в подальшому модифіковане ядро ​​буде називатися NTKR128G.EXE.

Отримане нове ядро ​​може тепер працювати з усією встановленої пам'яттю, але є деякі перешкоди для його використання:

Контрольна сума

Для всіх виконуваних файлів, що завантажуються WINLOAD, в число яких, природно, входить ядро, контрольна сума, записана в заголовку виконуваного файлу, повинна бути правильною. В результаті модифікації ядра контрольна сума змінилася і стала недійсною. Її потрібно привести у відповідність. Це можна зробити за допомогою, наприклад, EDITBIN з Microsoft Visual Studio:
editbin / release ntkr128g.exe

Цифровий підпис

Ядро є одним з виконуваних файлів, який повинен бути підписаний сертифікатом, отриманим від одного з нечисленних кореневих центів. Публічні ключі кореневих центрів жорстко прописані в засобі завантаження. Виправлене ядро ​​матиме недійсні цифрові підписи. Це перешкода можна подолати одним із таких способів.

Одним з таких способів є використання тестового режиму, який Microsoft надає для тестування драйверів в процесі їх розробки. У тестовому режимі завантажувач дозволяє виконувати файли, підписані будь-яким кореневих сертифікатом. Можна створити свій власний тестовий сертифікат і підписати їм змінену копію ядра. Після цього воно буде завантажуватися при старті Windows в тестовому режимі (TESTSIGNING). Несуттєвою неприємністю цього варіанту буде поява попереджувального напису в правому нижньому куті робочого столу.

Відповідними інструментами для реалізації такого способу можуть служити Windows Software Development Kit (SDK) або Windows Driver Kit (WDK). З їх допомогою можна зробити свій власний сертифікат:
makecert -r -ss my -n "CN = My Own Testing Authority"
Це команда створить кореневий сертифікат з ім'ям "My Own Testing Authority» і встановить його в особисте сховище сертифікатів. Підписати модифіковане ядро ​​цим сертифікатом можна виконавши команду:
signtool sign -s my -n "My Own Testing Authority" ntkr128g.exe

Завантаження Windows з модифікованим ядром

Тепер у нас є модифіковане ядро ​​для тестування можливості використання в 32-розрядної Windows фізичної пам'яті вище 4 ГБ. Його потрібно скопіювати в каталог C: \ Windows \ System32 і створити новий варіант завантаження за допомогою bcdedit.exe .

Нову завантажувальний запис створюємо шляхом копіювання поточної (current) і даємо їй нове ім'я, наприклад, «Windows Using All My Memory»:
bcdedit / copy {current} / d "Windows Using All My Memory"
Запустимо bcdedit без параметрів і дізнаємося {ідентифікатор} нового запису.

Далі додаємо необхідні директиви:
bcdedit / set {ідентифікатор} kernel ntkr128g.exe- вказуємо, яке ядро ​​потрібно завантажити;
bcdedit / set {ідентифікатор} testsigning Yes- говоримо, що працюємо в тестовому режимі;
bcdedit / set {ідентифікатор} pae ForceEnable- про всяк випадок.

Програми модифікації 32-розрядної ядра і завантаження Windows з підтримкою 128 гігабайт оперативної пам'яті

Стосовно до Windows 7 x86 робити все описане вище "ручками", швидше за все, не знадобиться. У вільному доступі є програми, які автоматизують весь цей процес. Знайти їх в мережі дуже легко, тому посилання на них я наводити не буду, а обмежуся одними назвами.

Перший комплект, який мені попався, називався ReadyFor4GB. Він примітний тим, що складається з трьох окремих модулів, перші два з яких повторюють описані вище етапи. Третій модуль являє собою утиліту для видалення Watermark (попереджувальний напис на робочому столі після завантаження з новим ядром).

З огляду на, що в комплекті є керівництво російською мовою, в якому чітко прописано послідовність запуску програм і відповіді на їхні запитання, докладний опис процесу буде тут зайвим. Просто робіть все строго по порядку. Всі програми потрібно запускати з правами адміністратора. Сподіваюся, всі знають як це робити. Найпростіше в провіднику Windows - «підсвічувати» мишею файл програми, яку потрібно запустити, натискаємо праву кнопку миші і в контекстному меню вибираємо «Запуск від імені адміністратора».

Питання безпеки і скасування зроблених змін

В силу того, що "рідне" ядро ​​залишається в незмінному вигляді, систему в будь-який момент можна повернути в початковий стан. Завдяки цьому, описаний патч можна вважати відносно безпечним.

Не дивлячись на це, я ні за що не став би робити подібні маніпуляції Не зробивши попередньо бекап системи . Хто його знає, як вона поведе себе у вас після внесених змін. Сподіваюся, що ви робите бекап регулярно ... Ну добре ... не регулярно, але хоча б час від часу. Ось зараз як раз з'явився відмінний привід. Якщо дані лежать окремо, то їх теж варто зберегти на зовнішньому носії.

Золоте правило системного адміністратора, в ролі якого ви, можливо, зараз збираєтеся виступити, - ніколи і нічого не починати робити, якщо не вжито заходів, що дозволяють зі 100% гарантією відкотитися назад. Якщо в процесі щось піде не так, або результат виявиться відмінним від очікуваного, завжди треба мати можливість повернутися до первісного стану.

На підприємствах з цим справа має (повинно - не означає, що так і є насправді) обстоять ще серйозніше. А саме, по ITIL системний адміністратор або інженер, по-перше, не повинен сам собі видавати завдання, по-друге, не починати нічого робити до узгодження і схвалення передбачуваного зміни з усіма зацікавленими особами. Втім, не будемо відволікатися, це тема точно не цієї статті.

Зовсім не зайвим буде до початку запуску Патчер зробити експорт вмісту системного сховища в файл. Ви можете зберегти файл в будь-якому місці і дати йому довільне ім'я (головне згадати потім назва файлу і де він лежить). Цю копію згодом можна використовувати для швидкого і простого відновлення первісного стану системного сховища, що, в нашому випадку, рівносильно скасування всіх зроблених змін.

Навіть якщо ви поки ще не дуже дружите з bcdedit.exe, просто запустіть командний рядок з правами адміністратора і наберіть:
bcdedit / export "C: \ Backup \ bcd-backup" де C: \ Backup \ - довільно обрана для зберігання папка, а bcd-backup - довільне ім'я файлу копії сховища.

Коли захочеться припинити всі експерименти з пам'яттю, досить буде набрати:
bcdedit / import "C: \ Backup \ bcd-backup"
Другий варіант Патчер, який мені довелося протестувати, називався 4GB-7600_RTM_x86. У ньому взагалі один єдиний виконуваний файл, тобто «все в одному флаконі».

Не так давно з'явився патч , Який позиціонується як універсальний для всіх версій Windows, включаючи і Windows 8.

Після виконання патча, тим чи іншим описаним вище способом, і подальшої перезавантаження повинно вийти щось такого типу>

Далі повертаємося до цієї статті і читаємо про чудові результати роботи Windows 7 x86 з модифікованим ядром в ноутбуці з 4 ГБ пам'яті. Якщо цю статтю вже прочитали, то дивимося наступну , В якій розглядається робота аналогічної системи на настільному комп'ютері з 6 ГБ пам'яті.

На закінчення відзначимо, що згадані вище програми-патчери додають новий варіант завантаження з модифікованим ядром першим пунктом завантажувального меню і відзначають його як дефолтний, тобто завантаження за замовчуванням.

Якщо це небажано, то повернути вихідної операційній системі статус завантажується за замовчуванням можна за допомогою елемента "Система" в "Панель управління" або з аплету "msconfig".

Для більш масштабних змін, наприклад, якщо потрібно змінити порядок показу варіантів завантаження або зовсім видалити новий, доведеться все ж трохи розібратися з bcdedit.exe.

_______________________________

PS

З'явився новий «універсальний» патчер - PatchPae2 , Який працює в Windows Vista, Windows 7 і Windows 8. З'явився новий «універсальний» патчер -   PatchPae2   , Який працює в Windows Vista, Windows 7 і Windows 8

В процесі роботи цей патч вимагає набору деякого кількість команд. Замість цього можна скачати готовий командний файл "PatchPae2cmd", який виконає всі необхідні операції.
Для того, щоб завантажити цей файл потрібно просто підписатися на оновлення блогу по E-Mail. Посилання на скачування буде в поштовому підтвердження підписки.

Посилання на скачування буде в поштовому підтвердження підписки

Увага! Для тих, хто створив "поправлення" ядро ​​і відповідний варіант завантаження в BCD до 13.08.2013, обов'язкової для ознайомлення є стаття з приводу поновлення KB2859537 .

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

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

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью