Как устранить неполадки в неотвечающем WSL2 на Windows 10?

Вопрос или проблема

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

В этом посте есть много информации, но я постарался организовать её по степени важности. Пожалуйста, обратите внимание, что пункты пронумерованы в том порядке, в котором я написал этот пост: “Симптомы”, “Информация о системе”, затем “Спустя 30-60 минут”.

Симптомы:

  1. Когда я пытаюсь запустить wsl.exe в PowerShell/cmd.exe, команда зависает:

    cmd.exe

    Я ждал, чтобы это что-то сделало, более 10 минут. То же самое происходит при попытке wsl.exe --shutdown:

    powershell

  2. Когда я запускаю терминал WSL, он открывает окно, но оно также не отвечает:

    WSL Terminal

  3. Я обычно не открываю терминал WSL напрямую. Обычно я открываю mintty.exe/wsltty через ярлык, который выполняет эту команду: %LOCALAPPDATA%\wsltty\bin\mintty.exe --tabbar=4 -o "KeyFunctions=t:new-window-cwd;w:close" --WSL="Ubuntu" --configdir="%APPDATA%\wsltty" -. Как и в других примерах, все они зависают:

    Ubuntu Terminal

Спустя 30-60 минут:

  1. Примерно через 30-60 минут после написания этого поста нижнее окно Ubuntu, которое вы видите в пункте 3, закрылось само по себе. Теперь верхнее окно Ubuntu говорит, что оно устанавливает, команда wsl.exe в cmd.exe выдала ошибку, но окно PowerShell остается неотзывчивым:

    enter image description here

    enter image description here

  2. Примерно через 10 минут команда wsl.exe в PowerShell также выдала ошибку:

    enter image description here

    Я думаю, что эта задержка связана с выполнением команды PowerShell примерно через десять минут после команды cmd.exe.

  3. Примерно через пять минут окно Ubuntu закрылось само по себе.

  4. Процесс vmmem.exe по-прежнему не работает, что меня беспокоит, но я пока ничего не пробовал.

  5. Магазин Microsoft говорит, что я использую эту версию Ubuntu. К сожалению, как я упоминал в пункте 10, я не знаю, отличается ли это от состояния до установки.

    enter image description here

  6. К сожалению, когда я пытаюсь что-либо сделать с WSL, у меня по-прежнему все те же симптомы, которые я описал в начале.

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

Информация о системе:

  1. Я установил (и обновил) WSL2 несколько месяцев назад и использую его почти ежедневно.

  2. Когда я захожу в диспетчер задач, я замечаю, что процесс vmmem.exe не работает. Это кажется важным, но я не знаю, как запустить его; я только вижу, как люди спрашивают, как остановить или перезапустить его, и все эти ответы используют wsl.exe. Как вы можете видеть в разделе Симптомы, я сейчас не могу использовать эту команду.

  3. Согласно диспетчеру задач, использование ЦП составляет около 0-5%. Когда я сортирую по загрузке, в убывающем порядке, я не вижу ничего, связанного с WSL2, в десятке лучших.

  4. Согласно диспетчеру задач, использование памяти составляет около 50%. Когда я сортирую по загрузке, в убывающем порядке, я не вижу ничего, связанного с WSL2, в десятке лучших.

  5. Обновление Windows говорит, что у меня всё в порядке (я проверял, пока писал это):

    enter image description here

  6. Было одно необязательное обновление, но по какой-то причине, когда я его устанавливаю, моя система больше не может подключаться к Интернету.

    enter image description here

  7. Я установил Ubuntu из Магазина Windows, и, судя по интерфейсу, ему не требуется обновление:

    enter image description here

    Я хотел бы точно узнать, какая версия установлена, но не знаю, как это найти в этом интерфейсе.

    Обновление: Теперь я вижу, что нужно прокрутить почти весь контент, чтобы найти эту информацию. К сожалению, я заметил это только после шага 12, так что не уверен, какая версия у меня была на момент написания этого пункта.

  8. Хотя Ubuntu установлена из Магазина Windows, WSL2 нет. Похоже, я скачал и установил его вручную. Согласно моим настройкам “Приложения и возможности”, я использую эту версию:

    enter image description here

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

не уверен, поможет ли это вам. если система зависает, убейте процессы. wsl, wslservice и wslhost. pslist и pskill из sysinternal работают отлично. один из них потребует повышенных прав для завершения, но как только он будет убит, я выполняю wsl –shutdown, а затем перезапускаю wsl, и, кажется, все в порядке.

