Environment
C:\Users\Liu.D.H>ver Microsoft Windows [Version 10.0.19041.264] C:\Users\Liu.D.H>bcdedit Windows Boot Manager -------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume1 description Windows Boot Manager locale en-US inherit {globalsettings} default {current} resumeobject {8c132511-806f-11e9-8860-f798d1b7a8f1} displayorder {current} {89f269f4-cc9f-11e6-8727-64006a16df31} {8c132516-806f-11e9-8860-f798d1b7a8f1} toolsdisplayorder {memdiag} timeout 5 Windows Boot Loader ------------------- identifier {current} device partition=C: path \WINDOWS\system32\winload.exe description Windows 10 locale en-US inherit {bootloadersettings} recoverysequence {8c132514-806f-11e9-8860-f798d1b7a8f1} displaymessageoverride Recovery recoveryenabled Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \WINDOWS resumeobject {8c132511-806f-11e9-8860-f798d1b7a8f1} nx OptIn bootmenupolicy Legacy hypervisorlaunchtype Off Windows Boot Loader ------------------- identifier {89f269f4-cc9f-11e6-8727-64006a16df31} device partition=\Device\HarddiskVolume1 path \Windows\system32\winload.exe description Windows 7 locale zh-CN inherit {bootloadersettings} osdevice partition=\Device\HarddiskVolume1 systemroot \Windows resumeobject {89f269f3-cc9f-11e6-8727-64006a16df31} nx OptIn detecthal Yes Windows Boot Loader ------------------- identifier {8c132516-806f-11e9-8860-f798d1b7a8f1} device partition=C: path \WINDOWS\system32\winload.exe description Windows10 with Hyper-V locale en-US inherit {bootloadersettings} recoverysequence {8c132514-806f-11e9-8860-f798d1b7a8f1} displaymessageoverride Recovery recoveryenabled Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \WINDOWS resumeobject {8c132511-806f-11e9-8860-f798d1b7a8f1} nx OptIn bootmenupolicy Legacy hypervisorlaunchtype Auto C:\Users\Liu.D.H>systeminfo Host Name: DESKTOP-LDH OS Name: Microsoft Windows 10 Education OS Version: 10.0.19041 N/A Build 19041 OS Manufacturer: Microsoft Corporation OS Configuration: Standalone Workstation OS Build Type: Multiprocessor Free Registered Owner: Windows User Registered Organization: Product ID: 00328-10000-00001-AA635 Original Install Date: 2020-05-11, 22:13:14 System Boot Time: 2020-06-08, 10:12:11 System Manufacturer: Dell Inc. System Model: Vostro 3900 System Type: x64-based PC Processor(s): 1 Processor(s) Installed. [01]: Intel64 Family 6 Model 60 Stepping 3 GenuineIntel ~3601 Mhz BIOS Version: Dell Inc. A10, 2015-07-30 Windows Directory: C:\WINDOWS System Directory: C:\WINDOWS\system32 Boot Device: \Device\HarddiskVolume1 System Locale: zh-cn;Chinese (China) Input Locale: zh-cn;Chinese (China) Time Zone: (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi Total Physical Memory: 16,301 MB Available Physical Memory: 9,703 MB Virtual Memory: Max Size: 33,709 MB Virtual Memory: Available: 26,300 MB Virtual Memory: In Use: 7,409 MB Page File Location(s): C:\pagefile.sys Domain: WORKGROUP Logon Server: \\DESKTOP-LDH Hotfix(s): 6 Hotfix(s) Installed. [01]: KB4552925 [02]: KB4534170 [03]: KB4537759 [04]: KB4545706 [05]: KB4557968 [06]: KB4556803 Network Card(s): 4 NIC(s) Installed. [01]: TAP-Windows Adapter V9 Connection Name: 以太网 Status: Media disconnected [02]: Realtek PCIe GBE Family Controller Connection Name: Ethernet_Realtek DHCP Enabled: Yes DHCP Server: 113.55.112.1 IP address(es) [01]: 113.55.127.140 [02]: fe80::3d0a:ecde:2178:d77c [03]: 2001:250:2800:cc09:6600:6aff:fe16:df31 [03]: Realtek RTL8188CU Wireless LAN 802.11n USB 2.0 Network Adapter Connection Name: Wi-Fi 2 Status: Media disconnected [04]: Microsoft KM-TEST Loopback Adapter Connection Name: Npcap Loopback Adapter DHCP Enabled: Yes DHCP Server: 255.255.255.255 IP address(es) [01]: 169.254.104.11 [02]: fe80::d8bf:11ab:7b05:680b Hyper-V Requirements: VM Monitor Mode Extensions: Yes Virtualization Enabled In Firmware: Yes Second Level Address Translation: Yes Data Execution Prevention Available: Yes C:\Users\Liu.D.H>
Steps to reproduce
Open Ubuntu 18.04 or 20.04.
Expected behavior
Works as expected.
Actual behavior
I can confirm that I have enabled
Virtual Machine Platform
andVT-x
. But the errors when I started Ubuntu is confused. And for some reasons I do not want to enable Hyper-V features. From the doc (https://docs.microsoft.com/en-us/windows/wsl/), it is not a requirement for WSL2.
Environment
C:\Users\Liu.D.H>ver Microsoft Windows [Version 10.0.19041.264] C:\Users\Liu.D.H>bcdedit Windows Boot Manager -------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume1 description Windows Boot Manager locale en-US inherit {globalsettings} default {current} resumeobject {8c132511-806f-11e9-8860-f798d1b7a8f1} displayorder {current} {89f269f4-cc9f-11e6-8727-64006a16df31} {8c132516-806f-11e9-8860-f798d1b7a8f1} toolsdisplayorder {memdiag} timeout 5 Windows Boot Loader ------------------- identifier {current} device partition=C: path \WINDOWS\system32\winload.exe description Windows 10 locale en-US inherit {bootloadersettings} recoverysequence {8c132514-806f-11e9-8860-f798d1b7a8f1} displaymessageoverride Recovery recoveryenabled Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \WINDOWS resumeobject {8c132511-806f-11e9-8860-f798d1b7a8f1} nx OptIn bootmenupolicy Legacy hypervisorlaunchtype Off Windows Boot Loader ------------------- identifier {89f269f4-cc9f-11e6-8727-64006a16df31} device partition=\Device\HarddiskVolume1 path \Windows\system32\winload.exe description Windows 7 locale zh-CN inherit {bootloadersettings} osdevice partition=\Device\HarddiskVolume1 systemroot \Windows resumeobject {89f269f3-cc9f-11e6-8727-64006a16df31} nx OptIn detecthal Yes Windows Boot Loader ------------------- identifier {8c132516-806f-11e9-8860-f798d1b7a8f1} device partition=C: path \WINDOWS\system32\winload.exe description Windows10 with Hyper-V locale en-US inherit {bootloadersettings} recoverysequence {8c132514-806f-11e9-8860-f798d1b7a8f1} displaymessageoverride Recovery recoveryenabled Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \WINDOWS resumeobject {8c132511-806f-11e9-8860-f798d1b7a8f1} nx OptIn bootmenupolicy Legacy hypervisorlaunchtype Auto C:\Users\Liu.D.H>systeminfo Host Name: DESKTOP-LDH OS Name: Microsoft Windows 10 Education OS Version: 10.0.19041 N/A Build 19041 OS Manufacturer: Microsoft Corporation OS Configuration: Standalone Workstation OS Build Type: Multiprocessor Free Registered Owner: Windows User Registered Organization: Product ID: 00328-10000-00001-AA635 Original Install Date: 2020-05-11, 22:13:14 System Boot Time: 2020-06-08, 10:12:11 System Manufacturer: Dell Inc. System Model: Vostro 3900 System Type: x64-based PC Processor(s): 1 Processor(s) Installed. [01]: Intel64 Family 6 Model 60 Stepping 3 GenuineIntel ~3601 Mhz BIOS Version: Dell Inc. A10, 2015-07-30 Windows Directory: C:\WINDOWS System Directory: C:\WINDOWS\system32 Boot Device: \Device\HarddiskVolume1 System Locale: zh-cn;Chinese (China) Input Locale: zh-cn;Chinese (China) Time Zone: (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi Total Physical Memory: 16,301 MB Available Physical Memory: 9,703 MB Virtual Memory: Max Size: 33,709 MB Virtual Memory: Available: 26,300 MB Virtual Memory: In Use: 7,409 MB Page File Location(s): C:\pagefile.sys Domain: WORKGROUP Logon Server: \\DESKTOP-LDH Hotfix(s): 6 Hotfix(s) Installed. [01]: KB4552925 [02]: KB4534170 [03]: KB4537759 [04]: KB4545706 [05]: KB4557968 [06]: KB4556803 Network Card(s): 4 NIC(s) Installed. [01]: TAP-Windows Adapter V9 Connection Name: 以太网 Status: Media disconnected [02]: Realtek PCIe GBE Family Controller Connection Name: Ethernet_Realtek DHCP Enabled: Yes DHCP Server: 113.55.112.1 IP address(es) [01]: 113.55.127.140 [02]: fe80::3d0a:ecde:2178:d77c [03]: 2001:250:2800:cc09:6600:6aff:fe16:df31 [03]: Realtek RTL8188CU Wireless LAN 802.11n USB 2.0 Network Adapter Connection Name: Wi-Fi 2 Status: Media disconnected [04]: Microsoft KM-TEST Loopback Adapter Connection Name: Npcap Loopback Adapter DHCP Enabled: Yes DHCP Server: 255.255.255.255 IP address(es) [01]: 169.254.104.11 [02]: fe80::d8bf:11ab:7b05:680b Hyper-V Requirements: VM Monitor Mode Extensions: Yes Virtualization Enabled In Firmware: Yes Second Level Address Translation: Yes Data Execution Prevention Available: Yes C:\Users\Liu.D.H>
Steps to reproduce
Open Ubuntu 18.04 or 20.04.
Expected behavior
Works as expected.
Actual behavior
I can confirm that I have enabled
Virtual Machine Platform
andVT-x
. But the errors when I started Ubuntu is confused. And for some reasons I do not want to enable Hyper-V features. From the doc (https://docs.microsoft.com/en-us/windows/wsl/), it is not a requirement for WSL2.
How did you get all the environment info of your machine?
I tried to install ubuntu 22.04 from the windows store but I get the following error:
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/wsl2-install
Press any key to continue...
however both the Virtual Machine Platform windows feature is enabled and so is virtualization in the BIOS. Can there be anything else causing this error?
asked Mar 13 at 11:27
I’d definitely recommend trying @Dick’s answer first if you are having this problem, but another option when this occurs is:
- Go to Turn Windows features on or off in the Settings.
- See if the Hyper-V option is selected, and deselect it if so.
- Also deselect the Virtual Machine Platform at the same time.
- Reboot
- Re-enable the Virtual Machine Platform and reboot again.
Try WSL2.
If that works, and you need Hyper-V enabled on your system for other tasks, you should be able to:
- Deselect Virtual Machine Manager
- Re-select Hyper-V
- Reboot
WSL2 can make use of either VMP or Hyper-V.
If the above doesn’t work, at the very least you’ll have some more data points for additional trouble-shooting.
answered Mar 13 at 13:06
NotTheDr01dsNotTheDr01ds
15.8k6 gold badges52 silver badges80 bronze badges
Found this on another form online
Ran this command:
bcdedit /set hypervisorlaunchtype auto
rebooted and ubuntu launched. I didn’t look into what the command actually does, so if someone would like to answer with additional details I’ll accept the answer.
answered Mar 13 at 11:57
DickDick
291 gold badge2 silver badges7 bronze badges
1
You must log in to answer this question.
Not the answer you’re looking for? Browse other questions tagged
.
Not the answer you’re looking for? Browse other questions tagged
.
You need to enable the Virtual Machine Platform Windows feature to use WSL 2. If this is not done, then you will get the following error:
wsl --set-version kali-linux 2
Conversion in progress, this may take a few minutes...
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
To enable WSL 2, Open the Windows Features window by navigating to Control Panel | Programs | Turn Windows feature on or off.
Ensure that the Virtual Machine Platform and Windows Subsystem for Linux features are selected.
After clicking on the OK button, Windows will enable WSL 2.
If you want to install WSL 2 on a Windows 10 virtual machine, the virtual machine should support nested virtualization.
With VirtualBox, right-click the VM and choose Settings. In the System section, under the Processor tab, check the box: Enable Nested VT-x/AMD-V.
On VMware Workstation, right-click the VM and choose Settings. In the Hardware section, under the Processor, make sure the Virtualize Intel VT-x/EPT or AMD-V/RVI checkbox is enabled.
You also have to make sure virtualization is enabled in the BIOS (Intel Virtualization Technology or SVM Mode in AMD).
Включение технологии виртуализации вам может потребоваться при необходимости использовать Android эмулятор или виртуальные машины, а, возможно, и для других задач, но не каждый начинающий пользователь знает, как именно это сделать.
В этой инструкции подробно о том, как включить виртуализацию в БИОС/UEFI и о возможных проблемах, которые могут возникнуть при её включении на компьютерах и ноутбуках с Windows 10, 8.1 или Windows 7.
- Включение виртуализации в БИОС/UEFI
- Проблемы при включении виртуализации
- Видео инструкция
Включение виртуализации в БИОС/UEFI компьютера или ноутбука
Основное действие для включения виртуализации — включить соответствующую опцию в БИОС/UEFI. Эта опция может носить название Virtualization, Intel Virtualization Technology, Intel VT-x, AMD-v и находиться в слегка разных разделах настроек БИОС, но логика действия всегда будет одной и той же:
- Зайдите в БИОС компьютера или ноутбука. Обычно на ПК это делается нажатием клавиши Del, на ноутбуке — F2 или F10 (иногда в сочетании с клавишей Fn). В Windows 10 простой вход может не получиться, тогда можно использовать способ входа в UEFI через особые варианты загрузки, подробнее: Как зайти в БИОС/UEFI Windows 10.
- После входа найдите, где включается опция виртуализации (далее будут показаны некоторые примеры), включите её (установите значение в Enabled).
- Сохраните настройки БИОС (обычно можно выбрать Save&Exit на вкладке Exit).
А теперь несколько примеров, где именно может находиться включение виртуализации на разных марках материнских плат и ноутбуков. По аналогии вы, вероятнее всего, сможете найти и у себя:
Логика расположения необходимого пункта для включения виртуализации у всех производителей похожа и, зная обычные пути включения опции, вы найдете нужный пункт даже на материнской плате другого производителя.
Проблемы при включении виртуализации
Самые распространенные проблемы, когда вы хотите включить виртуализацию на своем компьютере:
- Пункт включения Virtualization Technology не активен в БИОС
- В БИОС/UEFI нет пункта для включения виртуализации
- Виртуализация включена в БИОС/UEFI, но эмулятор или виртуальная машина в Windows 10 или 8.1 пишет, что отключена.
В первых двух случаях проблема может крыться в том, что ваш процессор не поддерживает виртуализацию. Поищите официальные спецификации вашего процессора в Интернете, обычно там есть и информация о поддержке виртуализации. Также, на некоторых ноутбуках процессор может поддерживать технологию виртуализации, но она отключена и в БИОС не предусмотрено опции для её включения — в этом случае, к сожалению, предложить не могу ничего, но можно попробовать обновить БИОС (теоретически, опцию могут добавить).
Во втором случае причина обычно заключается в том, что в Windows 10 или 8.1 включена виртуальная машина Hyper-V или Песочница. Отключите её в компонентах:
- Откройте панель управления, перейдите в «Программы и компоненты».
- Откройте слева пункт «Включение и отключение компонентов Windows».
- Отключите компоненты Hyper-V и «Песочница» (если есть).
- Примените настройки и обязательно перезагрузите компьютер.
Если указанные действия не помогли, попробуйте такой вариант: запустите командную строку от имени администратора, в ней введите команду (нажав Enter после неё)
bcdedit /set {current} hypervisorlaunchtype off
Закройте командную строку и перезагрузите компьютер.
Как включить виртуализацию — видео инструкция
Если в вашем случае не сработало, опишите в комментариях, что именно не получается, какая программа или Android эмулятор сообщают, что виртуализация не включена и что уже было сделано: возможно, решение найдется.
Windows 10 Pro 21H2 19044
WSL 2 — это новая версия архитектуры подсистемы Windows для Linux, чтобы запускать двоичные файлы Linux ELF64 в Windows.
Т.е. можно запускать приложения Linux, в том числе c GUI, на Windows.
Однако, это не является полноценной виртуализацией, скорее контейнеризация, поэтому полноценный Linux Desktop заменить не сможет, по крайней мере на данный момент.
На сайте Microsoft довольная хорошая документация, обязательно к ознакомлению:
https://docs.microsoft.com/ru-ru/windows/wsl/about
https://docs.microsoft.com/ru-ru/windows/wsl/faq
Установка WSL 2
Установка компонентов
Установку компонентов можно выполнить через GUI
Параметры → Приложения и возможности → Дополнительные компоненты → Другие компоненты Windows
Либо через консоль cmd или PowerShell (запустить от имени Администратора)
# cmd dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /norestart # PowerShell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart
Выполнить перезагрузку
WSL 2 использует архитектуру Hyper-V для включения виртуализации. Эта архитектура будет доступна в качестве дополнительного компонента Virtual Machine Platform (Платформа виртуальной машины)
Если этот компонент не установлен, то будет работать WSL 1, а при попытке использовать WSL 2 выдаст сообщение:
Включите функцию Windows для платформы виртуальной машины и убедитесь в том, что в BIOS включена виртуализация. Дополнительные сведения см. на странице https://aka.ms/wsl2-install
Настройка WSL
Выбор WSL 2 в качестве версии по умолчанию
> wsl --set-default-version 2 Для получения сведений о ключевых различиях с WSL 2 перейдите на страницу https://aka.ms/wsl2 Операция успешно завершена.
Скачать (если выполняется первый раз) и/или обновить Linux ядро для WSL 2
> wsl --update Проверяется наличие обновлений... Скачивание обновлений... Выполняется установка обновлений... Это изменение вступит в силу при следующем полном перезапуске WSL. Чтобы выполнить перезапуск, выполните команду "wsl --shutdown". Версия ядра: 5.10.102.1
Посмотреть статус
> wsl --status Версия по умолчанию: 2 Подсистема Windows для Linux в последний раз обновлена 06.07.2022 Включены автоматические обновления WSL. Версия ядра: 5.10.102.1
Можно создать файл .wslconfig для глобальной настройки параметров WSL 2
%USERPROFILE%\.wslconfig
[wsl2] kernel=<path> # An absolute Windows path to a custom Linux kernel. memory=<size> # How much memory to assign to the WSL2 VM. processors=<number> # How many processors to assign to the WSL2 VM. swap=<size> # How much swap space to add to the WSL2 VM. 0 for no swap file. swapFile=<path> # An absolute Windows path to the swap vhd. localhostForwarding=<bool> # Boolean specifying if ports bound to wildcard or localhost in the WSL2 VM should be connectable from the host via localhost:port (default true). # <path> entries must be absolute Windows paths with escaped backslashes, for example C:\\Users\\Ben\\kernel # <size> entries must be size followed by unit, for example 8GB or 512MB
Например у меня много памяти и я хочу сберечь свой SSD отключив SWAP
По умолчанию SWAP file расположен
%USERPROFILE%\AppData\Local\Temp\swap.vhdx
После изменения в .wslconfig требуется перезагрузка
wsl --shutdown
После команды shutdown все запущенные Linux контейнеры будут остановлены.
Или можно перезагрузить службу LxssManager, что будет иметь такой же эффект
# PowerShell Restart-Service LxssManager
Установка дистрибутива
Посмотреть текущие дистрибутивы
> wsl --list --verbose Нет установленных дистрибутивов подсистемы Windows для Linux. Дистрибутивы можно установить из Microsoft Store: https://aka.ms/wslstore
Посмотреть доступные дистрибутивы
> wsl --list --online Ниже приведен список допустимых распределений, которые можно установить. Установите с помощью команды wsl --install -d <Distro>. NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling openSUSE-42 openSUSE Leap 42 SLES-12 SUSE Linux Enterprise Server v12 Ubuntu-16.04 Ubuntu 16.04 LTS Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS
Дистрибутив Linux устанавливается как приложение Windows app или UWP app
На данный момент в Microsoft Store доступна Ubuntu-22.04, а через консоль нет
Установка Ubuntu-20.04 через консоль
> wsl --install -d Ubuntu-20.04 Загрузка: Ubuntu 20.04 LTS Выполняется установка: Ubuntu 20.04 LTS Установка «Ubuntu 20.04 LTS» выполнена. Запуск Ubuntu 20.04 LTS...
Если сообщение висит долго, нажмите ENTER
Такой баг я встречал и в других диалогах, так что следует это запомнить.
Вводим имя пользователя и пароль для Ubuntu, они произвольные и не как не связаны с Windows логином. Над паролем лучше не мудрить и сделать простым.
Я сразу отключу требование ввода пароля для sudo, например можно отредактировать правило в /etc/sudoers через команду
sudo sed 's/\(^%sudo\s.*\)/%sudo ALL=(ALL:ALL) NOPASSWD:ALL/' /etc/sudoers -i
Посмотреть текущие дистрибутивы
> wsl --list --verbose NAME STATE VERSION * Ubuntu-20.04 Running 2
‘*’ отмечен дистрибутив по умолчанию, т.е. при выполнении команд wsl они будут применены к нему
Настройка дистрибутива
Можно создать файл /etc/wsl.conf для настройки дополнительных параметров внутри конкретного дистрибутива.
Под Linux я запускал VPN, поэтому мне понадобилось отключить управление файлом /etc/resolv.conf
Почему так происходит и какие подводные камни.
Открыл терминал, запустил VPN, который прописал DNS для использования внутреннего корпоративного домена.
И это работает до момента, когда открываешь еще один терминал или выполняешь команду через wsl, например даже такую
wsl ls
В этот момент WSL актуализирует resolv.conf и перетирает его, точнее это символическая ссылка, а сам файл расположен тут:
/etc/resolv.conf -> ../run/resolvconf/resolv.conf
Нужно создать конфиг
/etc/wsl.conf
[network] generateResolvConf = false
Перезагрузить
wsl --shutdown
Зайти в терминал Linux удалить ссылку, т.к. она уже будет ссылаться на несуществующий файл и создать новый файл
rm /etc/resolv.conf ip -4 route show default | awk '{print "nameserver",$3}' > /etc/resolv.conf
Однако IP адрес в WSL не статический и поменяется после перезагрузки Windows, что же делать в таком случае.
Все зависит от вашего сценария использования, например можно добавить задачу в Планировщик заданий (Task Scheduler) , что бы выполняла настройку после загрузки Windows.
Параметр [boot], для выполнения команд при первой загрузке доступен только в Windows 11.
Импорт дистрибутива
Можно установить любой другой дистрибутив, создать самому или клонировать существующий.
wsl --import <Distro> <Расположение установки> <Имя файла> [Параметры] Импортирует указанный tar-файл как новое распределение. Для стандартной загрузки имя файла может быть «-».
В рамках этой статьи я не буду рассматривать этот функционал см. https://docs.microsoft.com/ru-ru/windows/wsl/use-custom-distro
Удаление дистрибутива
Выполняется очень просто
> wsl --unregister Ubuntu-20.04 Отмена регистрации...
Файловая система
Файловая система WSL дистрибутива Linux хранится в VHD файле в каталоге
%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
Доступ есть через проводник по адресу
\\wsl$
Из Linux так же есть доступ в дискам Windows
ls -la /mnt/c/ ls -la /mnt/d/
Статический IP адрес
По мере использования WSL, можно столкнуться с этим вопросом.
Обсуждение https://github.com/microsoft/WSL/issues/4210
При первом запуске WSL создается интерфейс «vEthernet (WSL)» с случайной подсетью из диапазона приватной сети 172.16.0.0/12
т.е. после перезагрузки Windows сеть поменяется.
По итогу без костылей обойтись не получится.
Можно использовать скрипты, где каждый раз получать ip адрес и использовать его дальше по сценарию, как пример:
.bat
FOR /F %%i IN ('wsl -d Ubuntu-20.04 hostname -I') DO set WSLIP=%%i echo %WSLIP% netsh interface portproxy add v4tov4 listenport=8088 connectport=80 connectaddress=%WSLIP%
.bashrc
export DISPLAY=$(ip route list default | awk '{print $3}'):0 export LIBGL_ALWAYS_INDIRECT=1
Есть готовые скрипты, которые переконфигурируют интерфейс в Windows, а затем eth0 внутри Linux.
Например можно глянуть https://github.com/skorhone/wsl2-custom-network, https://github.com/ocroz/wsl2-boot
Запуск графических приложений
Т.к. в данной статье у нас Windows 10, то необходимо установить X-сервер для операционной системы Microsoft Window.
Например VcXsrv
Я установил Xming
Для безопасности в файле C:\Program Files (x86)\Xming\X0.hosts указаны хосты, с которых разрешены подключения, но ip адрес у нас динамический, а указать подсеть в файле нельзя, поэтому придется запускать через ярлык XLaunch, т.к. там есть возможность выключить контроль доступа.
Выключаем проверку доступа
Конфиг XLaunch можно сохранить и в дальнейшем запускать через него.
В Linux есть мини программы, как раз подойдут для проверки, установим их
sudo apt-get install x11-apps
Выполним экспорт переменной DISPLAY, в дальнейшем эту команду можно записать в ~/.bashrc
export DISPLAY=$(ip -4 route show default | awk '{print $3}'):0.0
Запустить приложение «x-глаза» для проверки
xeyes
Отлично! Все работает.