Подсистема linux для windows – Файлы подсистемы Linux нельзя создавать, изменять или удалять при помощи инструментов для Windows

Содержание

Установка подсистемы Windows для Linux (WSL) в Windows 10

  • Время чтения: 2 мин

В этой статье

Установка подсистемы Windows для LinuxInstall the Windows Subsystem for Linux

Перед установкой каких-либо дистрибутивов Linux для WSL необходимо убедиться, что включен дополнительный компонент «Подсистема Windows для Linux».Before installing any Linux distros for WSL, you must ensure that the «Windows Subsystem for Linux» optional feature is enabled:

  1. Запустите PowerShell с правами администратора и выполните следующую команду.Open PowerShell as Administrator and run:

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    
  2. При появлении соответствующего запроса перезагрузите компьютер.Restart your computer when prompted.

Установка дистрибутива Linux по выборуInstall your Linux Distribution of Choice

Чтобы скачать и установить предпочтительные дистрибутивы, у вас есть три варианта:To download and install your preferred distro(s), you have three choices:

Windows 10 Fall Creators Update и более поздние версии: установка из Microsoft StoreWindows 10 Fall Creators Update and later: Install from the Microsoft Store

Этот раздел предназначен для сборки 16215 Windows или более поздней версии.This section is for Windows build 16215 or later. Выполните следующие действия, чтобы узнать номер своей сборки.Follow these steps to check your build.

  1. Откройте Microsoft Store и выберите предпочтительный дистрибутив Linux.Open the Microsoft Store and choose your favorite Linux distribution.

    Ниже приведены ссылки на страницы Microsoft Store для каждого дистрибутива:The following links will open the Microsoft store page for each distribution:

  2. На странице дистрибутива щелкните «Получить».From the distro’s page, select «Get»

Завершение инициализации дистрибутиваComplete initialization of your distro

После установки дистрибутива Linux необходимо единоразово инициализировать новый экземпляр дистрибутива, прежде чем его можно будет использовать.Now that your Linux distro is installed, you must initialize your new distro instance once, before it can be used.

Устранение неполадок:Troubleshooting:

Ниже перечислены возможные ошибки и способы их устранения.Below are related errors and suggested fixes. Другие распространенные ошибки и способы их устранения приведены в разделе Устранение неполадок подсистемы Windows для Linux.Refer to the WSL troubleshooting page for other common errors and their solutions.

  • Сбой установки с ошибкой 0x80070003Installation failed with error 0x80070003

    • Подсистема Windows для Linux работает только на системном диске (обычно это диск C:).The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive). Убедитесь, что дистрибутивы хранятся на системном диске.Make sure that distros are stored on your system drive:
    • Выберите
      Параметры
      -> Хранилище -> Другие параметры хранилища: Изменить место сохранения нового содержимого. Open Settings -> Storage -> More Storage Settings: Change where new content is saved
  • Сбой WslRegisterDistribution с ошибкой 0x8007019eWslRegisterDistribution failed with error 0x8007019e

  • Дополнительный компонент «Подсистема Windows для Linux» не включен.The Windows Subsystem for Linux optional component is not enabled:

  • Выберите Панель управления -> Программы и компоненты -> Включение или отключение компонентов Windows и установите флажок Подсистема Windows для Linux или используйте командлет PowerShell, упомянутый в начале этой статьи.Open Control Panel -> Programs and Features

    -> Turn Windows Feature on or off -> Check Windows Subsystem for Linux or using the PowerShell cmdlet mentioned at the begining of this article.

Включение подсистемы Linux в Windows 10 / ESET NOD32 corporate blog / Habr

Недавно мы опубликовали пост про новый билд Windows 10 Insider Preview Build 14316, в котором говорилось про подсистему Ubuntu Linux в этой ОС. Нам написали многие пользователи, которые столкнулись с тем, что не смогли сразу обнаружить эту подсистему и запустить командный интерпретатор bash. Действительно, эта подсистема выключена по умолчанию, а ее драйверы LXss.sys и LXCore.sys не располагаются в системной директории (см. WinSxS). Для тех пользователей, которые не смогли разобраться с данной проблемой, мы укажем шаги по включению подсистемы и проверке ее активности.

Для включения подсистемы следует выполнить следующие шаги:

  1. Активировать режим разработчика (Developer Mode). Без него Windows 10 откажется устанавливать подсистему Ubuntu Linux.
  2. Включить компонент подсистемы в настройках Windows.
  3. Установить подсистему (выполняется автоматически.)


Рис. Настройка функций developer по умолчанию, нужно выбрать Developer mode (Start->Settings->Update and security).


Рис. Подтверждаем.


Рис. В том же окне, в поиске набираем «Windows features».


Рис. Ставим галочку напротив «Windows Subsystem for Linux (Beta)».


Рис. Запускаем командный интерпретатор Windows — cmd, набираем bash и дожидаемся установки Linux.


Рис. Появившиеся в системной директории драйверы Linux.


Рис. Активный сервис подсистемы Linux.

Опыт настройки и использования WSL (подсистемы Linux в Windows 10) / Habr

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.

Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.

Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.


