1.2K
показов
1.9K
открытий
Сегодня покажу как поставить WSL (Windows Subsystem for Linux) на Windows 11
В этой статье вы узнаете:
- Что такое WSL и для чего она нужна
- Гайд по установке WSL
- Настройка компилятора
- Что делать, если WSL потребляет избыточное количество оперативной памяти
Что такое WSL и для чего она нужна
WSL (Windows Subsystem for Linux) — это среда выполнения Linux, предоставляемая операционной системой Windows. WSL позволяет запускать исполняемые файлы Linux напрямую в Windows без необходимости установки отдельной виртуальной машины или перезагрузки компьютера.
WSL обеспечивает совместимость с ядром Linux, что позволяет пользователям запускать большинство командной строки и приложений Linux непосредственно в Windows. Оно включает в себя поддержку большинства дистрибутивов Linux, таких как Ubuntu, Debian, Fedora и других, и предлагает доступ к огромному количеству программ и утилит, которые разработаны для Linux.
Теперь перейдём к гайду
Гайд по установке WSL
Открываем PowerShell или Terminal от имени администратора
Вводим следующую команду: wsl —install
Ждём
По завершении установки перезагружаем наш ПК.
Мне нравится Ubuntu, поэтому я не буду её менять, но если ты хочешь поменять дистрибутив, то вот ссылка на инструкцию.
Теперь после установки WSL необходимо создать учетную запись пользователя и пароль для установленного дистрибутива Linux (в моём случаи речь идёт про Ubuntu):
На случай, если что-то пошло не так на этапе создания учётной записи вот мини-туториал как это можно исправить.
Важный нюанс: Windows не выполняет автоматическую установку обновлений или обновление дистрибутивов Linux. Это задача, выполнение которой большинство пользователей Linux предпочитают контролировать самостоятельно. Поэтому обновим нашу подсистему с помощью этой команды: sudo apt update && sudo apt upgrade
Настройка компилятора
Я использую WSL, чтобы компилировать программы на языке С, поэтому покажу команды для установки компилятора.
По очереди:
sudo apt-get update
sudo apt-get install cmake gcc clang gdb build-essential
sudo apt-get install valgrind
Важный момент: Проверим, установился ли у нас компилятор, должен появится номер: gcc —version
Что делать, если WSL потребляет избыточное количество оперативной памяти
Бонусом, я покажу, как снизить потребление оперативной памяти нашей подсистемой:
Есть два пути
Путь первый:
Открываем командную строку от администратора и вставить команду
wsl —shutdown, эта команда завершит процесс VmmemWSL.
Чтобы легко открыть командную строку можно зажать кнопки Win + X > пункт PowerShell (Администратор) > команда start cmd > нажимаем Enter.
Путь второй:
Можно также ограничить ресурсы Vmmem путем создания файла %UserProfile%\.wslconfig, внутри которого прописать:
[wsl2]
memory=2GB # Ограничиваем память для WSL2 VM.processors=5 # Ограничиваем количество процессов для WSL2 VM.
Чтобы создать файл с названием .wslconfig — нужно открыть блокнот Win + R > notepad > вставить содержимое > Сохранить как > в Тип файла указать Все файлы, после указать название и сохранить.
Кстати говоря, в этом файлике можете попробовать поставить значение memory равное 1, может ещё меньше будет))
На этом у меня всё, надеюсь моя статья помогла тебе решить твою проблему))
Благодарю за прочтение!
Время на прочтение
4 мин
Количество просмотров 25K
В новостях прошла весть, что теперь 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
Всё, можно пользоваться. Примеры использования есть на видео и в статье выше:
As a programmer, it is very important to test software on multiple platforms. However, it can be very tedious and inefficient to use multiple virtual machines to achieve the same. Thankfully, this process can be simplified if you are using Windows and wish to run a Linux distribution – with WSL. WSL, or Windows Subsystem for Linux, lets developers run a Linux or GNU environment directly and enables one to run a bash terminal on a Windows system, without necessarily relying on a full virtual machine or dual boot setup in place. As such it is a lightweight and resource-efficient alternative.
Installing WSL and running Linux on Windows 11
following are the steps to install WSL and then run Linux on Windows 11:
Step 1: Open Windows Terminal. Right Click on the Start button on the taskbar, and choose ‘Windows Terminal (Admin)’.
Alternatively, you can simply click on the Search icon, and search for Windows Terminal. Then, hover on ‘Windows Terminal’. Finally, On the menu that appears on right, choose, ‘Run as Administrator’.
Or for installation, we can also use Powershell. Another alternative is to use Powershell. Following a similar procedure as the one outlined above, search for ‘Powershell’, and click, ‘Run as Administrator’.
Step 2: Now, type the following to install WSL:
wsl –install
When the process is finally over, Windows will prompt you to restart your PC.
Step 3: Click on the Start Button -> Power -> Restart, or Alt + F4 + U and choose Restart from the Options.
Step 4: After restarting, open your terminal or PowerShell again. Now, you can install any Linux distribution of your choice, by running the following command:
wsl –install -d <name of the distribution>
For instance:
1. To install kali-linux, type:
wsl –install -d kali-linux
2. To install Debian, type:
wsl –install -d Debian
Step 5: To view a list of all available Linux distributions, you can run one of the following commands:
wsl –list –online
or,
wsl –l -o
Step 6: Once the distribution has finished downloading, a new window will open. Now, you will be prompted to enter your username and password. Upon entering these, you will be ready to use Linux on Windows!
Step 7: It is strongly recommended that as soon as you install your chosen distribution, you run the following command to ensure that your installation is up to date:
sudo apt-get update
Last Updated :
25 Apr, 2022
Like Article
Save Article
Перейти к содержимому
Вот как в Windows 11 установить подсистему Linux всего за пару кликов, что позволит вам использовать Linux без необходимости в установке параллельной операционной системы или виртуальных машин.
Microsoft анонсировала подсистему Linux для Windows 10 в далеком 2016 году. С тех пор проект WSL получил несколько крупных апдейтов и улучшений. Свежие версии Windows комплектуются вторым поколением подсистемы Linux, которую установить гораздо проще ее предшественницы.
В Windows 11 установка WSL (Windows Subsystem for Linux) требует ввода лишь одной или двух команд в Терминале Windows. Вот как это делается.
- Нажмите Win + X или щелкните правой кнопкой мыши по кнопке Пуск. В появившемся меню выберите Терминал Windows (Администратор).
- Введите команду
wsl --install
. Эта команда выполняет автоматически все шаги, которые ранее пользователю приходилось делать вручную. К примеру, устанавливать платформу виртуальной машины, файлы подсистемы, дистрибутив и так далее. - Дождитесь установки подсистемы Linux на Windows 11.
- После установки перезагрузите компьютер.
Готово! Теперь вы можете запустить WSL и использовать его в своих нуждах. Если вам понадобится обновить Windows Subsystem for Linux, воспользуйтесь командой wsl --update
.
Обратите внимание: Windows 11 по умолчанию использует Ubuntu при установке подсистемы Linux с помощью команды wsl —install. Если вас это не устраивает, выполните установку с помощью второй инструкции ниже.
В магазине доступны Ubuntu, openSUSE Leap, Kali Linux, Debian GNU и многие другие. Если ранее Windows позволяла работать только с Ubuntu, сейчас можно работать сразу с несколькими разными дистрибутивами.
Как установить подсистему Linux с выбором дистрибутива
- Откройте Терминал Windows с правами Администратора.
- Введите команду
wsl --list --online
. Эта команда выведет на экран список доступных для загрузки дистрибутивов Linux. - Определившись с нужным вам дистрибутивом, введите команду для установки подсистемы:
wsl --install -d ИМЯ
. ЗаменитеИМЯ
на название дистрибутива из первого столбца. К примеру,wsl --install -d debian
. - Нажмите Enter и дождитесь загрузки и установки всех необходимых файлов.
- Перезагрузите компьютер.
После включения компьютера вы сможете запустить подсистему Linux и скачанный ею дистрибутив. Готово.
💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.
Судя по тому, что вы читаете этот текст, вы дочитали эту статью до конца. Если она вам понравилась, поделитесь, пожалуйста, с помощью кнопок ниже. Спасибо за вашу поддержку!
Table of Contents
Зачем нужен Windows Subsystem for Linux 2 (WSL2)? Самый частый ответ — простое использованое Linux программ в среде Windows. Docker самая распространенная причина для установки WSL2.
Что надо для WSL2
- убедиться что в BIOS включена виртуализация, ищите пункт меню:
- процессор Intel: VT-x, Intel Virtualization Technology, VTx
- процессор AMD: SVM Mode, AMD-V, Virtualization Technology
- версия Windows 11 или 10 не ниже версии 2004 (сборка 19041 ~декабрь 2019)
- права администратора
Всего несколько команд
Установим само ядро wsl и запустим дистрибутив Ubuntu для работы в консоли.
Открывайте PowerShell с правами Администратора. Самый простой вариант по мне -> WIN+X и выбрать Терминал Windows (Администратор).
Выполняйте команду:
По-умолчанию, установится WSL2 с GUI и Ubuntu . Установка займет определенное время, подождите.
Если ошибка 0x80072eff
В процессе, можете увидеть ошибку Во время установки произошла ошибка, но установка может быть продолжена. Компонент: 'Ядро WSL' код ошибки: 0x80072eff
.
А значит, все автоматически не сработало, не беда. Перезагружайтесь и снова запустите PowerShell от Администратора.
- Запустите обновление wsl
- Завершите работу wsl
- Запустите заново wsl
- Запустите установку Ubuntu (если надо более специфический дистр, посмотрите все варианты
wsl -l -o
)
Успешная установка Ubuntu
После установки, введите имя пользователя и пароль для Ubuntu, и вам будет доступна среда Linux.
Рекомендуется сделать одну команду, обновить список пакетов:
и наслаждаться
Как зайти в WSL консоль
- запускайте команду
wsl
. (например, в настройках среды разработки указать wsl это для терминала по-умолчанию) - можете вынести из Пуска, ярлык Ubuntu на панель задач.
- или поставить обновленный Microsoft Terminal, и в нем настроить при запуске сразу открывать консоль wsl, рекомендую.