n1ro°
RU

Текст и данные · Инструкция

WSL distributionStartTimeout: увеличить время запуска

WSL distributionStartTimeout — точечная настройка WSL 2, а не универсальное ускорение системы. Ключ `distributionStartTimeout` задаёт ожидание запуска дистрибутива; по умолчанию 60000 мс. Менять его стоит, когда дистрибутив стартует дольше минуты из-за тяжёлых служб.

Редакция N1RO · Проверено

Короткий ответ

В `%UserProfile%\.wslconfig` задайте `distributionStartTimeout=120000`, затем выполните `wsl --shutdown` и снова запустите WSL. Таймаут не должен скрывать зависшую службу.

Что делает `distributionStartTimeout` в WSL 2

`distributionStartTimeout` относится к глобальным настройкам WSL 2. Задаёт ожидание запуска дистрибутива; по умолчанию 60000 мс. Это не то же самое, что `/etc/wsl.conf`: тот файл относится к отдельному дистрибутиву, а `.wslconfig` лежит в профиле Windows. Практический смысл настройки появляется, когда дистрибутив стартует дольше минуты из-за тяжёлых служб. Если измеримого симптома нет, значение по умолчанию обычно лучше дополнительной нестандартной переменной. Перед изменением запишите текущее состояние и тест, по которому будете сравнивать результат.

Совет: Сохраните копию `.wslconfig` и меняйте один ключ за раз. Так проще понять, что именно повлияло на систему.

Как задать `distributionStartTimeout` и применить конфигурацию

  1. Откройте PowerShell и выполните `notepad $env:USERPROFILE\.wslconfig`; если файла нет, создайте его без расширения `.txt`.
  2. В секции `[wsl2]` добавьте `distributionStartTimeout=120000`. Если `distributionStartTimeout` уже есть, измените существующую строку, а не создавайте дубликат.
  3. Сохраните файл и закройте работающие Linux-процессы, чтобы не потерять несохранённую работу.
  4. В Windows выполните `wsl --shutdown`. Простого закрытия окна терминала недостаточно, потому что VM может продолжать работать.
  5. Запустите дистрибутив снова и проверьте результат: измерьте время до готовой оболочки и после старта проверьте `systemctl --failed`, если используется systemd.

Предупреждение: Таймаут не должен скрывать зависшую службу. Если результат ухудшился, верните прежнее значение, снова выполните `wsl --shutdown` и повторите исходный тест.

Как проверить эффект `distributionStartTimeout` после перезапуска

Не меняйте одновременно память, сеть, ядро и `distributionStartTimeout`. Сначала воспроизведите проблему, зафиксируйте результат, затем примените только эту правку. После перезапуска выполните тот же сценарий: измерить старт и проверить `systemctl --failed`. Если улучшение не повторяется, причина может быть в службе дистрибутива, Windows-драйвере, VPN, файловой системе или другой части стека. Возврат к дефолту уменьшит число переменных и упростит следующую диагностику. Для длительного использования оставляйте параметр только при устойчивом, понятном результате.

Важно: Критерий успеха должен быть измеримым: время старта, число CPU, доступность сети, наличие модуля или созданный лог, а не ощущение «стало лучше».

Что зафиксировать до изменения `distributionStartTimeout`

Перед правкой выполните `wsl -l -v` и запишите исходное поведение. Для `distributionStartTimeout` важно иметь один повторяемый тест: измерьте время до готовой оболочки и после старта проверьте `systemctl --failed`, если используется systemd. Это позволит сравнить состояние до и после, а не оценивать изменение по общему впечатлению.

Как откатить `distributionStartTimeout` без переустановки дистрибутива

Верните прежнюю строку или удалите явный `distributionStartTimeout`, сохраните `.wslconfig` и выполните `wsl --shutdown`. После нового запуска WSL снова применит значение по умолчанию: 60000 мс. Файлы Linux при таком откате не удаляются.

Какая ошибка чаще всего мешает проверить `distributionStartTimeout`

Не меняйте одновременно соседние параметры `.wslconfig`. Если вместе с `distributionStartTimeout` изменить сеть, память или ядро, источник эффекта потеряется. Сначала меняйте только этот ключ, затем повторяйте тот же тест: измерьте время до готовой оболочки и после старта проверьте `systemctl --failed`, если используется systemd.

Когда оставить `distributionStartTimeout`, а когда откатить

  • `.wslconfig` находится в `%UserProfile%` Windows
  • настройка относится к WSL 2, а не WSL 1
  • после изменения выполнен `wsl --shutdown`
  • проверена именно исходная задача, а не случайный соседний симптом
  • старое значение сохранено для быстрого отката

Что учитывать

Условия меняются. Страница отражает состояние на 2026-09-23; при расхождении с официальной документацией приоритет у первоисточника.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. Advanced settings configuration in WSL). Пример и формулировки — редакция N1RO на 2026-09-23.