Установка WSL и дистрибутива

Сразу оговорюсь, в интернете можно найти описание установки с помощью выполнения команды lxrun /install в командной строке или консоли PowerShell. Данный способ больше не работает (после выхода WSL в стабильный релиз). Насколько мне известно, сейчас WSL можно установить только из Microsoft Store вместе с предпочитаемым дистрибутивом.

Так же отмечу, что когда установку производил я, на выбор были доступны дистрибутивы OpenSUSE, SUSE Linux Enterprise и Ubuntu 16.04 — последний я и установил. Сейчас также доступны Ubuntu 18.04, Debian 9 и Kali Linux, возможно появятся и другие дистрибутивы. Действия по установке могут отличаться. Так же, часть проблем описанных в статье может быть уже исправлена.

Находим в магазине желаемый дистрибутив и устанавливаем. Установка пройдет быстро, так как скачает только эмулятор ядра Linux и утилиту для запуска подсистемы, которая окажется в системной папке в трех экземплярах: wsl.exe, bash.exe и ubuntu.exe (вместо ubuntu будет имя Вашего дистрибутива). Все они равнозначны и делают одно и то же — запускают собственный эмулятор терминала, в нем linux’овый bash работающий под эмулятором ядра. При первом же запуске нас попросят придумать логин и пароль для пользователя по умолчанию, а после произойдет непосредственно установка дистрибутива. В качестве пользователя по умолчанию указываем root без пароля — это потребуется для дальнейших шагов. Безопасность не пострадает, кроме того при подготовке материалов к статье, в англоязычном туториале, я наткнулся на информацию, что новые версии WSL теперь делают пользователем по умолчанию root без пароля без лишних вопросов.

Дожидаемся установки. Далее первым делом стоит обновить зеркала apt на ближайшие. Для этого понадобится CLI текстовый редактор. В комплекте только vi, я же больше предпочитаю nano, поэтому ставлю его:

apt install nano

sudo вводить не требуется, так как мы уже под root’ом. Отредактируем файл /etc/apt/sources.list:

nano /etc/apt/sources.list

У меня лучше всего работают зеркала Яндекса, поэтому мой файл выглядит так:

deb http://mirror.yandex.ru/ubuntu/ xenial main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial main universe  restricted

deb http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricted

deb http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricted

Нажимаем Ctrl+O для сохранения и Ctrl+X для выхода. Теперь можно обновить систему до актуального состояния:

apt update && apt upgrade

После обновления можно создать нашего основного пользователя. В данной статье я назову его user1, Вы же можете задать привычное имя:

addgroup --gid 1000 user1
adduser --home /home/user1 --shell /bin/bash --uid 1000 -G user1,sudo user1

Далее переходим в папку юзера, зайдем под ним, установим пароль и отредактируем файл ~/.bashrc:

cd /home/user1
su user1
passwd
nano .bashrc

Мой базовый .bashrc выглядит так
# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm|xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_prompt=yes
    else
    color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    if [[ ${EUID} == 0 ]] ; then
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
    else
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] '
    fi
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Все, подсистема готова к использованию… почти…


Установка X-сервера, Xfce и прочих GUI’шных приложений

Первая же проблема, на которую я натолкнулся — bash-completion в предлагаемом эмуляторе терминала работал, мягко говоря, некорректно. Кроме того, данный эмулятор не умеет вкладки, а каждый его экземпляр запускает все в новом пространстве процессов, с отдельным init’ом (который кстати не заменить). Мне захотелось нормальный эмулятор терминала, некоторых других GUI приложений, а так же панельку, чтоб это все быстро запускать.

Когда я гуглил этот вопрос, я наткнулся на множество проблем, вроде необходимости перевода dbus на tcp протокол. На данный момент всех этих проблем нет. В подсистеме нормально работают unix-domain-socket’ы и все спокойно общается через них.

Первым делом нам понадобится X-сервер, притом установленный в основную систему (в Windows). Лично я использую для этих целей VcXsrv — порт X11 на Windows. Официальный сайт указанный в about самой утилиты его сейчас не предоставляет, поэтому гуглим установщик и устанавливаем все по умолчанию.

Пока идет установка возвращаемся в терминал WSL, командой exit выходим обратно в root’а. Первым делом настроим русские локали:

locale-gen ru_RU
locale-gen ru_RU.UTF-8
update-locale

Далее установим некоторые компоненты Xfce. Можно конечно установить его целиком из мета-пакета, но большинство компонентов нам не понадобится, а модульная архитектура Xfce позволяет нам поставить только необходимое:

apt install -y xfce4-session xfce4-notifyd xfce4-appfinder xfce4-panel xfce4-quicklauncher-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfce4-settings xfce4-terminal xfce4-taskmanager mousepad

