Linux в windows: Linux для Windows. Запускаем полноценный десктоп Ubuntu внутри Windows 10 — «Хакер» – Установка подсистемы Windows для Linux (WSL) в Windows 10

Содержание

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

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

В этой статье

Установка подсистемы 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.

Опыт настройки и использования 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, поэтому буду пробовать ставить.

Включение подсистемы 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.

Подробнее о подсистеме Windows для Linux

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

В этой статье

Подсистема Windows для Linux позволяет разработчикам запускать среду GNU/Linux, включая большинство программ командной строки, служебных программ и приложений, непосредственно в Windows без каких-либо изменений, избавляя от необходимости использовать отдельную виртуальную машину.The Windows Subsystem for Linux lets developers run a GNU/Linux environment — including most command-line tools, utilities, and applications — directly on Windows, unmodified, without the overhead of a virtual machine.

Можно сделать следующее.You can:

  1. Выберите предпочтительные дистрибутивы GNU/Linux из Microsoft Store.Choose your favorite GNU/Linux distributions from the Microsoft Store.
  2. Запускайте бесплатные программы командной строки, например grep, sed, awk, или другие двоичные файлы ELF-64.Run common command-line free software such as
    grep
    , sed, awk, or other ELF-64 binaries.
  3. Запускайте сценарии Bash Shell и приложения командной строки GNU/Linux, включая:Run Bash shell scripts and GNU/Linux command-line applications including:
    • инструменты: vim, emacs, tmux;Tools: vim, emacs, tmux
    • языки: JavaScript/Node.js, Ruby, Python, C/C++, C# и F#, Rust, Go и т. д.;Languages: Javascript/node.js, Ruby, Python, C/C++, C# & F#, Rust, Go, etc.
    • службы: sshd, MySQL, Apache, lighttpd.Services: sshd, MySQL, Apache, lighttpd
  4. Установите дополнительное программное обеспечение с помощью собственного диспетчера пакетов дистрибутивов GNU/Linux.Install additional software using own GNU/Linux distribution package manager.
  5. Вызывайте приложения Windows с помощью оболочки командной строки, похожей на UNIX.Invoke Windows applications using a Unix-like command-line shell.
  6. Вызывайте приложения GNU/Linux в Windows.Invoke GNU/Linux applications on Windows.

начало работыGetting Started

Блоги группыTeam Blogs

Записи и статьиPosts & Articles

Предоставление отзываProvide Feedback

Ubuntu интегрировали в Windows 10 / Habr

Сегодня на конференции Build компания Microsoft расскажет о последних нововведениях, которые сделаны в новом билде Windows 10 Redstone. Незадолго до презентации стало известно, что на конференцию приглашены сотрудники Canonical, и этому есть веская причина.

Дело в том, что Microsoft совместно с Canonical сумели интегрировать операционную систему Ubuntu внутрь Windows 10 (что-то вроде эмулятора). Дастин Кирклэнд, сотрудник группы Ubuntu Product and Strategy, рассказал на конференции об этом проекте (видеозапись), а ещё раньше в своём блоге выложил несколько спойлеров.

«Это немного странно для меня, — пишет Дастин, — потому что я не использовал Windows уже около 16 лет. Но всё изменилось пару месяцев назад, когда погрузился в сверхсекретный (и абсолютно невероятный) проект между Microsoft и Canonical, который анонсировал сегодня во вступительной речи Кевин Галло».

Итак, в новом билде Windows 10 пространство пользователя Ubuntu и оболочка bash работают нативно в консоли cmd.exe!

Работает это следующим образом.

  1. Пользователь Windows 10
  2. Открывает меню «Пуск»
  3. Набирает там «bash» [enter]
  4. После чего открывается консоль cmd.exe
  5. С запущенным /bin/bash от Ubuntu
  6. С полным доступом ко всему пространству пользователя Ubuntu
  7. Да, там есть apt, ssh, rsync, find, grep, awk, sed, sortxargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch
  8. И большинство из десятков тысяч бинарных пакетов в архивах Ubuntu!

Дастин Кирклэнд говорит, что это не виртуальная машина, никаких контейнеров и не Cygwin, а нечто похожее на эмулятор, где системные вызовы Linux в реальном времени транслируются в системные вызовы Windows. Сейчас в Windows 10 используется Ubuntu 14.04 LTS.

Microsoft называет это «Windows Subsystem for Linux» (исходный код пока закрыт).

Трансляция вызовов очень эффективная: утилита sysbench показывает почти одинаковую производительность CPU, памяти и операций ввода/вывода.

Все логические диски, вроде C:, монтируются для чтения и записи в директории /mnt, то есть /mnt/c, /mnt/d и т.д. И наоборот, файловая система Ubuntu доступна через «Проводник» в C:\Users\Kirkland\AppData\Local\Lxss\rootfs\.

Из «подсистемы Linux» нормально запускается ssh.

Конечно, пока есть некоторые глюки, особенно с tty и vt100. Не очень хорошо работают byobu, screen и tmux. Но всё равно Microsoft и Canonical проделали огромную работу, что такое вообще стало возможным.

Установка подсистемы Linux в Windows Server

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

В этой статье

Применимо к Windows Server 2019 и более поздних версийApplies to Windows Server 2019 and later

В//Build2017 Корпорация Майкрософт объявила, что подсистема Windows для Linux будет доступна в Windows Server.At //Build2017, Microsoft announced that Windows Subsystem for Linux will be available on Windows Server. В этих инструкциях рассматривается запуск подсистемы Windows для Linux на Windows Server 1709 и более поздних версий.These instructions walk through running the Windows Subsystem for Linux on Windows Server 1709 and later.

Включение подсистемы Windows для Linux (WSL)Enable the Windows Subsystem for Linux (WSL)

