Windows 11 wsl config

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

Подсистема Windows для Linux (WSL) — это функция операционной системы Windows, которая позволяет запускать среду GNU / Linux внутри Windows — без затрат на традиционную виртуальную машину или настройку с двойной загрузкой. WSL требует меньше ресурсов (CPU, памяти и места на диске), чем полноценная виртуальная машина. WSL также позволяет запускать инструменты и приложения командной строки Linux наряду с приложениями командной строки Windows, а также получать доступ к файлам Windows из Linux. Это позволяет при желании использовать приложения Windows и инструменты командной строки Linux для одного и того же набора файлов. Поддерживается множество дистрибутивов, включая Ubuntu, Debian, Kali Linux, OpenSUSE и другие. Можно установить свой дистрибутив, импортировав образ в формате tar.gz.

Общие сведения

Установить WSL можно на Windows 10 версии 2004 (сборка 19041) и выше и Windows 11. Для работы с ним лучше всего использовать Windows Terminal.

WSL использует собственную файловую систему, отделённую от файловой системы Windows (так как в Linux дискам не присваиваются буквы, а предоставляются точки монтирования). Корень файловой системы — / — точка монтирования корневого раздела (или папки в случае с WSL). WSL использует файловую систему Windows как смонтированный диск, и доступ к какому-либо каталогу (к примеру, к диску C:\) в Windows из WSL можно получить по пути /mnt/c/.

Из Windows можно получить доступ к приложениям, запущенным в Linux. Например, доступ к сайту можно получить как обычно — localhost:port. Однако в некоторых случаях следует использовать IP-адрес для подключения (ip:port), который можно взять в файле /etc/resolv.conf — из-за того, что в WSL 2 используется собственный виртуальный адаптер Ethernet со своим уникальным IP-адресом.

Установка

Подсистема WSL поставляется вместе с ОС Windows, однако её необходимо предварительно включить. Можно использовать упрощенную команду, в таком случае подсистема включится и установить дистрибутив Ubuntu (он используется по умолчанию):

С параметром --no-distibution можно только включить WSL, не устанавливая дистрибутив:

1
wsl --install --no-distribution

После первой установки (или включения WSL) может потребоваться перезагрузка компьютера.

В целом установка дистрибутивов доступна несколькими способами:

  1. через Microsoft Store;
  2. через Windows Terminal командой wsl --install или аналогичной;
  3. через Windows Terminal, экспортировав необходимый дистрибутив.

Список доступных для установки из терминала дистрибутивов можно получить командой:

1
2
wsl --list --online
wsl -l -o

На 7 августа 2023 года список следующий:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed

Нужный из списка дистрибутив можно установить командой:

1
2
wsl --install -d <DistName>
wsl --install -d Debian

Установку можно дополнить ключом --no-launch, тогда WSL не будет запускать дистрибутив сразу после установки. При этом дистрибутив не будет отображаться среди установленных — выполнение команды означает только загрузку дистрибутива для последующего повторного выполнения wsl --install.

Каждый раз, когда устанавливается новый дистрибутив WSL Linux, для него в Windows Terminal создаётся новый профиль для подключения.

По умолчанию дистрибутивы создаются в каталоге C:\Users\username\AppData\Local\Packages.

После завершения процесса установки дистрибутива будет предложено создать нового пользователя и установить ему пароль. Этот пользователь относится к каждому устанавливаемому дистрибутиву и не имеет отношения к пользователю Windows. После создания пользователя, он станет пользователем по умолчанию (будет автоматически входить в систему при запуске) и учетная запись будет считаться администратором Linux (с правами выполнения sudo).

Изменение языка дистрибутива

При установке дистрибутива WSL пытается автоматически определить и применить локаль в соответствии с локализацией Windows. Если ей это сделать не удаётся, можно изменить язык принудительно (после выполнения перезагрузить дистрибутив):

1
sudo update-locale LANG=en_US.UTF8

Дополнительные команды WSL

Работа дистрибутивов

Запустить дистрибутив по умолчанию в домашнем каталоге пользователя можно следующей командой:

Для запуска другого дистрибутива (не по умолчанию) следует указать параметр --distribution:

1
wsl --distribution <DistName>

Можно запустить дистрибутив из-под другого пользователя:

1
wsl --user <Username> # или wsl -u <Username>