Запускать каждый раз окружение руками не очень удобно, поэтому я автоматизировал данный процесс. Для этого в основной системе создадим в удобном для нас месте папку, а в ней 3 файла для запуска:


  1. config.xlaunch — файл настроек для VcXsrv
    <?xml version="1.0" encoding="UTF-8"?>
    <XLaunch
    WindowMode="MultiWindow"
    ClientMode="NoClient"
    LocalClient="False"
    Display="0"
    LocalProgram="xcalc"
    RemoteProgram="xterm"
    RemotePassword=""
    PrivateKey=""
    RemoteHost=""
    RemoteUser=""
    XDMCPHost=""
    XDMCPBroadcast="False"
    XDMCPIndirect="False"
    Clipboard="True"
    ClipboardPrimary="True"
    ExtraParams=""
    Wgl="True"
    DisableAC="False"
    XDMCPTerminate="False"
    />
  2. x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:

    WScript.CreateObject("Shell.Application").ShellExecute "wsl", "cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session", "", "open", 0

    Поясню, что здесь происходит. Мы говорим VBscript выполнить приложение wsl с параметром cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session, папка запуска нам не важна, поэтому пустая строка, действие open — запуск, 0 — скрытый режим. Самому wsl мы отдаем команду на выполнение: переход в папку пользователя, затем с установкой переменных окружения DISPLAY (дисплей X-сервера) и LANG (используемая локаль) мы запускаем xfce4-session от имени нашего пользователя user1 (благодаря команде su)


  3. start.bat — batch файл для запуска, по желанию его можно засунуть в автозагрузку
    start config.xlaunch
    wscript x-run.vbs

Далее можем запустить наш start.bat и настроить панель Xfce под себя. Замечу, что здесь я наткнулся на еще одну проблему — панель прекрасно отображается поверх всех окон, но вот выделить себе место, как панель на рабочем столе Windows она не может. Если кто знает решение данной проблемы, поделитесь в комментариях.

Ну и под конец данной части, скриншот моего рабочего стола:


Взаимодействие окружения Windows и окружения подсистемы Linux

Запускать Linux приложения напрямую из Windows можно через те же 3 команды — bash, wsl или ubuntu. Не забываем, что по умолчанию запуск идет от root, поэтому стоит понижать привилегии через su, так же нужно не забывать передавать переменную окружения DISPLAY=:0 если приложению требуется X-сервер. Так же нужно менять папку, из которой должно работать приложение, через cd внутри WSL. Пример, посчитаем md5 для file.txt на диске D средствами Linux’овой md5sum:

wsl md5sum < d:\file.txt

Доступ к файловой системе Linux так же имеется, лежит она в %localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs. Читать таким образом файлы можно, а вот писать — не желательно, можно поломать файловую систему. Думаю проблема в том, что Windows не умеет работать с правами и владельцами файловой системы Linux.

Из Linux так же можно запускать Windows приложения. Просто запускаем exe-шник и он выполнится в основной системе.

Диски Windows монтируются в /mnt в соответствии со своими буквами в нижнем регистре. Например диск D будет смонтирован в /mnt/d. Из Linux можно свободно читать и писать файлы Windows. Можно делать на них симлинки. Права у таких файлов всегда будут 0777, а владельцем будет root.

Сетевой стек у подсистемы общий с Windows. Сервер поднятый в Linux будет доступен на localhost в Windows и наоборот. Однако unix-domain-socket для Windows будет просто пустым файлом, работать с этим можно только внутри Linux. Выход во внешнюю сеть у Linux так же есть, в том числе можно слушать порты, если этого не запрещает фаервол.
ifconfig в Linux и ipconfig в Windows выдают одинаковую информацию о сетевых интерфейсах.

Из диспетчера задач Windows можно спокойно прибить процесс внутри подсистемы Linux. Однако Linux увидит только свои процессы.


Особенности, ограничения и подводные камни

Ядро Linux в WSL не настоящее. Это всего лишь прослойка-эмулятор, которая часть Linux-специфичных задач выполняет сама, а часть проксирует напрямую в ядро winNT. Большая часть api в нем реализована, но не все. Свое ядро собрать не получится, как и не получится подключить модули ядра (.ko, Kernel Object).

Init процесс у WSL тоже свой и заменить его, например, на system.d не выйдет. У меня давно есть желание написать менеджер демонов на go, который бы работал с файлами юнитов system.d и предоставлял бы схожий интерфейс, да все руки не доходят.

Нет поддержки openFUSE, соответственно примонтировать виртуальную или удаленную файловую систему не получится. Так же нельзя сделать mount из файла, mount вообще ничего кроме bind здесь, похоже, не умеет.

Так же нет никакой возможности разбить файловую систему Linux на несколько разделов/дисков.

Прямой доступ к железу практически отсутствует. Все таки мы находимся в песочнице Windows, а не в полноценном Linux. /dev и /sys заметно пустуют, в них лишь проц да виртуальные устройства. Доступ к GPU — только через X-сервер, напрямую — никак, так что нейросети обучать придется в Windows.

В JS разработке столкнулся с тем, что electron.js отказался запускаться в WSL, пришлось дублировать окружение node.js в Windows.


Итоги

Статья получилась довольно длинной, надеюсь, что она окажется еще и полезной.
WSL для меня лично оказался инструментом вполне юзабельным, решающим мои задачи fullstack backend разработчика. Виртуалка с Linux за полгода так и не понадобилась. По общим ощущениям Windows+WSL намного функциональнее, чем Linux+Wine.