Перед запуском Linux дистрибутивов в Windows необходимо включить дополнительный компонент «подсистема Windows для Linux» и перезагрузить компьютер.Before you can run Linux distros on Windows, you must enable the «Windows Subsystem for Linux» optional feature and reboot.

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

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    
  2. При появлении запроса перезагрузите компьютер.Restart your computer when prompted. Эта перезагрузка необходима для того, чтобы WSL мог инициировать доверенную среду выполнения.This reboot is required in order to ensure that WSL can initiate a trusted execution environment.

Загрузка дистрибутив LinuxDownload a Linux distro

Для загрузки избранного дистрибутива Linux выполните следующие инструкции .Follow these instructions to download your favorite Linux distribution.

Извлечение и установка дистрибутив LinuxExtract and install a Linux distro

Теперь, когда вы загрузили дистрибутив, извлеките его содержимое и вручную установите дистрибутив:Now that you’ve downloaded a distro, extract its contents and manually install the distro:

  1. Извлеките <distro>.appx содержимое пакета, например с помощью PowerShell:Extract the <distro>.appx package’s contents, e.g. using PowerShell:

    Rename-Item ./Ubuntu.appx ./Ubuntu.zip
    Expand-Archive ./Ubuntu.zip ./Ubuntu
    
  2. Запустите средство запуска дистрибутив для завершения установки, запустите приложение запуска дистрибутив в целевой папке с именем <distro>.exe.Run the distro launcher To complete installation, run the distro launcher application in the target folder, named <distro>.exe. Например: ubuntu.exeи т. д.For example: ubuntu.exe, etc.

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

    • Сбой установки с ошибкой 0x8007007e: Эта ошибка возникает, когда система не поддерживает WSL.Installation failed with error 0x8007007e: This error occurs when your system doesn’t support WSL. Убедитесь в следующем.Make sure that:
  3. Добавьте путь дистрибутив в путь среды Windows (C:\Users\Administrator\Ubuntu в этом примере это), например с помощью PowerShell:Add your distro path to the Windows environment PATH (C:\Users\Administrator\Ubuntu in this example), e.g. using Powershell:

    $userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")
    [System.Environment]::SetEnvironmentVariable("PATH", $userenv + ";C:\Users\Administrator\Ubuntu", "User")
    

    Теперь можно запустить дистрибутив из любого пути, введя <distro>.exe.You can now launch your distro from any path by typing <distro>.exe. Пример: ubuntu.exeFor example: ubuntu.exe

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

Установка и использование Linux в Windows 10

Linux, Windows 10
  • Recluse
  • 02.06.2019
  • 2 224
  • 0
  • 0.00%
  • 3
Установка и использование Linux в Windows 10

Содержимое статьи:

Однажды генеральный директор Майкрософт Сатья Наделла заявил «Microsoft Loves Linux» (дословно переводится как Майкрософт любит Линукс), и словно в доказательство этого дела, в Windows 10 появилась возможность установки нескольких дистрибьютивов семейства операционных систем Linux, с которыми можно будет взаимодействовать из основной операционной системы. Установить их можно буквально в пару кликов, и в этой статье мы расскажем Вам как.

Установка Linux в Windows 10

Важный момент — использовать подсистему Windows для Linux можно только на 64-разрядных операционных системах.

  1. Первым делом нужно установить компонент «Подсистема Windows для Linux». Сделать это можно двумя способами — через старую панель управления, или через PowerShell.
    • Запускаем классическую Панель управления, выбираем «Программы и компоненты», и там на боковой панели нажимаем на «Включение или отключение компонентов Windows». В открывшемся окне нужно найти пункт «Подсистема Windows для Linux», отметить его галочкой и нажать «ОК». Затем, после установки компонента скорее всего понадобиться перезагрузка компьютера.
      Установка и использование Linux в Windows 10
    • Через PowerShell достаточно выполнить одну единственную команду:
      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

      По завершению установки перезагрузка так же будет необходима.

  2. После перезагрузки на Ваш выбор станет доступна установка любого дистрибьютива из Microsoft Store. На данный момент выбор следующий:

    Для установки любого из выше перечисленных дистрибьютивов достаточно перейти по ссылке и нажать «Установить».

    Установка и использование Linux в Windows 10

  3. После скачивания и установки, запустить нужный дистрибьютив можно следующими способами:
    • Из самого магазина — достаточно нажать кнопку «Запустить».
    • Из меню «Пуск».
      Установка и использование Linux в Windows 10

    При первом запуске какое-то время будет идти установка ОС, после чего система будет готова к использованию.
    Установка и использование Linux в Windows 10

Использование Linux в Windows 10

Ниже будет несколько полезной информации и советов по использованию Linux в Windows 10:

  • Получить доступ к файлам установленной ОС Linux можно просто набрав в терминале следующую команду:
    explorer.exe .

    После выполнения данной команды откроется проводник с открытой домашней директорией текущего пользователя Linux.
    Установка и использование Linux в Windows 10

  • Получить доступ к файлам Linux из Проводника можно просто указав в адресной строке проводника следующий путь:
    \\wsl$\\

    Т. е. если у Вас установлен дистрибьютив Ubuntu, то команда должна выглядеть следующим образом:

    \\wsl$\Ubuntu\

    Установка и использование Linux в Windows 10

Возможные проблемы

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

WslRegisterDistribution failed with error: 0x8007019e
The Windows Subsystem for Linux optional component is not enabled. Please enable it and try agent.
See https://aka.ms/wslinstall for details.
Press any key to continue…

Установка и использование Linux в Windows 10

То это значит, что у вас не установлен компонент «Подсистема Windows для Linux». Про её установку можно прочесть в самом начале статьи.



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

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