Дистрибутив по умолчанию указывается параметров --set-default-version:

1
wsl --set-default <DistName>

С параметром --set-version можно указать версию WSL (1 или 2), с которой требуется запустить тот или иной дистрибутив:

1
wsl --set-version <DistName> <VersionNumber>

Завершить работу одного конкретного или сразу всех дистрибутивов можно следующим образом:

1
2
wsl --terminate <DistName> # завершить работу <DistName>
wsl --shutdown # завершает работу всех запущенных дистрибутивов

Удаляется дистрибутив параметров -unregister:

1
wsl --unregister <DistName>

Параметры WSL

Обновить WSL можно следующей командой:

1
2
wsl --update # версия с Microsoft Store
wsl --update --web-download # версия с Github

Текущая конфигурация WSL выводится при передаче параметра --status или --version:

1
2
wsl --status
wsl --version

Установить версию WSL по умолчанию (1 или 2) можно параметром --set-default-version:

1
wsl --set-default-version <VersionNumber>

Монтировать дополнительные разделы в дистрибутивы можно параметром --mount. Он содержит следующие ключи:

  • --vhd — указывает, что монтируется виртуальный жесткий диск;
  • --name — монтируется диск с пользовательским именем;
  • --bare — подключает, но не монтирует диск;
  • --type <Filesystem> — тип файловой системы, используемый при монтировании (ext4 по умолчанию);
  • --partition <PartNumber> — порядковый номер раздела при монтировании.

Для монтирования разделов необходимы права администратора

1
wsl --mount C:\Users\Profile\Projects\FirstProject

Размонтировать один конкретный раздел или все можно командой --unmount:

1
2
wsl --unmount <DiskPath> # размонтировать <DiskPath>
wsl --unmount # размонтировать все диски и разделы

Список дистрибутивов

Команда --list показывает список дистрибутивов. Дополнительный ключ к команде может отфильтровать вывод:

  • --all — показывает все дистрибутивы;
  • --verbose — показывает установленные дистрибутивы;
  • --running — показывает только запущенные дистрибутивы;
  • --quiet — отображает только названия.

Работа с WSL

Изменение хостнейма

Для начала необходимо добавить нужное имя в файл /etc/wsl.conf в раздел network:

1
2
3
[network]
hostname = ubuntu_wsl
generateHosts = false

​ После этого следует поменять хостнейм в файле /etc/hostname:

1
2
ubuntu_wsl
/etc/hostname

Взаимодействие с Windows

Для максимальной производительности рекомендуется хранить файлы для работы в Linux в файловой системе WSL — в той же операционной системе, где они используются. Доступ к файлам возможен из разных ОС, но это значительно снижает производительность.

В дистрибутивах можно вызывать приложения WIndows и передавать в параметр файлы и каталоги Linux. Например, чтобы открыть текущий каталог в стандартном проводнике (Explorer), необходимо написать:

С файлами ситуация аналогичная:

В названии приложения обязательно нужно указывать разрешение (exe).

Это работает и в обратную сторону — утилиты Linux можно запускать напрямую из PowerShell. Например, чтобы отобразить содержимое какого-либо каталога Windows, можно ввести:

Можно смешивать команды Windows и Linux. Например, можно отобразить список файлов ls -la и отфильтровать результаты командой PowerShell findstr или наоборот — отобразить каталоги командой dir и отфильтровать командой grep

1
2
wsl ls -la | findstr "git"
dir | wsl grep git

Запуск графических приложений Linux

WSL 2 поддерживает запуск приложений с графическим интерфейсом (X11 и Wayland) в Windows с полностью интегрированным интерфейсом для ПК. Их можно запускать из меню “Пуск” Windows, закреплять на панели задач, переключаться между приложениями по Alt+Tab. Приложения поддерживают буфер обмена Windows.

Для запуска графических приложений необходим драйвер vGPU:

  • Драйвер графического процессора Intel
  • Драйвер графического процессора AMD
  • Драйвер графического процессора NVIDIA

Для запуска приложения из консоли достаточно написать только его название или название с файлом (например, для редактирования) на примере gedit:

Сетевые приложения

IP-адрес хост-машины и IP-адрес Linux-дистрибутива в WSL могут быть разными. IP-адрес хост-машины — это IP-адрес самого компьютера, а IP-адрес Linux-дистрибутива — это IP-адрес, который присваивается в виртуальной сети WSL. Обычно IP-адрес Linux-дистрибутива настраивается автоматически и не зависит от настроек хост-машины.