Пока писал статью, обнаружил, что в Microsoft Store появилась сборка WSL с Debian 9.3, данный дистрибутив мне более симпатичен, чем Ubuntu, поэтому буду пробовать ставить.

Крутые лайфхаки для работы с WSL (Подсистема Windows для Linux ) / Microsoft corporate blog / Habr

Я глубоко погружен в WSL (Windows Subsystem для Linux), и теперь, когда WSL2 доступен в Windows Insiders, это отличное время, чтобы по-настоящему изучить доступные опции. Очень интересная фича, которую я нашел в WSL, — возможность «чисто» перемещать данные между мирами. Это не тот опыт, который вы легко можете получить с полноценными виртуальными машинами, и он говорит о тесной интеграции Linux и Windows.

Под катом подробнее о некоторых интересных вещах, которые вы можете делать, смешивая арахисовое масло и шоколад!

Запустите Windows Explorer из Linux и получите доступ к файлам вашего дистрибутива


Когда вы находитесь в командной строке WSL / bash и хотите получить визуальный доступ к своим файлам, вы можете запустить «explorer.exe .», где находится текущий каталог, и вы получите окно проводника Windows, в котором ваши файлы Linux будут доставлены вам через сервер локальной сети plan9.

Используйте настоящие команды Linux (не CGYWIN) из Windows


Я уже писал об этом раньше, но теперь есть алиасы для функций PowerShell, которые позволяют вам использовать настоящие команды Linux изнутри Windows.

Вы можете вызвать любую команду Linux напрямую из DOS/Windows/чего угодно, просто поместив ее после WSL.exe, вот так.

C:\temp> wsl ls -la | findstr "foo"
-rwxrwxrwx 1 root root     14 Sep 27 14:26 foo.bat

C:\temp> dir | wsl grep foo
09/27/2016  02:26 PM                14 foo.bat

C:\temp> wsl ls -la > out.txt

C:\temp> wsl ls -la /proc/cpuinfo
-r--r--r-- 1 root root 0 Sep 28 11:28 /proc/cpuinfo

C:\temp> wsl ls -la "/mnt/c/Program Files"
...contents of C:\Program Files...

Исполняемые файлы Windows можно вызывать/запускать из WSL/Linux, поскольку путь к Windows находится в $PATH до Windows. Все, что вам нужно сделать, это явно вызвать его с .exe в конце. Вот как работает «Explorer.exe.». Вы также можете сделать notepad.exe или любой другой файл.

Запустите Visual Studio Code и получите доступ к вашим приложениям Linux нативно на Windows


Вы можете запустить «code.», находясь в папке в WSL, и вам будет предложено установить расширения VS Remote.. Это эффективно разделяет Visual Studio Code пополам и запускает «headless» VS Code Server в Linux с клиентом VS Code в мире Windows.

Вам также необходимо установить Visual Studio Code и расширение Remote — WSL. При желании, установите бета-версию Windows Terminal для лучшего опыта работы с терминалом в Windows.

Вот отличная подборка статей из блога Windows Command Line.


Вот преимущества WSL 2
  • Виртуальные машины являются ресурсоемкими и создают очень независимый опыт.
  • Исходный WSL был очень «подключенным», но имел довольно низкую производительность по сравнению с VM.
  • WSL 2 предлагает гибридный подход с облегченными VM, полностью подключенным интерфейсом и высокой производительностью.

Запуск нескольких Linux в считанные секунды


Здесь я использую «wsl —list —all», и в моей системе уже есть три Linux.
C:\Users\scott>wsl --list --all
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
Ubuntu-16.04
Pengwin

Я могу легко запустить их, а также назначить профили, чтобы они появлялись в моем Windows Terminal.

Запустите X Windows Server под Windows с Pengwin


Pengwin — это специальный Linux-дистрибутив WSL, который очень крут. Вы можете получить его в Windows Store. Объедините Pengwin с X Server, например X410, и вы получите очень классную интегрированную систему.

Простое перемещение дистрибутивов WSL между системами Windows.


Ana Betts отмечает эту замечательную технику, с помощью которой вы можете легко перенести свой идеальный дистрибутив WSL2 с одной машины на n машин.
wsl --export MyDistro ./distro.tar

# разместите его где-нибудь, Dropbox, Onedrive, где-то еще

mkdir ~/AppData/Local/MyDistro
wsl --import MyDistro ~/AppData/Local/MyDistro ./distro.tar --version 2 

Вот и все. Получите идеальную настройку Linux, синхронизированную на всех ваших системах.

Используйте провайдер учетных данных Windows Git внутри WSL


Все перечисленные фичи переткают в кульминацию в этом крутом посте от Ana Betts, где она интегрирует Windows Git Credential Provider в WSL, превращая /usr/bin/git-credential-manager в сценарий оболочки, который вызывает диспетчер git creds Windows. Гениально. Это было бы возможно только при условии чистой и тесной интеграции.

Пробуйте, устанавливайте WSL, Windows Terminal, и создавайте блестящую среду Linux на Windows..

Как установить подсистему Linux с рабочим столом в Windows 10