Я столкнулся с этой проблемой некоторое время назад. Я переустановил дистрибутив, но проблема вернулась. Окончательное решение может заключаться в полной переустановке WSL. Однако, если вы не хотите этого делать, вы можете попробовать перезапустить службу “LxssManager”, так как проблема зависания WSL связана с тем, что эта служба застряла в состоянии остановки. Таким образом, вам нужно будет принудительно остановить ее, убив ее процесс; чтобы найти процесс службы, вы можете выполнить следующую команду

tasklist /svc /fi "imagename eq svchost.exe" | findstr LxssManager

После завершения этого процесса WSL должен начать работу без зависаний.

Следуйте этому руководству, начиная с шага 3 “Настройка WSL, Ubuntu и вспомогательных утилит”
https://ubuntu.com/landscape/docs/set-up-an-environment-to-use-wsl-with-landscape

Ответ или решение

Как устранить неполадки с неотзывчивым WSL2 в Windows 10?

Проблемы с Windows Subsystem for Linux 2 (WSL2) в Windows 10 могут быть неприятными, особенно если они возникают случайно и без видимых причин. В этом руководстве мы рассмотрим потенциальные методы диагностики и устранения неполадок, которые позволят вам справиться с этой проблемой, а также предложения по предотвращению её повторения.

1. Проверка симптомов

Сначала необходимо понять, с чем мы имеемся дело. Вы описали, что команда wsl.exe зависает, а также интерфейс WSL не отвечает. Основные симптомы включают:

  • Зависание командной строки cmd.exe и PowerShell при запуске wsl.exe или wsl.exe --shutdown.
  • Неполадки с терминалом WSL, включая зависание окон.
  • Процесс vmmem.exe не работает, что отражает отсутствие активности системы WSL.

2. Обнаружение и остановка зависших процессов

Одним из первых шагов в устранении неполадок является проверка и, при необходимости, завершение зависших процессов. Используйте Task Manager для нахождения процессов, связанных с WSL:

  1. Откройте Диспетчер задач (Ctrl + Shift + Esc).
  2. Найдите процессы wsl.exe, wslservice.exe, wslhost.exe и LxssManager.
  3. Если они висят и не отвечают, завершите их.

Если вы хотите выполнить это через командную строку, используйте утилиты Sysinternals:

pslist

или

pskill [PID]

3. Перезапуск службы LxssManager

WSL использует службу LxssManager, и её застревание в состоянии "остановки" может вызывать зависание WSL. Попробуйте перезапустить эту службу:

  1. Откройте командную строку с правами администратора.
  2. Выполните команду, чтобы найти процесс LxssManager:
tasklist /svc /fi "imagename eq svchost.exe" | findstr LxssManager
  1. Запомните PID, а затем завершите процесс:
taskkill /PID [PID] /F

После этого попробуйте снова запустить WSL.

4. Перезагрузка WSL

Как только процессы завершены, используйте команду для перезапуска WSL:

wsl --shutdown

5. Проверка обновлений и целостности системы

Необходимо убедиться, что все компоненты обновлены и не содержат ошибок:

  • Проверьте наличие обновлений Windows в Параметрах > Обновление и безопасность.
  • Выполните команды для проверки целостности системных файлов:
sfc /scannow

6. Перенастройка WSL

Если проблема повторяется, может помочь полная переустановка WSL:

  1. Откройте PowerShell с администраторскими правами.
  2. Выполните команду:
wsl --unregister <дистрибутив>
wsl --install

7. Визуализация ресурсов WSL

Проверьте, есть ли какие-либо ограничения по ресурсам для WSL:

  • Убедитесь, что у вашего компьютера достаточно памяти и процессорных ресурсов для работы WSL.
  • Проверьте настройки виртуальной машины в файле .wslconfig.

Заключение

Проблемы с WSL могут быть вызваны множеством факторов, включая программные конфликты и ресурсные ограничения. Следуя предложенным шагам, вы сможете устранить текущие неполадки и предотвратить их повторное возникновение. Если ваши усилия не увенчались успехом, возможно, стоит обратиться в службу поддержки Microsoft для более глубокой диагностики. Своевременное обновление программного обеспечения и внимательная работа с системными службами помогут вам избежать осложнений в будущем.

Оцените материал
Добавить комментарий

Капча загружается...