1
2
wsl hostname -i # IP-адрес дистрибутива
cat /etc/resolv.conf # IP-адрес компьютера с Windows

Управление дисковым пространством

WSL 2 использует платформу виртуализации для установки дистрибутивов Linux вместе с основной операционной системой Windows, создавая виртуальный жесткий диск (VHD) для хранения файлов для каждого из устанавливаемых дистрибутивов Linux. Эти жесткие диски используют тип файловой системы ext4 и представлены на жестком диске Windows в виде файла ext4.vhdx. WSL автоматически изменяет размер этих файлов VHD в соответствии с потребностями хранилища. По умолчанию каждому VHD-файлу, используемому WSL 2, изначально выделяется максимальный объем дискового пространства в 1 ТБ.

Проверить объем дискового пространства, доступного на VHD для дистрибутива Linux, установленного вместе с WSL 2, с помощью команды Linux df.

1
wsl.exe --system -d <distribution-name> df -h /mnt/wslg/distro

Выходные данные будут включать:

  • идентификатор файловой системы VHD;
  • общий размер диска;
  • используемый объем пространства;
  • доступный объём свободного места;
  • процент использования;
  • путь к каталогу, в который смонтирован диск.

Путь к файлу диска:

1
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<distribution-name>' }).GetValue("BasePath") + "\ext4.vhdx"

Конфигурации WSL и дистрибутивов

Файлы wsl.conf и .wslconfig используются для настройки дополнительных параметров для каждого дистрибутива (wsl.conf) или глобально для всех дистрибутивов WSL 2 (.wslconfig).

  • файл wsl.conf хранится в каталоге /etc в виде файла. Используется для настройки параметров каждого дистрибутива WSL 1 и WSL 2;
  • файл .wslconfig хранится в %UserProfile% каталоге. Используется для настройки всех дистрибутивов Linux, работающих под управлением WSL 2.

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

wsl.conf

Файл wsl.conf настраивает параметры для каждого дистрибутива отдельно:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[boot] # доступна только на Windows 11 и Server 2022
systemd=true # включает поддержку systemd
command="" # строка команд, которые должны запускаться при запуске экземпляра WSL. Команда запускается от имени root
# command=service docker start

[automount]
enabled=true # автоматически монтировать диски Windows (C:\ и другие) с помощью DrvFs в /mnt/
mountFsTab=true # автоматически обрабатывает /etc/fstab при запуске дистрибутива
root=/mnt/ # устанавливает каталог, куда будут монтироваться диски Windows
options="" # параметры автоматического монтирования
# options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off"

[network]
generateHosts=true # WSL сам генерирует файл /etc/hosts
generateResolvConf=true # WSL сам генерирует файл /etc/resolv.conf
hostname="Hostname" # устанавливает имя Unix-компьютера. По умолчанию - имя компьютера Windows

[interop]
enabled=true # установка этого ключа в true означает поддержку запуска Windows-процессов
appendWindowsPath=true # установка этого ключа определяет, будет ли WSL добавлять элементы пути Windows в переменную окружения $PATH

[user]
default=Username # пользователь по умолчанию

.wslconfig

Файл .wslconfig настраивает параметры глобально для всех дистрибутивов Linux, работающих с WSL 2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[wsl2]
kernel=path # абсолютный путь Windows к пользовательскому ядру Linux
memory=4GB # объём выделяемой памяти для WSL (по умолчанию 50% или 8 Гбайт - меньшее из них)
processors=10 # сколько логических процессов назначить WSL. По умолчанию - столько же, сколько и Windows
localhostForwarding=true # логическое значение, указывающее, должны ли порты, привязанные к wildcard или localhost в виртуальной машине, подключаться с хоста через localhost:port
kernelCommandLine=blank # дополнительные аргументы командной строки ядра
safeMode=false # запускает экземпляр WSL в безопасном режиме
swap=25% # сколько виртуальной памяти добавить к дистрибутиву
swapFile=path # абсолютный  путь к файлу swal
pageReporting=true # позволяет Windows освобождать неиспользуемую в WSL память
guiApplications=true # включение поддержки графических приложений (только в Windows 11)
debugConsole=false # логическое значение для включения окна консоли вывода, отображающего содержимое dmesg при запуске экземпляра дистрибутива WSL (только в Windows 11)
nestedVirtualization=true # включение вложенной виртуализации (только в Windows 11)
vmIdleTimeout=60000 # количество миллисекунд, в течение которых виртуальная машина простаивает, прежде чем она будет выключена (только в Windows 11)