В последних версиях Windows 10, Microsoft разрешила пользователям устанавливать бета-версию оболочки bash через Ubuntu. С обновлением Fall Creators Update 1709, пользователи теперь могут установить подсистему Windows для Linux (WSL). С WSL вы можете запускать мощные команды оболочки через настоящую оболочку bash, управлять несколькими дистрибутивами и даже устанавливать пакеты и приложения командной строки Linux 

apt-get.

Вы получаете самую мощную и полезную часть Linux: интерфейс командной строки. С помощью этого инструмента вы можете управлять глубокими функциональными возможностями вашей системы, используя команды bash и приложения командной строки из Linux. Windows Subsystem для Linux позволяет пользователям запускать bash команды, как grepsed и awk, а также bash сценариев и Linux приложений командной строки, как Vim, Emacs и tmux. Вы также получите доступ к таким языкам, как Javascript и node.js, Ruby, Python и C/C+, и сервисы, такие как sshd, MySQL, Apache и lighttpd. И если установка не идет по умолчанию с тем, что вы хотите, вы можете установить пакеты Linux с помощью apt-get диспетчера пакетов.

Подсистема Windows для Linux — это урезанная версия Linux, которая работает в Windows 10. Вы устанавливаете части полного дистрибутива Linux, вы не получаете рабочую среду или оконный менеджер, с которым ассоциируется настольный Linux. Но, с недавнего времени вы теперь можете запустить рабочий стол Linux в Windows 10. Вам больше не нужна двойная загрузка вашей системы с разными ОС и не нужны сторонние виртуальные машины для запуска виртуализации.

Включение подсистемы Windows для Linux в Windows 10

Полная версия подсистемы Windows для Linux доступна только для обновлений Fall Creators (1709, сборка 16215 и более поздних версий).  С этим обновлением Windows вы можете фактически установить подсистему Windows для Linux из Windows Store. Вам просто нужно сделать некоторую подготовку в PowerShell. Выполните по порядку три пункта. Документация подсистемы Windows для Linux на сайте microsoft. 

1. Включите подсистему в PowerShell

  • Запустите PowerShell от имени администратора.

PowerShell Запуск от имени администратора


Введите или скопируйте следующую команду в окно PowerShell. Нажмите Y, затем Enter и перезагрузите компьютер при появлении запроса. Ваш компьютер будет перезагружен мгновенно, поэтому обязательно сохраните любую работу заранее.

  • Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Установка linux в Windows 10 в Powershell

2. Установите дистрибутив Linux или Ubuntu из Windows Store

Перейдите в магазин Windows и выберите дистрибутив Linux, который вы хотите установить. На момент написания этого руководства, для установки доступны три дистрибутива Linux, включая Ubuntu.

Дистрибутивы Linux в windows store

  • Нажмите кнопку «Получить«, чтобы загрузить дистрибутив.

Скачать UBUNTU в Windows Store

3. Запуск дистрибутива

  • После скачивания, нажмите «Запустить» или в поиске windows наберите ubuntu.
  • Как только откроется окно, дождитесь завершения процесса установки.
  • Создайте свое имя пользователя и пароль UNIX. Это может отличаться от текущего имени пользователя и пароля Windows и не иметь отношения к вашему существующему имени и паролю.

Если вдруг у вас запуск Ubuntu завершается ошибкой 0x8000000d, то запустите PowerShell и введите еще раз команду, а потом пробуйте запустить приложение ubuntu еще раз Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Поиск windows 10 запуск ubuntu

Установить рабочий стол Linux в Windows

Шаг 1. Как только вы проделали выше шаги, установили и включили подсиситему Linux для Windows 10, то следующим шагом будем установка графической оболочки, чтобы появился рабочий стол Linux. В окне bash Linux введите ниже команды по 1 -ой, чтобы обновить:

  1. sudo apt update
  2. sudo apt upgrade

Обновить Linux в Windows 10

Шаг 2. Теперь перейдите в Sourceforge, чтобы загрузить и установить утилиту VcXsrv Windows X Server. Это нужно для того, чтобы рабочий стол Ubuntu, в моем случае, отображался, как графическая оболочка.

Скачать и установить VcXsrv Windows X Server

Шаг 3. Прежде чем продолжить, убедитесь, что сервер X Window установлен, как описано в шаге 2. Следующим шагом является установка вашего рабочего стола Linux. Доступны многие окружения рабочего стола linux, такие как GNOME, Cinnamon, Xfce, LXDE. Я буду устанавливать облегченную среду под названием LXDE. Для установки вводим следующее:

  1. sudo apt install lxde

Установка рабочего стола lxde linux для Windows

После установки LXDE введите эту команду, которая заставит Linux отображать рабочий стол через X-сервер:

  1. export DISPLAY=:0
  2. export LIBGL_ALWAYS_INDIRECT=1

Не закрывайте командную строку bash ubuntu, сверните её, и идем ниже

Отображать рабочий стол Linux

