WSL 2.9.11 — перезапуск контейнеров и исправления монтирования файлов

Microsoft представила предварительную версию WSL 2.9.11 8 сентября 2026 года. В этом обновлении появилась функция перезапуска контейнеров на runtime-уровне, устранена проблема с монтированием DrvFs в режиме «только для чтения» и исправлены ошибки Plan9 и сборки образов в WSLC. Особое значение релиз имеет для разработчиков, работающих с контейнерами и общими файловыми системами Windows и Linux.

WSL версия 2.9.11
WSL версия 2.9.11

WSL 2.9.11 — небольшой релиз с тремя изменениями

В официальном списке изменений WSL 2.9.11 указаны три пункта: поддержка container restart runtime, исправление p9/DrvFs и устранение ошибок WSLC Plan9 mount и image-build. Релиз опубликован 8 сентября, а его статус на GitHub — Pre-release. Это обновление самой Windows Subsystem for Linux, а не новая версия Ubuntu или другого установленного дистрибутива.

Предыдущая предварительная версия, 2.9.10, вышла 4 сентября. В ней были изменения командного интерфейса WSLC, совместимости с Docker, обработки сетевых маршрутов и другие исправления. Версия 2.9.11 сосредоточена на более узких задачах: жизненном цикле контейнеров и корректной работе файловых ресурсов.

КомпонентЧто изменилосьПрактический смысл
WSLC runtimeДобавлена операция перезапуска контейнераОстановку и повторный запуск можно выполнять как одну согласованную операцию
DrvFs / Plan9Исправлена передача параметра roВосстанавливается корректное монтирование общих ресурсов в режиме только для чтения
WSLC / Plan9Изменён механизм создания общих ресурсовУстраняются ошибки подключения файловых ресурсов и связанные сбои сборки образов

Перезапуск контейнеров получил отдельную операцию runtime

Главное функциональное изменение WSL 2.9.11 — реализация Restart() в сервисном слое WSLC. Согласно pull request #41454, операция останавливает контейнер, ожидает его завершения и запускает снова, не позволяя внешним вызовам Stop() и Start() вклиниться между этими фазами.

Это отличается от простой последовательности двух независимых команд. Если несколько процессов управляют одним контейнером, отдельные операции остановки и запуска могут пересечься с другими действиями. Новый механизм согласует переходы состояния и предусматривает обработку ситуаций, когда контейнер удаляется во время перезапуска. На уровне COM-интерфейса добавлен метод Restart(Signal, TimeoutSeconds, WarningCallback).

Почему важны порты и тома

При разработке перезапуска учитывалось сохранение уже выделенных ресурсов. В составе изменений есть исправление, позволяющее не освобождать и не захватывать повторно порты и монтирования при штатном restart. Иначе между остановкой и запуском другой процесс мог бы занять порт, а повторное подключение тома — завершиться ошибкой. Это особенно существенно для локальных сервисов с опубликованными портами и bind mounts.

При этом речь идёт именно о новом механизме WSLC, а не об изменении команды docker restart или обязательной замене Docker Desktop. WSLC — отдельный предварительный контейнерный интерфейс, встроенный в WSL. Поддержка командного слоя wslc restart разрабатывается отдельно от runtime API; поэтому описание релиза не следует трактовать как обещание полной совместимости всех сценариев Docker.

DrvFs — исправлена регрессия режима только для чтения

Второе изменение возвращает корректное монтирование DrvFs через Plan9 с параметром ro. Исправление #41487 связано с регрессией, появившейся после изменения обработки параметров монтирования: опция ;ro передавалась серверу Plan9 на стороне Windows, хотя тот её не поддерживает. В результате операция могла завершаться ошибкой.

Исправление разделяет обработку параметров для Plan9 и virtiofs. Для Plan9 неподдерживаемая опция больше не передаётся серверу, а для virtiofs сохраняется необходимая настройка доступа на стороне хоста. Разработчики также добавили регрессионные тесты для обоих режимов.

Для пользователя это означает восстановление сценариев, в которых каталог Windows подключается в Linux только для чтения. Например, такой режим может применяться к исходным данным или общим файлам, которые приложение должно читать, но не изменять. Исправление не означает, что все ошибки DrvFs или все проблемы доступа к дискам устранены: в release notes речь идёт о конкретной регрессии.

WSLC — исправлены Plan9 и сборка образов

Третье изменение касается подключения файловых ресурсов при работе контейнеров. В pull request #41535 разработчики описали ситуацию, когда после обновления Windows общие ресурсы Plan9, управляемые через HCS, перестали подключаться с ошибкой EINVAL. В тестах плагинов WSLC и сборки образов это проявлялось как E_FAIL.

Исправление переводит создание и удаление общих ресурсов WSLC на уже существующий в WSL механизм Plan9-сервера, работающего от имени пользователя сеанса. Такой подход сохраняет права доступа пользователя Windows к файлам. Дополнительно добавлена проверка, подтверждающая, что запрет чтения файла на стороне Windows корректно соблюдается и при обращении из Linux.

Практический эффект — более надёжная работа файловых подключений, от которых зависят контейнерные сценарии и сборка образов. При этом разработчики рассматривают выбранный механизм как решение текущей проблемы: в обсуждении исправления отмечена возможность вернуться к прежнему варианту после устранения причины на стороне Windows.

Что это означает для обычного пользователя WSL

Если WSL используется для терминала Ubuntu, PHP, Python, Git или других Linux-инструментов, обновление не обязательно принесёт заметные изменения. Основные исправления относятся к контейнерной инфраструктуре и отдельным сценариям доступа к файлам. Пользователям, которые не сталкивались с такими ошибками, нет необходимости переходить на предварительную версию только ради этого выпуска.

Для разработчиков, тестирующих WSLC, релиз интереснее. Встроенный wslc.exe позволяет собирать и запускать контейнеры непосредственно через WSL; эта функциональность находится в предварительном доступе. Подробности приведены в официальном руководстве Microsoft по контейнерам WSL. Обновление 2.9.11 продолжает развитие этой ветки, но не превращает её в стабильный выпуск.

Как проверить и установить обновление

Текущую версию WSL можно посмотреть в PowerShell:

wsl --version

Для установки последней предварительной версии Microsoft документирует команду:

wsl --update --pre-release

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

Резюме

WSL 2.9.11 — это предварительное обновление, которое вносит три конкретные модификации, а не полноценный релиз Linux-подсистемы. Оно особенно полезно для тех, кто занимается тестированием WSLC, сталкивается с ошибками Plan9 или использует монтирование DrvFs исключительно для чтения. Для обеспечения стабильной работы без этих проблем рекомендуется оставаться на стандартном канале обновлений и переходить на preview-версию только после тщательной проверки необходимых сценариев.

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

Вам также может понравиться