Резервное копирование и перемещение

Лучший способ создать резервную копию или переместить дистрибутивы (в рамках одного ПК или на другой) — использовать команды экспорта и импорта, доступные в Windows с версии 1809. Можно экспортировать весь дистрибутив в архив с помощью команды wsl --export. Затем его импортировать обратно в WSL с помощью команды wsl --import, которая может указать новое расположение для импорта, что также сохранять состояния дистрибутива.

Экспорт дистрибутива требует много места на жестком диске. Если места недостаточно, то можно использовать методы Linux для перемещения всех файлов:

  1. архивировать домашний и другие необходимые каталоги командой tar -czf <archiveName> <directory>. После переноса на новый дистрибутив архив следует разархивировать командой tar -xzf <archiveName>;
  2. можно экспортировать список установленных пакетов через apt: dpkg --get-selections | grep -v deinstall | awl '{print $1}' > packages.txt, а затем установить все приложения на новом дистрибутиве командой sudo apt install -y $(cat packages.txt).

При экспорте можно указать ключ --vhd, указывающий, что дистрибутив следует экспортировать в виде файла VHDX.

Команду импорта можно дополнить ключами --version <Version — указывающий версию WSL (1 или 2) и --vhd — указывающий, что представленный файл является файлом VHDX, а не файлом tar.gz.

Файл tar можно получить разными способами, например:

  • загрузить с сайта разработчика (при наличии);
  • экспортировать контейнер дистрибутива.

Далее файл tar нужно импортировать в WSL:

1
2
3
4
5
6
7
# экспорт
wsl --export <DistName> <Filename>
wsl --export Debian C:\WSLDistros\export.tar.gz

# импорт
wsl --import <DistName> <InstallLocation> <FileName>
wsl --import Debian C:\Users\username\WSL\ C:\Users\username\export.tar.gz

  1. Where is the WSL config file?
  2. How do I open a WSL config file?
  3. How do I create a Wslconfig file?
  4. How do I open a Wslconfig file?
  5. Is WSL a VM?
  6. How do I open WSL File Explorer?
  7. How do I run a GUI on WSL?
  8. Can I access WSL files from Windows?
  9. How do I set default WSL?
  10. Is WSL installed?
  11. How do I access WSL terminal?
  12. What is WSL EXE?
  13. Where are WSL folders?

Where is the WSL config file?

wslconfig. Stored in your %UserProfile% directory. Used to configure settings globally across all installed Linux distributions running as the WSL 2 version.

How do I open a WSL config file?

To start using WSL, open up a PowerShell terminal and type wsl . If you’ve set up WSL correctly, you’ll enter a bash terminal running on the WSL distro of choice. From here, you can run any Linux commands you wish. Below you will find a reference to all of the options the wsl.exe provides when starting up.

How do I create a Wslconfig file?

To create a global configuration for all installed WSL2 Linux disributions, create a file named . wslconfig in your user profile folder. For example, if your Windows 10 user name is Bleeping, then you would create the file at C:\users\Bleeping\. wslconfig.

How do I open a Wslconfig file?

The wslconfig.exe command lets you manage the Linux distributions running via the Windows Subsystem for Linux, or WSL. To run it, you need to open either a Command Prompt or PowerShell window. To open a Command Prompt window, open the Start menu, type “cmd”, and then click the “Command Prompt” shortcut.

Is WSL a VM?

WSL 2 uses the latest and greatest in virtualization technology to run a Linux kernel inside of a lightweight utility virtual machine (VM). However, WSL 2 is not a traditional VM experience.

How do I open WSL File Explorer?

To open your WSL distribution in Windows Explorer, click on the Windows start menu and type. You can also type this path in windows explorer. Click on the path, and you will see your WSL distribution. If you click on the name, you will see the entire Linux file system available to WSL.

How do I run a GUI on WSL?

