- Вопрос или проблема
- Симптомы:
- Спустя 30-60 минут:
- Информация о системе:
- Ответ или решение
- Как устранить неполадки с неотзывчивым WSL2 в Windows 10?
- 1. Проверка симптомов
- 2. Обнаружение и остановка зависших процессов
- 3. Перезапуск службы LxssManager
- 4. Перезагрузка WSL
- 5. Проверка обновлений и целостности системы
- 6. Перенастройка WSL
- 7. Визуализация ресурсов WSL
- Заключение
Вопрос или проблема
Обычно WSL2 работает нормально, но, возможно, раз в месяц или два он становится абсолютно неотзывчивым, и я не уверен, почему. Обычно перезагрузка всего компьютера фиксирует это, но мне хотелось бы узнать, есть ли способ устранить эту проблему и, в идеале, предотвратить её возникновение. Я также хочу узнать, может ли это быть вызвано повреждением системы.
В этом посте есть много информации, но я постарался организовать её по степени важности. Пожалуйста, обратите внимание, что пункты пронумерованы в том порядке, в котором я написал этот пост: “Симптомы”, “Информация о системе”, затем “Спустя 30-60 минут”.
Симптомы:
-
Когда я пытаюсь запустить wsl.exe в PowerShell/cmd.exe, команда зависает:
Я ждал, чтобы это что-то сделало, более 10 минут. То же самое происходит при попытке
wsl.exe --shutdown
: -
Когда я запускаю терминал WSL, он открывает окно, но оно также не отвечает:
-
Я обычно не открываю терминал WSL напрямую. Обычно я открываю mintty.exe/wsltty через ярлык, который выполняет эту команду:
%LOCALAPPDATA%\wsltty\bin\mintty.exe --tabbar=4 -o "KeyFunctions=t:new-window-cwd;w:close" --WSL="Ubuntu" --configdir="%APPDATA%\wsltty" -
. Как и в других примерах, все они зависают:
Спустя 30-60 минут:
-
Примерно через 30-60 минут после написания этого поста нижнее окно Ubuntu, которое вы видите в пункте 3, закрылось само по себе. Теперь верхнее окно Ubuntu говорит, что оно устанавливает, команда
wsl.exe
в cmd.exe выдала ошибку, но окно PowerShell остается неотзывчивым: -
Примерно через 10 минут команда
wsl.exe
в PowerShell также выдала ошибку:Я думаю, что эта задержка связана с выполнением команды PowerShell примерно через десять минут после команды cmd.exe.
-
Примерно через пять минут окно Ubuntu закрылось само по себе.
-
Процесс vmmem.exe по-прежнему не работает, что меня беспокоит, но я пока ничего не пробовал.
-
Магазин Microsoft говорит, что я использую эту версию Ubuntu. К сожалению, как я упоминал в пункте 10, я не знаю, отличается ли это от состояния до установки.
-
К сожалению, когда я пытаюсь что-либо сделать с WSL, у меня по-прежнему все те же симптомы, которые я описал в начале.
-
Я собираюсь перезагрузить сейчас, но если это решит проблему, это ограничит мою возможность предоставлять информацию, пока это не произойдет снова. Я экспортировал список работающих услуг в файл, на случай, если это поможет увидеть, что было активно во время этой проблемы.
Информация о системе:
-
Я установил (и обновил) WSL2 несколько месяцев назад и использую его почти ежедневно.
-
Когда я захожу в диспетчер задач, я замечаю, что процесс vmmem.exe не работает. Это кажется важным, но я не знаю, как запустить его; я только вижу, как люди спрашивают, как остановить или перезапустить его, и все эти ответы используют
wsl.exe
. Как вы можете видеть в разделе Симптомы, я сейчас не могу использовать эту команду. -
Согласно диспетчеру задач, использование ЦП составляет около 0-5%. Когда я сортирую по загрузке, в убывающем порядке, я не вижу ничего, связанного с WSL2, в десятке лучших.
-
Согласно диспетчеру задач, использование памяти составляет около 50%. Когда я сортирую по загрузке, в убывающем порядке, я не вижу ничего, связанного с WSL2, в десятке лучших.
-
Обновление Windows говорит, что у меня всё в порядке (я проверял, пока писал это):
-
Было одно необязательное обновление, но по какой-то причине, когда я его устанавливаю, моя система больше не может подключаться к Интернету.
-
Я установил Ubuntu из Магазина Windows, и, судя по интерфейсу, ему не требуется обновление:
Я хотел бы точно узнать, какая версия установлена, но не знаю, как это найти в этом интерфейсе.
Обновление: Теперь я вижу, что нужно прокрутить почти весь контент, чтобы найти эту информацию. К сожалению, я заметил это только после шага 12, так что не уверен, какая версия у меня была на момент написания этого пункта.
-
Хотя Ubuntu установлена из Магазина Windows, WSL2 нет. Похоже, я скачал и установил его вручную. Согласно моим настройкам “Приложения и возможности”, я использую эту версию:
Если
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:
- Откройте Диспетчер задач (Ctrl + Shift + Esc).
- Найдите процессы
wsl.exe
,wslservice.exe
,wslhost.exe
иLxssManager
. - Если они висят и не отвечают, завершите их.
Если вы хотите выполнить это через командную строку, используйте утилиты Sysinternals:
pslist
или
pskill [PID]
3. Перезапуск службы LxssManager
WSL использует службу LxssManager, и её застревание в состоянии "остановки" может вызывать зависание WSL. Попробуйте перезапустить эту службу:
- Откройте командную строку с правами администратора.
- Выполните команду, чтобы найти процесс LxssManager:
tasklist /svc /fi "imagename eq svchost.exe" | findstr LxssManager
- Запомните PID, а затем завершите процесс:
taskkill /PID [PID] /F
После этого попробуйте снова запустить WSL.
4. Перезагрузка WSL
Как только процессы завершены, используйте команду для перезапуска WSL:
wsl --shutdown
5. Проверка обновлений и целостности системы
Необходимо убедиться, что все компоненты обновлены и не содержат ошибок:
- Проверьте наличие обновлений Windows в Параметрах > Обновление и безопасность.
- Выполните команды для проверки целостности системных файлов:
sfc /scannow
6. Перенастройка WSL
Если проблема повторяется, может помочь полная переустановка WSL:
- Откройте PowerShell с администраторскими правами.
- Выполните команду:
wsl --unregister <дистрибутив>
wsl --install
7. Визуализация ресурсов WSL
Проверьте, есть ли какие-либо ограничения по ресурсам для WSL:
- Убедитесь, что у вашего компьютера достаточно памяти и процессорных ресурсов для работы WSL.
- Проверьте настройки виртуальной машины в файле
.wslconfig
.
Заключение
Проблемы с WSL могут быть вызваны множеством факторов, включая программные конфликты и ресурсные ограничения. Следуя предложенным шагам, вы сможете устранить текущие неполадки и предотвратить их повторное возникновение. Если ваши усилия не увенчались успехом, возможно, стоит обратиться в службу поддержки Microsoft для более глубокой диагностики. Своевременное обновление программного обеспечения и внимательная работа с системными службами помогут вам избежать осложнений в будущем.