Сегодня хочу поговорить с вами о наболевшем, об обновлениях 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-канале 

Перейти ↩

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

Комментарии (12)


  1. dartraiden
    24.09.2024 13:20

    Однако, перезагрузки безумно напрягают.

    Никогда не понимал, почему домашних пользователей это напрягает. Рассказы про Очень Важные Процессы Которые Ни В Коем Случае Нельзя Прерывать, почти всегда оказываются фантазиями. Нет, почти всегда это просто "ну я тут срусь на хабре, мысль ухватил, мне впадлу перезагрузиться". Ничего страшного в этом нет, наоборот, лишний повод пойти размяться и разогнать кровь, а то геморрой не дремлет.

    Перезагрузка раз в квартал тут ничего не меняет - именно в этот момент у человека снова будут Очень Важные Дела, когда ему надо сидеть и вводить 4 8 15 16 23 42, а оно тут со своими обновлениями.

    На серверах, впрочем, это тоже не так страшно. Если это что-то настолько критичное, что не может быть погашено ни на секунду, то там не один сервер и их можно обновить по очереди.


    1. akibkalo Автор
      24.09.2024 13:20
      +2

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

      В крупных компаниях за перевыполнение SLA админ получает премию, а за невыполнение штаф.

      Даже в небольшой инфраструктуре согласовать перезагрузку сервера под нагрузкой тот самый геморрой )

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


      1. dartraiden
        24.09.2024 13:20

        В крупных компаниях за перевыполнение SLA админ получает премию, а за невыполнение штаф.

        Даже в небольшой инфраструктуре согласовать перезагрузку сервера под нагрузкой тот самый геморрой )

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


        1. akibkalo Автор
          24.09.2024 13:20
          +1

          Это вы объясните клиенту, у которого выбор размещения сервиса на одиночном сервере за рубль или на кластере (где обновлени не страшны) за рубль и копейку.

          Народ оплачивает самое дешевое, а SLA хотят четыре девятки (5 минут недоступности в год). Если грамотно настроить Kernel Soft Reboot, чтобы сервер перезагружался при установке обновлений за 30-40 секунд, то теперь мы отлично влезаем в эту категорию.

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


          1. Mike-M
            24.09.2024 13:20

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

            Не факт. Проблема с обновлениями не только в необходимости перезагрузки. Они зачастую действуют по принципу «одно лечим, другое калечим».


    1. Marwin
      24.09.2024 13:20
      +2

      имхо, у вас опечатка в слове "домашних"... Правильно "удалёнщиков". У меня вот типичный сценарий: в понедельник открыл все vs студии, sql студии и прочее барахо, десяток инстансов блокнота с временными кусками кода. Во всех редакторах временные несохраненные запросы, запущенные в фоне утилиты, которые что-то считают, запущенные консоли с нужными для текущих задач путями и прочее и прочее. В пятницу это добро разгребается и закрывается, рабочие часы заполняются. Всё, можно ребутаться ))

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


      1. dartraiden
        24.09.2024 13:20

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


    1. navion
      24.09.2024 13:20
      +3

      Никогда не понимал, почему домашних пользователей это напрягает.

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

      В Windows XP обновления хотя бы ставились в фоне и перезагрузка после WU не отличалась от обычного включения компьютера.


    1. Balling
      24.09.2024 13:20

      Ну может у вас ipfs/btfs нода, или там что-то что требует 24/7 идеально...


      1. dartraiden
        24.09.2024 13:20

        На десктопе с виндой? Скорее, такое будет на каком-нибудь сервере в кладовке.


  1. Taenarus
    24.09.2024 13:20
    +1

    Хотел было Вам попенять за ControlSet001, но, гляжу, и в Майкрософт так же. Пропала планета...


    1. akibkalo Автор
      24.09.2024 13:20
      +1

      Дело в том, что если это делать для образа WIM, то там нет CurrentControlSet, - а с ControlSet001 будет работать и оффлайн.

      Как говорят, это не баг, а фича :)