If you already have WSL installed on your machine, you can update to the latest version that includes Linux GUI support by running the update command from an elevated command prompt. Select Start, type PowerShell, right-click Windows PowerShell, and then select Run as administrator.

Can I access WSL files from Windows?

Starting with Windows 10 build 18342, Microsoft added the ability for users to access Linux files in a WSL distro from Windows 10. These files can be accessed through the command line, and also Windows apps, like File Explorer, VSCode, etc. can interact with these files.

How do I set default WSL?

Set default Linux distro on WSL2

Search for Command Prompt, right-click the top result, and select the Run as administrator option. Quick tip: You can also write the command like this: wsl -l . In the command, replace DISTRO-NAME for the name of the distro you want to set as default (see step No. 3).

Is WSL installed?

To check the WSL version installed on Windows 10 or 11, use these steps: Open Start. Search for Command Prompt (or PowerShell), right-click the top result and select the Run as administrator option. … Under the “Version” collum, confirm the WSL version installed on Windows 11 or Windows 10.

How do I access WSL terminal?

Enable WSL permissions

Open another PowerShell window with «Run as Administrator». After the command is completed, you can execute the Linux command in the built-out Terminal. First enter ubuntu in cmd, take a little time to start Ubuntu, set the username and password. Then you can play with Ubuntu happily.

What is WSL EXE?

wsl.exe. The wsl.exe command is used to manage distributions in the Windows Subsystem for Linux on the command-line. It can list available distributions, set a default distribution, and uninstall distributions. The command can also be used to run Linux binaries from the Windows Command Prompt or Windows PowerShell.

Where are WSL folders?

Where are WSL files stored? WSL files are exposed through a network share \\wsl$\[distro name], for example my home directory is at \\wsl$\Ubuntu-20.04\home\pawelb. C:\Users\pawelb\AppData\Local\Packages\CanonicalGroupLimited. Ubuntu18.

This part will be separate and dedicated to Linux and Terminal. Because of my everyday job I find this feature extremely useful. In this part, we will go step by step on how to install WSL, and look into basic features of WSL. We will also install Hyper-V, Sandbox and have a look at Terminal.

Let’s start right away. Just to repeat once again, for fifth time – this is not typical step by step guide, this is part of my Windows 11 configuration series, which is reminder for me, and maybe can give you some ideas how to configure Windows 11, what you can use

Linux – setup WSL

Extremely useful, escpecially if you are using SSH and lot of Linux stuff.

Make sure you have virtualization features enabled in your BIOS before running this!

This method works on Windows 11 23H2 and 24H2!

WSL installation has a few steps:

To install Windows Subsystem for Linux we need to enable feature called Virtual Machine Platform.

Virtual Machine Platform is based on Hyper-V but separate from it.

Control Panel – Programs and features – Turn Windows features on or off – enable Virtual Machine Platform – after PC reboots we can continue

After reboot open again Control Panel – Programs and features – Turn Windows features on or off – check Windows Subsystem for Linux – OK – reboot system

After reboot, we need to go to Powershell, and install wsl through it. That process will update WSL, and install Ubuntu 24.04.1 LTS (actual at the time of writing this).

Type in search – Powershell – right click on icon and select Run as Administrator.

Type into powershell

wsl.exe --install

It will install WSL, and then Ubuntu…

After Ubuntu is installed, You will be asked then to enter username and pass for new Linux user – after that is done you will get – Installation is successful.

You can now access Ubuntu through Terminal – new shell is available

You will start Linux by going to Start – All apps – Ubuntu (I also pin it to Taskbar)

First steps after you run Linux

sudo apt update and sudo apt upgrade should be run first in Linux.

Managing WSL through Powershell

You can also manage WSL through Powershell

wsl –list -> will list installed distros

wsl –list –online -> will list distros available for installation

To install one of the listed available distros type

wsl –install Debian (for example)

To install graphical Linux app, open Linux shell and type in (I will install text editor for example)

sudo apt install gedit -y

to start app, then type

gedit

#### Accessing file system

Windows drive is mounted in /mnt/c

cd /mnt/c

ls

Also in Windows in File Explorer in navigation bar – Linux drive will appear. You can easily copy files and folders to Linux through Windows Explorer – recommend directory would be /home.

That is it, you now have Linux in your Windows.

While we are at the topic on VMs and adding various platform, I will add Hyper-V and Sandbox. I use exclusively Hyper-V on Windows for virtualization, and Sandbox is great feature