Шаг 3. Когда вы запустите программу X Server, которую вы скачали выше, вы увидите среду рабочего стола Linux. При запуске VcXsrv, вам будет выдан лаунчер, который предлагает запустить в окне, на весь экран и т.п. Поставьте значение 0 в графе Display number. Нажмите «Далее» и в следующем окне выберите Start no client. Далее жмите все время Next. Все готова, можете приступать к работе.

Если появился черное окно и ничего не отображается, то смотрим ниже, скорее всего не сработал экспорт дисплея или вы что-то упустили.

Запуск VcXsrv

Шаг 4. Запуск рабочего стола Linux в Windows через командную строку bash ubuntu. Запустите сам VcXsrv (шаг 3), дойдите до черно окна и не закрывайте его, запустите bash командную строку ubuntu, если вы её закрыли, и введите следующее:

  1. export DISPLAY=:0
  2. startlxde

Таким образам отобразится графическая оболочка и появится рабочий стол Linux в Windows 10. Теперь вы можете запускать любое из предустановленного программного обеспечения Linux и даже устанавливать новые приложения и утилиты.

Запуск рабочего стола Linux через bash


comments powered by HyperComments

Linux в среде Windows 10.

    Начиная с версии Windows 10 Build 14251, в набор стандартных компонентов системы была добавлена Подсистема Windows для Linux (Windows Subsystem for Linux или WSL). Главное назначение WSL – создать программный слой в среде Windows 10 для обеспечения функционирования приложений Linux. Первоначально подсистема поддерживала только дистрибутив Ubuntu 14.04, образ которого можно было загрузить через магазин Microsoft Store. Затем количество поддерживаемых дистрибутивов увеличилось, и продолжает увеличиваться, включая наиболее популярные дистрибутивы. Установка выполняется таким же образом, как и стандартное приложение, без применения виртуальных машин или сторонних пакетов эмуляции. Пользователь Windows 10 в пару кликов мышкой устанавливает операционную систему семейства Linux без графической оболочки, функционирующую на компьютере подобно стандартному приложению, загруженному из Microsoft Store.

Подсистема WSL позволяет:

1. Выбрать предпочитаемый дистрибутив из магазина Windows (Microsoft Store)

2. Пользоваться командной оболочкой Linux и прочим программным обеспечением совершенно бесплатно.

3. Выполнять скрипты командной оболочки и использовать популярные программные средства Linux, как ssh, MySQL, Apache, языки программирования C/C++, Ruby, Python и т.п.

4. Устанавливать дополнительное программное обеспечение с использованием собственного менеджера пакетов выбранного дистрибутива GNU/Linux.

5. Использовать совместное функционирование приложений обеих операционных систем и использование общих ресурсов.

Подсистема WSL продолжает развиваться, и постепенно трансформировалась в новую версию, получившую обозначение WSL 2, отличающуюся повышенным быстродействием, улучшенным взаимодействием с компьютерным оборудованием и компонентами Windows, новой архитектурой на базе реального ядра Linux, специально адаптированного для использования в WSL 2. Кроме того, данное ядро Linux распространяется с открытым исходным кодом (Open Source), который можно загрузить на странице проекта github.com-WSL2-Linux-Kernel

WSL 2 является очередным шагом в технологии виртуализации, позволившим использовать ядро Linux, выполняемое под управлением относительно небольшой утилиты, обеспечивающей высокий уровень интеграции между Windows и Linux и значительное повышение быстродействия операций ввода-вывода, системных вызовов и приложений. По некоторым данным, распаковка zip-архивов в среде WSL 2 выполняется в 15-20 раз быстрее, а сборка пакетов – в 2-5 раз быстрее чем в WSL 1.

По умолчанию, компонент Подсистема Windows для Linux (WSL) выключен. Для включения можно воспользоваться апплетом Панели управления Программы и компоненты — Включение или отключение компонентов Windows:

Включение подсистемы Windows для Linux.

После включения WSL, нужно выполнить перезагрузку Windows.

Для включения WSL и проверки ее состояния можно использовать командную оболочку Power Shell, запущенную на выполнение от имени Администратора. Проверить состояние подсистемы можно командой:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Пример отображаемой информации:

FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : Подсистема Windows для Linux
Description : Предоставляет службы и среды для запуска собственных средств и оболочек Linux в пользовательском режиме в Windows.
RestartRequired : Possible
State : Enabled

CustomProperties :

ServerComponent\Description : Предоставляет службы и среды для запуска собственных средств и оболочек Linux в пользовательском режиме в Windows.
ServerComponent\DisplayName : Подсистема Windows для Linux
ServerComponent\Id : 1033
ServerComponent\Type : Feature
ServerComponent\UniqueName : Microsoft-Windows-Subsystem-Linux
ServerComponent\Deploys\Update\Name : Microsoft-Windows-Subsystem-Linux

Строка State : Enabled указывает на то, что подсистема Windows для Linux включена.

Для включения подсистемы WSL посредством Power Shell можно использовать команду:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Для отключения WSL:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Выбор дистрибутива и установка Linux

После включения подсистемы WSL и перезагрузки Windows 10 можно приступить к установке ОС Linux. В прежних версиях подсистемы Windows для Linux для настройки дистрибутива Linux использовалась утилита командной строки lxrun.exe. На сегодняшний день она считается устаревшей и в дальнейшем будет исключена из подсистемы WSL. Дистрибутивы можно установить из стандартного Магазина Windows (Microsoft Store): Выбор дистрибутива Linux в Microsoft Store.

