Pull to refresh
1621.72
Timeweb Cloud
То самое облако

HotPatching – установка обновлений без перезагрузки. Не только Windows Server, но и Windows 11. И без подписок Azure

Level of difficultyEasy
Reading time6 min
Views4.1K

Сегодня хочу поговорить с вами о наболевшем, об обновлениях Microsoft, требующих перезагрузки. Я отношусь к тем, кто обычно устанавливает рекомендуемые на широком канале Windows Update, так как считаю безопасность превыше всего. Однако, перезагрузки безумно напрягают. Не одного меня, конечно. Так сложилось, что Microsoft очень давно разрабатывала технологию установки обновлений без перезагрузок. Мало кто знает, что еще с Windows Server 2003 SP1 была предложена технология HotPatching, позволяющая на лету устанавливать заплатки и библиотеки, не требуя перезагрузки. Правда, почему то, после выхода Windows Server 2003 SP2 выпуск обновлений, не требующих перезагрузок был свёрнут. О подробностях применения горячих обновлений в те древние времена можно почитать тут. Сегодня я расскажу о горячей установке обновлений на Windows Server 2025 и Windows 11 24H2 без всяких подписок. Но давайте по порядку…

С выходом Windows Server 2019 технология была переработана и для издания Windows Server 2019 Datacenter Azure Edition (Core) доставлялись горячие обновления, если машины размещались в Azure. С Windows Server 2022 такая возможность появилась и для версии Windows Server 2022 Datacenter Azure Edition с полным рабочим столом. Но требование издания Azure Edition и размещения в облаках Microsoft никуда не делось. Позже разрешили обновлять без перезагрузок виртуальным машины Azure Edition, развернутые в дата-центрах заказчика на кластерах Azure Stack HCI при наличии подписки Azure. Гм, тоже не моя история 😊

С Windows Server 2025 недавно было анонсировано, что горячие обновления доступны для любых изданий Windows Server 2025 (включая Server Standard и Datacenter), в том числе запущенных на железе и в сторонней виртуализации, при активации агента Azure Arc и наличии подписки Azure. Пошаговая инструкция дана в статье How to preview: Azure Arc-connected Hotpatching for Windows Server 2025 - Microsoft Community Hub.

Я не буду рассказывать тут об официальном способе, описанном в статье по ссылке строкой выше. Сейчас рассмотрим, что необходимо сделать, чтобы на ваш Windows Server 2025 устанавливались лишь обновления из HotPatch канала, поговорим об особенностях этого подхода. А в конце статьи поговорим и о Windows 11 24H2 и том, как регулярно обновлять её с минимумом перезагрузок.

Итак, для начала базовые знания для тех, кто не читал тех статей, ссылки на которые я дал выше. Hotpatching, это технология позволяющая уменьшить, но не убрать совсем количество перезагрузок при установке обновлений. Согласно видению Microsoft, раз в месяц будет выходить «горячее» кумулятивное обновление для Windows Server 2025 (забегая вперёд, оно же является «горячим» и для Windows 11 24H2), установка которого не требует перезагрузки ОС. При этом некоторые компоненты таким обновлением покрыть пока невозможно, так что раз в квартал те системы, которые установили 2-3 «горячих» обновления без перезагрузок будут получать специальное обновление, вносящее исправления в те компоненты, которые без перезагрузки обновить не получается, устанавливать его и перезагружаться – раз в квартал, а не раз в месяц. Обновления, не требующие перезагрузок (такие как Defender или драйверы) будут доступны штатно через Windows Update, а вот обновления, требующие перезагрузку, например .NET, не будут предлагаться для установки в Windows Update, как именно будет проходить их установка мне пока непонятно. Таким образом мы в несколько раз снижаем количество перезагрузок, но не избавляемся от них совсем. Обойтись без перезагрузок совсем не удастся. После выхода ежеквартального обновления следующие «горячие» обновления включают его внутри себя и будут требовать его наличия для установки без перезагрузки (более того, они принудительно установят его тем, кто еще не установил и перезагрузят ОС, если перезагрузка разрешена настроенными политиками).

Hotpatching работает начиная со сборки ОС 26100.1150
Hotpatching работает начиная со сборки ОС 26100.1150

Теперь о том, что необходимо иметь для установки «горячих» обновлений. Издания Windows Server поддерживаются любые – Standard, Datacenter, Azure Edition, Azure Stack HCI – как Server Core, так и полные версии с рабочим столом, в том числе и ознакомительные (Evaluation) издания. Обязательными условиями является наличие установленного кумулятивного обновления за июль 2024 (9 июля 2024 г. — KB5040435 (сборка ОС 26100.1150) - Служба поддержки Майкрософт (microsoft.com)), включенного Virtualization Based Security и, собственно, хака в реестре для самого Hotpatch. Также я бы рекомендовал как предварительное условие установку обновления .NET 2024-07, так как оно не знает о «горячем» канале и буде предлагаться вне зависимости от ваших настроек, – и потребует перезагрузки. Ставьте KB5039894 или более новое. До выполнения следующих шагов у меня в Windows Update отображаются свежие обновления:

До включения Hotpatching система видит много обновлений
До включения Hotpatching система видит много обновлений