In Windows 11 Pro (it can also be done in home, since I’m not using home edition, I won’t cover it)

Make sure you have virtualization features enabled in your BIOS before running this!

Control Panel – Programs and features – Turn Windows features on or off – select Hyper-V – ok

Windows Sandbox

Run untrusted software in an isolated/temporary environment. In Windows Sandbox nothing survives the reboot of the machine in sandbox. Great feature for security, especially browsing to untrusted sources.

Control Panel – Programs and features – Turn Windows features on or off – Windows Sandbox

I pin both Hyper-V and Sandbox to Taskbar.

Terminal

Combines multiple shells (command prompt, powershell, Linux…).

CTRL + SHIFT + T to open new tab in Terminal

Zoom in – CTRL + Plus

Zoom out – CTRL + Minus

To return to default value – CTRL + 0

Besides + sign at the top of the Terminal window there is a little arrow/triangle pointing down – click on it to select which shell you wish to open in new tab.

If you click on an little arrow and select Settings you will get a whole lot of settings you can set for Terminal

Command Pallete can be selected when clicking on little arrow/triangle on top of Windows Terminal – it gives us all possible commands to control Terminal. You can open it also by clicking CTRL + SHIFT + P

And that is it for this part. We are almost done with initial Windows 11 setup

Windows Configuration / Tips and Tricks – Part 1

Windows Configuration / Tips and Tricks – Part 2

Windows Configuration / Tips and Tricks – Part 3

Windows Configuration / Tips and Tricks – Part 4

Windows Configuration / Tips and Tricks – Part 5

Windows Configuration / Tips and Tricks – Part 6

Windows Configuration / Tips and Tricks – Part 7

Disclaimer

Время на прочтение4 мин

Количество просмотров53K

image

В новостях прошла весть, что теперь WSL поддерживает демон systemd. В качестве преимущества использования systemd предлагается установка и запуск приложений и сервисов через snap. Для примера приведены Nextcloud, LXD, MySQL, MicroK8s и Docker. Я пока в преимущества самого snap не вникал. Но возможность запуска и управления демонами через systemd привлекает.

Начинаем с установки «Virtual Machine Platform». Запускать команду надо от имени администратора в консоли PowerShell:

PS C:\> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all
Cистема DISM
Версия: 10.0.22000.653
Версия образа: 10.0.22000.1042
Включение функций
[==========================100.0%==========================]
Операция успешно завершена.

Для запуска systemd нужна WSL версия 0.67.6. Статья на сайте Microsoft рекомендует установить предварительную версию WSL из магазина приложений. Проблема в том, что в магазине версия 0.66. Для установки WSL Preview требуется Windows 11 (сборка 22000 или более новая).

Поступаем следующим образом. Ставим из магазина приложений «устаревшую» версию (0.66), чтобы в дальнейшем получать обновления на нее. А дальше качаем с GitHub нужную нам версию 0.67.6. Она последняя доступная на момент написания статьи. Возможно, на момент прочтения выйдут версии поновее. При запуске скаченного с GitHub пакета Менеджер установки предложит обновить WSL до нужной нам версии, то есть распознает, что WSL Preview у вас уже установлен. Это позволит в будущем обновлять WSL Preview автоматически встроенными в магазин приложений средствами

Какие команды могут помочь. Проверка версии WSL.

PS C:\> wsl.exe --version

Если команда не распознает параметр «—version», значит у вас старая версия WSL (0.65 и ниже).