При необходимости, можно получить более подробную информацию о конкретном дистрибутиве, например Kali:

Сведения о приложении Kali, загружаемом из Microsoft Store.

Как видим, отображаются краткие сведения о дистрибутиве, способе запуска Linux после установки, а также сведения о загружаемом образе. Для уменьшения объема загружаемых данных образ не содержит графической оболочки и некоторых приложений, которые легко устанавливаются с использованием штатных средств управления пакетами выбранного дистрибутива Linux.

После загрузки и начальной установки дистрибутива, можно выполнить его запуск нажатием кнопки Запустить

Первый запуск установленного в подсистеме WSL Linux.

После запуска начнется развертывание полученного дистрибутива Linux в подсистеме WSL. В процессе начальной установки и настройки потребуется ввести имя пользователя и пароль.

Начальная установка и настройка Linux в подсистеме WSL Linux.

После успешной установки, в консоли отобразится стандартное приглашение командной строки. К этому моменту будут выполнены настройки сетевых интерфейсов, имени узла, клиента DNS и т.п а также смонтированы логические диски ОС Windows 10 (стандартно — /mnt/c — для диска C:, /mnt/d — для диска D: и т.д). Дальнейшее применение установленного Linux зависит от его предназначения и неизбежно потребует установки дополнительных приложений с использованием стандартных средств данного дистрибутива, при чем – из командной строки. Как и в случае с отдельным компьютером с ОС Linux, первым шагом в применении нового дистрибутива будет освоение методов установки и удаления программ.

На сегодняшний день, в Microsoft Store имеется несколько дистрибутивов Linux – Ubuntu ( в том числе и с длительной поддержкой), Kali, Debian и Suse (в том числе и серверные дистрибутивы). Очевидно, что этот набор будет постепенно расширяться. Наиболее востребованным дистрибутивом, по статистике Microsoft Store, является Ubuntu. После завершения установки, запуск программы можно выполнить в командной строке, введя:

ubuntu

Либо Win+Rubuntu

Либо с использованием ярлыка из меню кнопки ПускUbuntu.

В самом начале использования вновь установленного Linux, желательно выполнить обновление установленного ПО и добавить необходимый для дальнейшей работы набор программ.

В дистрибутивах на основе Debian (Ubuntu) имеется стандартная утилита apt для работы с системой управления программными пакетами APT (Advanced Packaging Tool). Данная утилита и ее производные (apt-cache, apt-get) используются для установки новых программных пакетов, удаления существующих, обновления уже установленных, а также для обновления всей операционной системы. Примеры использования:

apt –h — отобразить подсказку по использованию apt
apt-cache –h — отобразить подсказку по использованию apt-cache
apt-get –h — отобразить подсказку по использованию apt-get

Более подробную подсказку можно получить из комплекта документации man-страниц:

man apt

sudo apt-get update — обновить список установленных программных пакетов в соответствии с источниками, заданными в файле /etc/apt/sources.list.

sudo apt-get upgrade — обновить все программные пакеты, существующее в системе на данный момент времени.

sudo apt-get install mc — установить файловый менеджер Midhight Commander

apt-get remove —purge mc — удалить файловый менеджер Midhight Commander и все его конфигурационные файлы (параметр —purge)

Некоторые характерные особенности WSL

Несмотря на то, что WSL 2 стала значительным шагом развития подсистемы, в ней остаются множественные проблемы не позволяющие получить полноценную ОС семейства Linux в среде Windows. Хотя, изначально, при разработке подсистемы WSL, такая задача и не ставилась, ведь требовалось всего лишь средство для разработчиков, создающее универсальную, быстродействующую и привычную среду в рамках ОС Windows. Если постановка задачи не изменится, то очевидно, подсистема WSL никогда не заменит ”настоящий” Linux, хотя и приблизится к нему вплотную.

В частности, в реализации WSL на вторую половину 2019 г. нет возможности установки модулей ядра, не реализован стандартный для Linux механизм сокетов, нет полноценного взаимодействия между процессами и т.д. и т.п. Как результат – нет графической оболочки пользователя, нет возможности использования приложения, требующих наличие драйвера ядра, не работает огромное количество системных служб. Часть проблем будет решаться по мере выхода новых версий WSL, либо с применением альтернативных решений, в том числе и от сторонних разработчиков, как например WSL SSH Launcher, который можно загрузить из Microsoft Store и использовать для запуска сервиса ssh в среде WSL. Программа платная ($0.99), но имеется и бесплатная пробная версия.

Страницы с описанием и примерами команд подсистемы WSL:

BASH — командная оболочка BASH в подсистеме Windows для Linux (WSL).

WSL — выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10

WSLconfig — конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10

Если вы желаете помочь развитию проекта, можете воспользоваться кнопкой «Поделиться» для своей социальной сети

В начало страницы &nbsp &nbsp &nbsp | &nbsp &nbsp &nbsp На главную страницу сайта

Ручная загрузка подсистемы Windows для Linux (WSL) дистрибутивов

  • Время чтения: 2 мин

В этой статье

Существует несколько сценариев, в которых может быть недоступно (или требуется) Установка WSL Linux дистрибутивов с помощью Microsoft Store.There are several scenarios in which you may not be able (or want) to, install WSL Linux distros via the Microsoft Store. В частности, вы можете использовать номер SKU ОС Windows Server или долгосрочного обслуживания (LTSC), который не поддерживает Microsoft Store, или политики корпоративной сети и (или) администраторы, чтобы не допускать использование Microsoft Store в вашей среде.Specifically, you may be running a Windows Server or Long-Term Servicing (LTSC) desktop OS SKU that doesn’t support Microsoft Store, or your corporate network policies and/or admins to not permit Microsoft Store usage in your environment.

В таких случаях, когда доступ к магазину WSL, как скачать и установить Linux дистрибутивов в WSL?In these cases, while WSL itself is available, how do you download and install Linux distros in WSL if you can’t access the store?

Примечание. среды оболочки командной строки, в том числе cmd, PowerShell и Linux/WSL дистрибутивов, не могут выполняться в режиме Windows 10 S.Note: Command-line shell environments including Cmd, PowerShell, and Linux/WSL distros are not permitted to run on Windows 10 S Mode. Это ограничение существует, чтобы обеспечить целостность и безопасность, которые предоставляет режим S. Дополнительные сведения см. в этой записи .This restriction exists in order to ensure the integrity and safety goals that S Mode delivers: Read this post for more information.

Скачивание дистрибутивовDownloading distros

Если Microsoft Store приложение недоступно, вы можете скачать и вручную установить дистрибутивов Linux, щелкнув следующие ссылки:If the Microsoft Store app is not available, you can download and manually install Linux distros by clicking these links:

Это приведет к скачиванию пакетов <distro>.appx в выбранную папку.This will cause the <distro>.appx packages to download to a folder of your choosing. Следуйте инструкциям по установке , чтобы установить Скачанные дистрибутив.Follow the installation instructions to install your downloaded distro(s).

Скачивание дистрибутивов с помощью командной строкиDownloading distros via the command line

При желании вы также можете скачать предпочтительные дистрибутив с помощью командной строки:If you prefer, you can also download your preferred distro(s) via the command line:

Скачать с помощью PowerShellDownload using PowerShell

Чтобы скачать дистрибутивов с помощью PowerShell, используйте командлет Invoke-WebRequest .To download distros using PowerShell, use the Invoke-WebRequest cmdlet. Ниже приведен пример инструкции по скачиванию Ubuntu 16,04.Here’s a sample instruction to download Ubuntu 16.04.

Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing

Совет

Если загрузка занимает много времени, отключите индикатор выполнения, задав $ProgressPreference = 'SilentlyContinue'If the download is taking a long time, turn off the progress bar by setting $ProgressPreference = 'SilentlyContinue'

Скачать с помощью функции «перелистывание»Download using curl

Обновление Windows 10 пружины 2018 (или более поздней версии) включает в себя популярную программу командной строки , с помощью которой можно вызывать веб-запросы (например, команды HTTP GET, POST, WHERE и т. д.) из командной строки.Windows 10 Spring 2018 Update (or later) includes the popular curl command-line utility with which you can invoke web requests (i.e. HTTP GET, POST, PUT, etc. commands) from the command line. Вы можете использовать curl.exe, чтобы скачать приведенную выше дистрибутивов:You can use curl.exe to download the above distros:

curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604

В приведенном выше примере выполняется curl.exe (не только curl), чтобы убедиться, что в PowerShell вызывается фактический исполняемый файл, а не псевдоним PowerShell для Invoke-WebRequest .In the above example, curl.exe is executed (not just curl) to ensure that, in PowerShell, the real curl executable is invoked, not the PowerShell curl alias for Invoke-WebRequest

Примечание. Использование curl может быть предпочтительнее, если необходимо вызвать или создать скрипт для загрузки с помощью оболочки cmd и (или) .bat / .cmd сценариев.Note: Using curl might be preferable if you have to invoke/script download steps using Cmd shell and/or .bat / .cmd scripts.

Установка дистрибутивInstalling your distro

Если вы используете Windows 10, вы можете установить дистрибутив с помощью PowerShell.If you’re using Windows 10 you can install your distro with PowerShell. Просто перейдите в папку, содержащую дистрибутив, скачанный выше, и в этом каталоге выполните следующую команду, где app_name — имя файла дистрибутив. appx.Simply navigate to folder containing the distro downloaded from above, and in that directory run the following command where app_name is the name of your distro .appx file.

Add-AppxPackage .\app_name.appx

Если вы используете Windows Server, инструкции по установке можно найти на странице документации по Windows Server .If you are using Windows server you can find the install instructions on the Windows Server documentation page.

После установки дистрибутив ознакомьтесь со страницей этапы инициализации , чтобы инициализировать новый дистрибутив.Once your distro is installed please refer to the Initialization Steps page to initialize your new distro.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *