подсистема linux на windows 10 зачем
Установка и использование подсистемы Linux (WSL 2) в Windows 10
Windows Subsystem for Linux (WSL) — подсистема ОС Windows 10, позволяющая разработчикам, тестировщикам запускать нативные приложения Linux, писать скрипты, выполнять команды непосредственно из Windows. В обновлённой Windows 10 (2004) появилась 2я версия WSL, в которой используется полноценное ядро Linux с возможностью запуска приложений и контейнеров Docker, реализована высокая скорость загрузки, небольшой объем потребляемых ресурсов, управление в фоновом режиме, обновление ядра. Таким образом вы сможете запускать ELF64 программы, которые могут получать доступ к файловой системе Windows без использования сторонних порто (таких как Cygwin).
Образ ядра Linux (версия ядра 4.19) в Windows 10 представляет собой легкую виртуальную машину, для запуска которой не нужно ставить полноценную роль Hyper-V. Системные вызовы Linux транслируются на лету в вызовы Windows без использования эмулятора (в отличии от WSL1).
Вы можете включить компоненты WSL в Windows 10 с помощью dism:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
После этого также необходимо перезагрузить компьютер.
Теперь вам нужно выполнить обновление WSL до версии 2. Для этого требуется зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, скачать файл wsl_update_x64.msi, установить его. По завершении увидите картинку
Чтобы сделать WSL2 архитектурой по умолчанию для новых дистрибутивов, в PowerShell выполните команду:
Далее вам необходимо открыть Microsoft Store, в поиске ввести слово “Linux”. В появившемся списке выберите нужный дистрибутив. Доступные Ubuntu, Debian, Kali Linux, Linux Cheatsheet, SUSE Linux Enterprise Server15, openSUSE Leap 15-1, Pengwin Enterprise, Fedora Remix for WSL или другие. В нашем примере мы будем использовать Ubuntu 20.04 LTS, нажмите кнопку Получить.
Запустите установку образа Linux с помощью файла Ubuntu.exe.
Также вы можете скачать образ в виде appx файла и установить его с помощью командлета Add-AppxPackage.
После установки можно проверить используемую версию WSL с помощью команды
Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:
Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:\Users\234\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState.
После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl. При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo. В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.
Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:
dir | wsl grep Sa
wsl ls ‑la > 123.txt
wsl ls ‑la /proc/cpuinfo
wsl ls ‑la “/mnt/c/Program Files”
Также вы можете открыть проводник командой explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календарь – cal, погоду – curl wttr.in
Ещё один пример взаимосвязи 2х систем – вы можете открыть в Windows файл из WSL-дистрибутива по сетевому пути. Для этого в CMD наберите путь к файлу:
notepad \\wsl$\Ubuntu-20.04\home\1122.txt
Из окна консоли вы можете обновить список пакетов в Ubuntu с помощью команд:
sudo apt-get update
sudo apt-get upgrade
После обновления Ubuntu папка …/LocalState будет занимать 1.5 Гб.
Из командной строки Linux можно не только просмотреть Windows-файлы и каталоги, но и получить к ним доступ. Чтобы удобнее копировать файлы, просматривать директории и их содержимое, установите файловый менеджер Midnight Commander с помощью команды
sudo apt-get install mc
Вы можете запустить Midnight Commander как в командной оболочке Bash, так и внутри CMD. На скриншоте ниже показано, что в двух панелях MC показывается список файлов с обеих ОС.
Можно отобрахить сетевые настройки (IP адрес) IP-адрес Linux-системы:
ip addr | grep eth0
В WSL не предусмотрена работа приложений с графическим интерфейсом. Тем не менее вы можете попробовать их установить и использовать. Чтобы запускать графические приложения в Linux, нужно скачать и установить в Windows программу VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).
С помощью пакетного менеджера apt-get установим несколько графических программ: например, браузер, текстовый редактор или что-то ещё:
sudo apt-get install gedit
sudo apt-get install firefox
sudo apt-get install x11-app
Затем создайте файл в директории root:
Теперь можете запустить графические программы Linux через WSL командами:
Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:
чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:
Как установить подсистему Windows для Linux (WSL) на Windows 10
Да, вы можете запускать Linux на Windows 10 без необходимости использования второго устройства или виртуальной машины с помощью подсистемы Windows для Linux, и вот как ее настроить.
Хотя вам не нужен графический интерфейс, такой подход позволяет разработчикам и сетевым администраторам использовать длинный список команд (таких как vim, tmux, andemacs, sshd, Apache и MySQL), а также запускать сценарии оболочки Bash, написанные на Python, Ruby, C#, F# и многих других языках с помощью командной консоли.
В этом руководстве по Windows 10 мы рассмотрим шаги по установке подсистемы Windows для Linux с помощью приложения «Настройки», а также PowerShell. Кроме того, мы покажем вам инструкции по загрузке и установке дистрибутивов Linux, а также шаги по правильному удалению всех компонентов, когда вам больше не нужна среда с открытым исходным кодом.
Как установить подсистему Windows для Linux с помощью настроек
Если вы хотите запускать дистрибутивы Linux на Windows 10, вам необходимо включить функцию Windows Subsystem for Linux, прежде чем вы сможете загрузить и установить дистрибутив Linux, который вы хотите использовать.
Включение подсистемы Windows для Linux с помощью настроек
Чтобы установить WSL с помощью Настроек в Windows 10, выполните следующие действия:
4. Нажмите опцию Включить или выключить функции Windows на левой панели.
5. Отметьте опцию Подсистема Windows для Linux.
6. Нажмите кнопку OK.
7. Нажмите кнопку Перезапустить сейчас.
После выполнения этих шагов среда будет настроена для загрузки и запуска дистрибутивов Linux на Windows 10.
Установка дистрибутивов Linux с помощью Microsoft Store
Чтобы установить дистрибутив Linux на Windows 10, выполните следующие действия:
Некоторые из доступных дистрибутивов включают:
3. Выберите дистрибутив Linux для установки на устройство.
4. Нажмите кнопку Получить (или Установить).
5. Нажмите кнопку Запуск.
6. Создайте имя пользователя для дистрибутива Linux и нажмите Enter.
7. Укажите пароль для дистрибутива и нажмите Enter.
8. Повторите пароль и нажмите Enter для подтверждения.
После выполнения этих шагов вы можете начать использовать дистрибутив как любой другой вариант Linux (конечно, без графического интерфейса пользователя).
Удаление дистрибутивов Linux с помощью Настроек
Если вам больше не нужно запускать Linux на вашем устройстве, рекомендуется удалить дистрибутив, а затем отключить WSL.
Чтобы удалить дистрибутив Linux, выполните следующие действия:
6. Нажмите кнопку Удалить еще раз для подтверждения.
После выполнения этих действий установка Linux будет удалена, и вы сможете продолжить шаги по отключению WSL.
Отключение подсистемы Windows для Linux с помощью настроек
Чтобы отключить WSL в Windows 10, выполните следующие действия:
4. Нажмите опцию Включить или выключить функции Windows на левой панели.
5. Снимите флажок Подсистема Windows для Linux.
6. Нажмите кнопку OK.
7. Нажмите кнопку Перезапустить сейчас.
После выполнения этих действий Windows Subsystem for Linux будет удалена с вашего устройства.
Если у вас нет доступа к графическому интерфейсу Windows или вам удобно пользоваться командной строкой, вы также можете использовать PowerShell для включения подсистемы Windows для Linux, загрузки и установки дистрибутивов Linux, а также отмены всех изменений.
Включение подсистемы WSL с помощью PowerShell
Чтобы установить подсистему WSL с помощью PowerShell, выполните следующие действия:
4. Введите Y и нажмите Enter для подтверждения и перезагрузки компьютера.
После выполнения этих шагов вы можете перейти к инструкциям по загрузке и установке любого совместимого дистрибутива Linux, доступного через Microsoft Store.
Установка дистрибутивов Linux с помощью PowerShell
Чтобы загрузить и установить дистрибутив Linux (например, Ubuntu) с помощью PowerShell, выполните следующие действия:
В этом примере осуществляется переход к папке data в корне основного диска:
4. Введите следующую команду для загрузки Ubuntu и нажмите Enter:
Приведенная выше команда загружает Ubuntu версии 16.04, но вам может понадобиться обновить команду, указав имя и версию дистрибутива, который вы пытаетесь загрузить.
5. Введите следующую команду для просмотра фактического имени программы установки и нажмите Enter:
6. Введите следующую команду для установки Ubuntu версии 16.04 и нажмите Enter:
Этот пример устанавливает дистрибутив Ubuntu на Windows 10:
8. Найдите недавний дистрибутив Linux (например, Ubuntu), нажмите на верхний результат, чтобы запустить его.
9. Создайте имя пользователя для дистрибутива Linux и нажмите Enter.
10. Укажите пароль для дистрибутива и нажмите Enter.
11. Повторите пароль и нажмите Enter для подтверждения.
После выполнения этих шагов вы можете начать использовать Ubuntu или любой другой дистрибутив так же, как и при полной установке Linux без графического интерфейса.
Деинсталляция дистрибутива Linux с помощью PowerShell
Если вы хотите отменить изменения, сначала необходимо удалить любой дистрибутив Linux, прежде чем отключать WSl.
В этом примере выполняется поиск пакета приложений, в названии которого присутствует «ubuntu»:
В команде обязательно замените «ubuntu» на название дистрибутива, который вы пытаетесь найти.
4. Введите следующую команду для удаления версии Linux, установленной на вашем компьютере, и нажмите Enter:
Get-AppxPackag FULL-DISTRO-NAME | Remove-AppxPackage
В этом примере удаляется пакет Ubuntu из Windows 10:
Get-AppxPackage CanonicalGroupLimited.Ubuntu16.04onWindows | Remove-AppxPackage
В команде обязательно замените
«CanonicalGroupLimited.Ubuntu16.04onWindows» на имя дистрибутива, который вы пытаетесь удалить.
После выполнения этих шагов вы можете приступить к отключению функции Windows Subsystem for Linux на вашем компьютере.
Отключение подсистемы Windows для Linux с помощью PowerShell
Чтобы отключить WSL с помощью PowerShell, выполните следующие действия:
4. Введите Y и нажмите Enter для подтверждения и перезагрузки компьютера.
После выполнения этих действий среда Linux будет отключена на вашем компьютере.
Начать курс Linux бесплатно:yodo.im/start
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка 4.8 / 5. Количество оценок: 4
Часто задаваемые вопросы о подсистеме Windows для Linux
Общие сведения
Что такое подсистема Windows для Linux (WSL)?
подсистема Windows для Linux (WSL) — это функция операционной системы Windows, которая позволяет запускать файловую систему linux, а также программы командной строки linux и приложения GUI с графическим пользовательским интерфейсом непосредственно на Windows, наряду с традиционными Windows настольными системами и приложениями.
Чтобы узнать больше, ознакомьтесь со страницей сведений.
Для кого предназначена WSL?
Что можно сделать с помощью WSL?
Опишите типичный рабочий процесс разработки с использованием WSL
Подсистема WSL нацелена на аудиторию разработчиков и предназначена для использования в рамках внутреннего цикла разработки. Предположим, что Сэм создает конвейер CI/CD (непрерывная доставка с постоянной интеграцией & ) и хочет сначала протестировать ее на локальном компьютере (переносной компьютер) перед развертыванием в облаке. Сэм может включить WSL ( & WSL 2 для повышения скорости и производительности), а затем использовать подлинный экземпляр Linux Ubuntu локально (на переносном компьютере) с использованием любых команд Bash и средств, которые они предпочитают. После проверки конвейера разработки в локальной среде Семен может отправить этот конвейер CI/CD в облако (т. е. в Azure), сделав его контейнером Docker и отправив в облачный экземпляр, где он будет выполняться на рабочей виртуальной машине Ubuntu.
Что такое Bash?
Bash — это популярная текстовая оболочка и язык команд. Это оболочка по умолчанию, входящая в состав Ubuntu и других дистрибутивов Linux, а также в macOS. Пользователи могут вводить команды в оболочке для выполнения сценариев и (или) команд и инструментов, чтобы выполнять множество задач.
Как это работает?
Зачем использовать WSL вместо Linux в виртуальной машине?
WSL требует меньше ресурсов (ЦП, памяти и хранилища), чем полноценная виртуальная машина. WSL также позволяет запускать программы командной строки и приложения Linux вместе с приложениями командной строки, классическими приложениями и приложениями Store для Windows, а также позволяет обращаться к файлам Windows в Linux. Это позволяет использовать приложения для Windows и программы командной строки Linux для одного и того же набора файлов, если требуется.
Зачем использовать, например, Ruby в Linux, а не Ruby в Windows?
Некоторые кроссплатформенные инструменты были созданы, исходя из предположения, что среда, в которой они выполняются, работает как Linux. Например, некоторые инструменты предполагают, что имеют доступ к очень длинным путям к файлам или что существуют определенные файлы и папки. Это часто вызывает проблемы в среде Windows, которая нередко ведет себя иначе, чем в Linux.
Многие языки, такие как Ruby и Node.js, часто переносятся на Windows и работают отлично. Тем не менее, не все владельцы библиотек Ruby Gem или node/NPM переносят свои библиотеки для поддержки Windows, и многие из них имеют зависимости, относящиеся к Linux. Это часто может привести к тому, что системы, созданные с помощью таких инструментов и библиотек, становятся подвержены ошибкам во время сборки, а иногда — во время выполнения, либо не работают в Windows требуемым образом.
Это лишь часть проблем, из-за которых многие пользователи просят корпорацию Майкрософт улучшить программы командной строки Windows, а мы стали партнерами с Canonical, чтобы обеспечить выполнение собственных программ командной строки Linux и Bash в Windows.
Что это означает для PowerShell?
При работе с проектами OSS существует множество сценариев, в которых чрезвычайно полезно перейти в Bash из командной строки PowerShell. Поддержка Bash дополняет и расширяет возможности командной строки в Windows, позволяя использовать PowerShell, а сообществу PowerShell — применять другие популярные технологии.
Дополнительные сведения см. в блоге группы разработчиков PowerShell: Bash for Windows: Why it’s awesome and what it means for PowerShell (Bash для Windows: почему это здорово и что это значит для PowerShell)
Какие процессоры поддерживает WSL?
WSL поддерживает процессоры x64 и ARM.
Как получить доступ к моему диску C?
точки подключения для жестких дисков на локальном компьютере создаются автоматически и обеспечивают простой доступ к Windows файловой системе.
/МНТ/ буква диска > /
Пример использования — команда cd /mnt/c для доступа к диску C:\
Как настроить диспетчер учетных данных Git? (Как использовать разрешения Windows Git в WSL?)
см. руководство приступая к работе с git на подсистема Windows для Linux, в котором описывается настройка диспетчера учетных данных Git и сохранение маркеров проверки подлинности в Windows диспетчере учетных данных.
Как использовать файл Windows в приложении Linux?
Одним из преимуществ WSL является возможность доступа к файлам с помощью приложений или инструментов Windows и Linux.
Отличаются ли файлы на диске Linux от файлов на подключенном диске Windows?
Файлы в корне Linux (т. е. / ) контролируются WSL, который соответствует поведению Linux, включая, помимо прочего, следующие:
Файлы на подключенных дисках контролируются Windows и имеют следующие характеристики:
Как удалить дистрибутив WSL?
Кроме того, вы можете удалить приложение дистрибутив Linux на компьютере так же, как и любое другое приложение Магазина.
Дополнительные сведения о командах WSL см. в статье основные команды для WSL.
Как запустить сервер OpenSSH?
OpenSSH поставляется с Windows в качестве дополнительного компонента. См. документацию по Install OpenSSH doc. для запуска OpenSSH в WSL требуются права администратора в Windows. чтобы запустить сервер OpenSSH, запустите WSL distribution (ie Ubuntu) или Терминал Windows с правами администратора. Существует несколько ресурсов, охватывающих сценарии SSH с WSL. ознакомьтесь со статьями блогов скотта Hanselman: как ssh-подключение к Windows 10 машине из Linux или Windows или из любого места, как ssh в WSL2 на Windows 10 с внешнего компьютера, простой способ подключения ssh к Bash и WSL2 на Windows 10 с внешнего компьютераи как использовать Windows 10 — Это встроенная служба OpenSSH для автоматического подключения по протоколу SSH к удаленному компьютеру Linux.
Как изменить язык интерфейса WSL?
Установщик WSL попытается автоматически изменить языковой стандарт Ubuntu в соответствии с языковым стандартом установки Windows. Если это нежелательно, можно выполнить приведенную ниже команду, чтобы изменить языковой стандарт Ubuntu после завершения установки. Чтобы это изменение вступило в силу, потребуется перезапустить дистрибутив WSL.
В приведенном ниже примере языковой стандарт изменяется на EN-US.
Почему у меня нет доступа к Интернету из WSL?
Некоторые пользователи сообщили о проблемах с определенными приложениями брандмауэра, блокирующими доступ к Интернету в WSL. Сообщили о следующих брандмауэрах:
В некоторых случаях отключение брандмауэра обеспечивает доступ. В некоторых случаях доступ блокируется просто при наличии установленного брандмауэра.
Как получить доступ к порту из WSL в Windows?
WSL использует IP-адрес Windows, так как работает в Windows. Поэтому вы можете получить доступ к любым портам на localhost. Например, если вы предоставляете веб-содержимое через порт 1234, то вы можете открыть адрес https://localhost:1234 в браузере для Windows. Дополнительные сведения см. в разделе доступ к сетевым приложениям.
Как выполнить резервное копирование дистрибутивов WSL или переместить их с одного диска на другой?
обратите внимание, что традиционные службы резервного копирования, которые файлы резервных копий в папках AppData (например, программа архивации данных), не будут повредить файлы Linux.
WSL 2
Использует ли подсистема WSL 2 Hyper-V? Будет ли она доступна в Windows 10 Домашняя?
WSL 2 доступен во всех sku настольных систем, где доступен WSL, включая Windows 10 Домашняя.
Последняя версия WSL использует архитектуру Hyper-V для включения виртуализации. Эта архитектура будет доступна в качестве дополнительного компонента Virtual Machine Platform (Платформа виртуальной машины). Этот необязательный компонент будет доступен во всех номерах SKU. Более подробную информацию об этом интерфейсе можно получить ближе к выпуску WSL 2.
Что произойдет с подсистемой WSL 1? Будет ли прекращена ее поддержка?
В настоящее время не планируется объявлять подсистему WSL 1 нерекомендуемой. Вы можете запускать дистрибутивы WSL 1 и WSL 2 параллельно, обновлять их и переходить на более раннюю версию дистрибутива в любое время. Добавление WSL 2 в качестве новой архитектуры для команды WSL представляет собой лучшую платформу, которая предоставляет отличные возможности для запуска среды Linux в Windows.
Смогу ли я запускать WSL 2 с другими сторонними инструментами виртуализации, такими как VMware или VirtualBox?
Если Hyper-V уже используется, то некоторые сторонние приложения не могут работать. Соответственно, они не смогут выполняться при включенном WSL 2, например VMware и VirtualBox. Но недавно вышли новые выпуски VirtualBox и VMware, поддерживающие Hyper-V и WSL2. Дополнительные сведения об изменениях VirtualBox см. здесь, а об изменениях VMware см. здесь. Сведения об устранении неполадок можно найти в обсуждениях проблем с VirtualBox в репозитории WSL на GitHub.
Мы постоянно работаем над решениями для поддержки интеграции Hyper-V от сторонних производителей. Например, мы предоставляем набор API-интерфейсов (платформа гипервизора), который сторонние поставщики виртуализации могут использовать для обеспечения совместимости своего программного обеспечения с Hyper-V. Это позволяет приложениям использовать архитектуру Hyper-V для своих эмуляций, например Google Android Emulator, а также VirtualBox 6 и более поздней версии, которые теперь совместимы с Hyper-V.
Дополнительные сведения о проблемах с WSL 2 в VirtualBox 6,1см. в репозитории проблем WSL.
* если вы ищете Windows 10 виртуальную машину, в Windows Центр разработки доступнызагрузки виртуальных машин VMWare, Hyper-V, VirtualBox и parallels.
Могу ли я получить доступ к GPU в WSL 2? Планируется ли усилить поддержку оборудования?
Мы выпустили поддержку для доступа к GPU в дистрибутивах WSL 2. Это означает, что теперь вы можете использовать WSL для сценариев с применением машинного обучения, искусственного интеллекта, а также обработки и анализа данных, если задействованы большие наборы данных. Ознакомьтесь с руководством по началу работы с решениями с поддержкой GPU. Сейчас WSL 2 не включает последовательную поддержку или поддержку USB-устройств. Мы определяем оптимальный способ добавления этих функций.
Может ли WSL 2 использовать сетевые приложения?
Да, в целом сетевые приложения будут работать быстрее и лучше, так как у нас есть полная совместимость системных вызовов. Однако в новой архитектуре используются виртуализированные сетевые компоненты. Это означает, что первоначальная ознакомительная версия сборки WSL 2 будет вести себя аналогично виртуальной машине, например, в WSL 2 будет IP-адрес, отличный от того, на котором размещен хост-компьютер. Мы стремимся сделать WSL 2 похожим на WSL 1, что включает в себя повышение производительности сети.
Можно ли запустить WSL 2 на виртуальной машине?
Да! Необходимо убедиться, что на виртуальной машине включена вложенная виртуализация. Ее можно включить в родительском узле Hyper-V, выполнив следующую команду в окне PowerShell с правами администратора:
Не забудьте заменить именем своей виртуальной машины.
Можно ли использовать wsl.conf в WSL 2?
Куда можно отправить отзыв?
Кроме того, вы можете сделать следующее:
Если вы хотите оставаться в курсе последних новостей WSL, используйте следующее: