Включите функцию windows платформа виртуальной машины и убедитесь что в bios включена виртуализация

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>

image

Steps to reproduce

Open Ubuntu 18.04 or 20.04.

Expected behavior

Works as expected.

Actual behavior

image

I can confirm that I have enabled Virtual Machine Platform and VT-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>

image

Steps to reproduce

Open Ubuntu 18.04 or 20.04.

Expected behavior

Works as expected.

Actual behavior

image

I can confirm that I have enabled Virtual Machine Platform and VT-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

Dick's user avatar

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

NotTheDr01ds's user avatar

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

Dick's user avatar

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

.

Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS

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.

Enable the Virtual Machine Platform Windows feature

Enable the Virtual Machine Platform Windows feature

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.

Enable nested virtualization on VirtualBox

Enable nested virtualization on VirtualBox

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.

Enable nested virtualization on VMware Workstation

Enable nested virtualization on VMware Workstation

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 и находиться в слегка разных разделах настроек БИОС, но логика действия всегда будет одной и той же:

  1. Зайдите в БИОС компьютера или ноутбука. Обычно на ПК это делается нажатием клавиши Del, на ноутбуке — F2 или F10 (иногда в сочетании с клавишей Fn). В Windows 10 простой вход может не получиться, тогда можно использовать способ входа в UEFI через особые варианты загрузки, подробнее: Как зайти в БИОС/UEFI Windows 10.
  2. После входа найдите, где включается опция виртуализации (далее будут показаны некоторые примеры), включите её (установите значение в Enabled).
  3. Сохраните настройки БИОС (обычно можно выбрать Save&Exit на вкладке Exit).

А теперь несколько примеров, где именно может находиться включение виртуализации на разных марках материнских плат и ноутбуков. По аналогии вы, вероятнее всего, сможете найти и у себя:

Логика расположения необходимого пункта для включения виртуализации у всех производителей похожа и, зная обычные пути включения опции, вы найдете нужный пункт даже на материнской плате другого производителя.

Проблемы при включении виртуализации

Самые распространенные проблемы, когда вы хотите включить виртуализацию на своем компьютере:

  • Пункт включения Virtualization Technology не активен в БИОС
  • В БИОС/UEFI нет пункта для включения виртуализации
  • Виртуализация включена в БИОС/UEFI, но эмулятор или виртуальная машина в Windows 10 или 8.1 пишет, что отключена.

В первых двух случаях проблема может крыться в том, что ваш процессор не поддерживает виртуализацию. Поищите официальные спецификации вашего процессора в Интернете, обычно там есть и информация о поддержке виртуализации. Также, на некоторых ноутбуках процессор может поддерживать технологию виртуализации, но она отключена и в БИОС не предусмотрено опции для её включения — в этом случае, к сожалению, предложить не могу ничего, но можно попробовать обновить БИОС (теоретически, опцию могут добавить).

Во втором случае причина обычно заключается в том, что в Windows 10 или 8.1 включена виртуальная машина Hyper-V или Песочница. Отключите её в компонентах:

  1. Откройте панель управления, перейдите в «Программы и компоненты».
  2. Откройте слева пункт «Включение и отключение компонентов Windows».
  3. Отключите компоненты Hyper-V и «Песочница» (если есть).
  4. Примените настройки и обязательно перезагрузите компьютер.

Если указанные действия не помогли, попробуйте такой вариант: запустите командную строку от имени администратора, в ней введите команду (нажав Enter после неё)

bcdedit /set {current} hypervisorlaunchtype off

Закройте командную строку и перезагрузите компьютер.

Как включить виртуализацию — видео инструкция

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

Windows

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

Отлично! Все работает.


  • Включился режим в самолете на windows 10 и не выключается
  • Включите функцию windows для платформы виртуальной машины и убедитесь в том
  • Включите клиентский компонент центра обновления windows 10 store 0x8024500c
  • Включите брандмауэр microsoft defender на windows 10
  • Включилась блокировка на ноутбуке что делать windows