Я в WU поставил на паузу установку всех обновлений. Далее чтобы включить Virtualization Base Security и поддержку Hotpatch, выполните в режиме администратора следующие команды, добавляющие в реестр необходимые ключи и перезагрузитесь:

Reg add "HKLM\SYSTEM\ControlSet001\Control\DeviceGuard" /v "EnableVirtualizationBasedSecurity" /t REG_DWORD /d 1 /f

Reg add "HKLM\SOFTWARE\Microsoft\Windows\Hotpatch\Environment" /v "AllowRebootlessUpdates" /t REG_DWORD /d 1 /f

Обратите внимание: На UEFI системах выключить Virtualization Based Security после включения не так просто, придётся обновлять бут загрузчик, так как он впишется в него. Если вы решите отключить Hotpatch, то после удаления ключа EnableVirtualizationBasedSecurity потребуется также выполнить команды: bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS и bcdedit /set vsmlaunchtype off

После этого я удалю содержимое папки C:\Windows\SoftwareDistribution\Download и проверю наличие ключа AllowRebootlessUpdates:

Теперь, проверив обновления в Windows Update я вижу лишь одно «горячее»:

Установка проходит онлайн без необходимости перезагружаться:

Сразу же вижу, что ОС обновилась:

Имею ОС 26100.1656
Имею ОС 26100.1656

Запустив Windows Update, я не вижу других обновлений, так как они не «горячие»:

Более новые кумулятивные обновления и .NET обновления не видны, так как требуют перезагрузки
Более новые кумулятивные обновления и .NET обновления не видны, так как требуют перезагрузки

Обращу внимание, что для обновлений .NET начиная с 2024-08 в метаданные были внесены изменения, блокирующую их установку на Hotpatch системах.

Наконец, добавлю, что во время проверки обновлений, при включенном Hotpatch происходит чтение ключа реестра HKLM\SOFTWARE\Microsoft\Azure Connected Machine Agent\Windows\Licenses\Features\Hotpatch\Subscription. Возможно, в будущем планируется добавить некий механизм проверки подписки, – но так как это лишь ключ реестра, мы справимся с этим, когда придёт время.

Сейчас же, поговорим, наконец, об обновлениях Windows 11 24H2.

Известно, что код у Windows Server 2025 и Windows 11 24H2 общий, обновления у них тоже общие, так что мне стало интересно, можно ли обновлять Windows 11 без перезагрузок. Оказывается, да – можно. Есть нюансы. Разбираемся.

Во-первых, как и ранее, необходимо включить Virtualization Based Security и Hotpatching (код выше):

Разумеется, я также имею Windows 11 24H2 с установленным обновлением 9 июля 2024 г. — KB5040435 (сборка ОС 26100.1150) - Служба поддержки Майкрософт (microsoft.com).

Система не знает о «горячем» канале, так что я отключаю автоматическую установку обновлений, и загружаю вручную Windows11.0-KB5041570-x64.msu с UUPDump. Далее просто запускаю установку:

И, ура, установка проходит без перезагрузки:

Система обновлена, перезагрузка не потребовалась.

Следует помнить, что на данный момент нет метода, блокирующего установку не «горячих» обновлений с Windows Update, если автоматическая установка включена, он будет устанавливать все обновления и перезагружаться:

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

В заключение замечу, что «горячее» обновление KB5041570 (26100.1386), которое включает в себя «базовое» обновление KB5040435 (26100.1150) явилось не первым в своём роде. Ранее уже выходили «горячие» обновления KB5037970 (26100.500) и KB5039329 (26100.793) - оба на базе «базового» KB5036908 (26100.268)), на которых технология и была обкатана. Раз в квартал в первое «горячее» обновление включается новое «базовое», потому оно требует перезагрузки. Два следующих «горячих» основаны на том же «базовом», так что перезагрузки не требуют. Мне пока не очевидно, как устанавливать обновления, не попадающие в «горячий» канал, – например, .NET, я обязательно расскажу об этом позднее.

Итак, полтора месяца назад, начиная статью, которую я назвал тогда Azure Stack HCI — что такое, как улучшить и пользоваться / Хабр (habr.com) я обещал описать как использовать технологию Hot Patching для виртуальных машин, не покупая подписки, сегодня я хорошо перевыполнил тот план, так как не только рассказал как заставить Hot Patching работать на железе и в сторонней виртуализации, но и о том, как обновлять Windows 11 без перезагрузок. Задержка с публикацией была вызвана именно желанием дать качественный материал. В сухом остатке по теме горячих обновлений сейчас моя цель портировать компоненту Microsoft-Windows-Hotpatch-Targeting из серверной ОС в клиентскую, чтобы и там всё работало автоматом.

На этом по данной теме всё. Если остались вопросы, спрашивайте, – отвечу. Ставьте лайк, подписывайтесь. Предлагайте идеи для новых статей.

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud - в нашем Telegram-канале 

Перейти ↩

📚 Читайте также:

Tags:
Hubs:
+35
Comments12

Articles

Information

Website
timeweb.cloud
Registered
Founded
Employees
201–500 employees
Location
Россия
Representative
Timeweb Cloud