У меня есть Подсистема Windows для Linux, но я не знаю, какая версия у меня есть, и многие вещи не будут работать в версии 1. Как мне проверить свою версию?
-
В командной строке Windows 10 запустите
ver
. Является предпоследней версией числовой группы 18917 или выше? Если это так, то это возможный у вас есть WSL 2, но еще нет проверенный. Переходите к шагу А или B.
Если вы это сделаете нет смотрите Windows версии 18917 или выше, у вас есть версия 1.
Это иллюстрирует результат, когда ОС имеет сборку 16299:A. Открытые окна PowerShell или cmd и введите команду
wsl -l -v
. Если версия 2 установлена правильно, вы увидите номер версии. Если вы не видите номер версии или если вы видите сообщение об ошибке (спасибо, Роговица Валентин) у вас есть версия 1 (вы также можете увидеть номер версии "1", который может указывать на то, что вы используете версию v1 - см. здесь). Удалите его, а затем переустановите в соответствии с https://scotch.io/bar-talk/trying-the-new-wsl-2-its-fast-windows-subsystem-for-linuxB. Из командной строки WSL запустите
uname
илиuname -r
. Если версия ядра >= 4.19, это версия WSL 2.
Почему это имеет отношение к делу?
WSL 1 был основан на совместимом с Linux интерфейсе ядра Microsoft, а уровень перевода совместимости с нет ядра Linux код.
WSL 2 был переработан с использованием ядра Linux, работающего в облегченной среде виртуальной машины, и новаторы нашли еще много вещей, которые они могут сделать с помощью WSL 2.
Windows 10 версии 2004 (сборка 19041.153 и более поздние версии) дополнительно расширяет возможности WSL2; см. https://devblogs.microsoft.com/commandline/wsl2-will-be-generally-available-in-windows-10-version-2004/ и https://winaero.com/blog/wsl2-will-ship-with-windows-10-version-2004-with-kernel-updates-via-windows-update/ .
- Откройте PowerShell
- Проверьте версию с помощью
wsl -l -v
- Если в версии 1, то обновите версию с помощью
wsl --set-version Ubuntu-20.04 2
Примечание: Изменение версии запущенной операционной системы приведет к ее завершению.Название операционной системы не обязательно должно быть Ubuntu-20.04 для вас. Пожалуйста, выберите фактическое имя, указанное в wsl -l -v
Если вы не можете обновиться до версии 2, возможно, вы не используете ядро WSL 2. Это может быть загружено из Microsoft.
В версии WSL, которую я запускал, я просто набрал uname -r
на что я получил результат
5.4.72-microsoft-standard-WSL2
Итак, я могу сказать, что это WSL2, так что вы можете попробовать запустить uname -r
и проверь.
Если вы случайно используете Docker для Windows и у вас есть WSL 1, то если вы введете docker
в терминале для вашего WSL вы увидите сообщение The command 'docker' could not be found in this WSL 1 distro.
, что является очень четким подтверждением.
@BrainSlugs83 Чрезвычайно хрупкий, но работает для меня! В WSL1 uname -r
заканчивается на -Microsoft
, в WSL2 он заканчивается на -microsoft-standard
… строчная буква “м”!
@Rinzwind Вы можете присоединиться ко мне с просьбой о таком в How to tell in Linux under WSL if using WSL1 vs WSL2 ? · Issue #4555 · microsoft/WSL · GitHub
@Rinzwind Если вопрос по теме, то и ответы на этот вопрос тоже. Если кто-то спросит, как создать загрузочный USB-накопитель Ubuntu в Windows, то этот вопрос по теме, как и все ответы на него, даже если в ответах упоминается unetbootin.exe . То же самое и с WSL.
@Rinzwind Любые вопросы, касающиеся WSL, в том числе о том, как его установить, на мой взгляд, актуальны.
Из этого потока, похоже, работает следующая команда bash:
uname -r | grep Microsoft > /dev /null && echo "WSL1"
. – Это довольно простой способ обнаружить его, но он напечатает “WSL1”, если это то, что вы используете.
Я бы, по крайней мере, ожидал, что будет доступна wsl --version
…
@Flimm нет, если ответ лежит за пределами wsl. Как только кто-то упоминает powershell, это не по теме, мы НЕ должны знать ничего, что является инструментом в Windows.