Недопустимый параметр в командной строке: --version
(c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
Использование: wsl.exe [Аргумент] [Параметры...] [Командная строка]
....

В этом случае будет работать параметр «—status»:

PS C:\> wsl --status
Распределение по умолчанию: Ubuntu-20.04
Версия по умолчанию: 2
Подсистема Windows для Linux в последний раз обновлена 21.06.2022
Включены автоматические обновления WSL.
Версия ядра: 5.10.102.1

В версии 0.66 параметр «—version» (-v) и статус «—status» дают следующий вывод:

PS C:\> wsl --status
Default Distribution: Ubuntu-20.04
Default Version: 2
WSL version: 0.66.2.0
Kernel version: 5.15.57.1
WSLg version: 1.0.42
MSRDC version: 1.2.3401
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22000.978
PS C:\> wsl --version
WSL version: 0.66.2.0
Kernel version: 5.15.57.1
WSLg version: 1.0.42
MSRDC version: 1.2.3401
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22000.978

А вот в версии 0.67 вывод параметра «—status» меняет формат:

PS C:\> wsl --status
Default Distribution: Ubuntu-20.04
Default Version: 2

Итого, надо добиться того, чтобы версия WSL («WSL version» в выводе команды) была 0.67.6.0.

PS C:\> wsl -v
WSL version: 0.67.6.0
Kernel version: 5.15.62.1
WSLg version: 1.0.44
MSRDC version: 1.2.3401
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22000.1042
PS C:\> wsl --status
Default Distribution: Ubuntu-20.04
Default Version: 2

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

PS C:\> wsl.exe --list --online
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.
NAME               FRIENDLY NAME
Ubuntu             Ubuntu
Debian             Debian GNU/Linux
kali-linux         Kali Linux Rolling
SLES-12            SUSE Linux Enterprise Server v12
SLES-15            SUSE Linux Enterprise Server v15
Ubuntu-18.04       Ubuntu 18.04 LTS
Ubuntu-20.04       Ubuntu 20.04 LTS
OracleLinux_8_5    Oracle Linux 8.5
OracleLinux_7_9    Oracle Linux 7.9

Далее ставим выбранный дистрибутив параметром «—install», пример:

PS C:\> wsl.exe --install Ubuntu

В конце установки предложат ввести имя пользователя Linux и пароль для него.

После установки надо в файл /etc/wsl.conf добавить ключ для запуска systemd. В моем случае файл /etc/wsl.conf не существовал и был создан при редактировании:

user@DESKTOP:~$ sudo vim /etc/wsl.conf
[boot]
systemd=true

Важно, файл редактируется в гостевой системе Linux, не на хосте.

PS C:\> wsl.exe --shutdown

В консоли Linux появится сообщение:

user@DESKTOP:~$
[process exited with code 1 (0x00000001)]

Вообще рекомендую команду «wsl.exe —shutdown» вводить после каждого изменения в WSL. Чтобы запустить WSL после остановки, нужно открыть заново консоль гостевой ОС.

Проверяем, что всё получилось:

user@DESKTOP:~$ systemctl list-unit-files --type=service
UNIT FILE                                  STATE           VENDOR PRESET
accounts-daemon.service                    masked          enabled
apparmor.service                           enabled         enabled
apport-autoreport.service                  static          -
apport-forward@.service                    static          -
apport.service                             generated       -
apt-daily-upgrade.service                  static          -
apt-daily.service                          static          -
atd.service                                masked          enabled
autovt@.service                            alias           -
blk-availability.service                   enabled         enabled
bolt.service                               static          -
clickhouse-server.service                  masked          enabled
cloud-config.service                       enabled         enabled
cloud-final.service                        enabled         enabled
cloud-init-hotplugd.service                static          -
.........

И, например, так

user@DESKTOP:~$ systemctl status networkd-dispatcher.service
● networkd-dispatcher.service - Dispatcher daemon for systemd-networkd
     Loaded: loaded (/lib/systemd/system/networkd-dispatcher.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-25 23:57:28 MSK; 37s ago
   Main PID: 133 (networkd-dispat)
      Tasks: 1 (limit: 9390)
     Memory: 16.8M
     CGroup: /system.slice/networkd-dispatcher.service
             └─133 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
Sep 25 23:57:27 DESKTOP systemd[1]: Starting Dispatcher daemon for systemd-networkd...
Sep 25 23:57:28 DESKTOP networkd-dispatcher[133]: No valid path found for iwconfig
Sep 25 23:57:28 DESKTOP networkd-dispatcher[133]: No valid path found for iw
Sep 25 23:57:28 DESKTOP systemd[1]: Started Dispatcher daemon for systemd-networkd.
Sep 25 23:57:28 DESKTOP networkd-dispatcher[133]: WARNING:Unknown index 7 seen, reloading interface list

Всё, можно пользоваться. Примеры использования есть на видео и в статье выше:

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Основные функции windows server 2003
  • Как узнать свойства компьютера на windows 10
  • Как удалить office 365 с компьютера windows 10
  • Windows server 2008 r2 значки рабочего стола
  • Chromium windows 7 поддержка