Можно ли запустить linux на windows

Нужно использовать терминал Linux на компьютере с Windows? Узнайте, как запустить Linux на Windows 10 с помощью Windows Subsystem for Linux.

Хотите получить быстрый и простой доступ к Linux на ПК с Windows? Лучший вариант – использовать подсистему Windows Subsystem for Linux.

Это даст вам оболочку Linux bash, окно терминала, запущенное в Windows. Этот процесс, по сути, устанавливает Linux на Windows 10 – вот что вам нужно знать.

Впервые появившись в обновлении Windows 10 Anniversary Update 2018 года и распространившись среди всех пользователей в обновлении Fall Creators Update, подсистема Windows для Linux позволяет запускать программное обеспечение Linux в Windows 10.

Это функция, которая была встроена в Windows. В отличие от установки Linux на виртуальной машине, Windows Subsystem for Linux может быть мгновенно вызвана из меню “Пуск”.

Однако для того, чтобы это работало, необходимо сначала включить эту функцию.

После установки подсистемы Windows для Linux в Windows 10 вы можете запускать Linux в режиме командной строки. Это дает вам почти полнофункциональный терминал Linux для Windows 10.

Linux Bash Shell: Только для 64-разрядных версий Windows 10

Прежде чем приступить к работе, убедитесь, что вы используете 64-разрядную версию Windows 10. К сожалению, подсистема Windows для Linux не будет работать на 32-битных системах. Проверьте, работает ли на вашем компьютере 32- или 64-разрядная версия Windows.

Чтобы проверить компьютер на 64-битную совместимость, нажмите WIN + I, чтобы открыть “Настройки”, затем “Система” > “О системе”. В разделе “Характеристики устройств” вы увидите список “Тип системы”; для Windows Subsystem for Linux у вас должно показать 64-битную операционную систему.

muo windows wsl 64 bit

Проверьте, является ли ваш компьютер 64-разрядным

Если нет, вам нужно обновить систему Windows 10 с 32-разрядной до 64-разрядной. Однако это сработает только в том случае, если у вас 64-битное оборудование.

Как установить Linux Bash Shell на Windows 10

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

Готовы установить Bash в Windows? Начните с нажатия кнопки Пуск и ввода “Включение или отключение компонентов Windows“. Должен появиться пункт Включение или отключение компонентов Windows, щелкните его, чтобы открыть. Подождите, пока список заполнится, затем прокрутите вниз до пункта Подсистема Windows для Linux.

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

windows wsl add feature

Включить подсистему Windows для Linux

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

windows wsl store

Дистрибутивы Linux в Магазине Windows

Установите операционную систему Linux, затем подождите. После завершения нажмите кнопку Запуск в Магазине Windows или откройте его из меню Пуск. При первом запуске вам будет предложено ввести имя пользователя и пароль для создания учетной записи.

Для запуска выбранной вами среды Linux доступны и другие способы. В меню “Пуск” вы можете ввести:

  • bash
  • wsl

Оба способа отобразятся как “Выполнить команду”, которую можно выбрать для мгновенного открытия оболочки Bash. Разница в использовании любого из этих методов заключается в том, что они открываются в каталоге /mnt/c/Windows/System32. Это означает, что вы можете просматривать подкаталог System32 в Windows 10.

Linux в Windows

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

Кроме того, для запуска Bash больше не нужно включать режим разработчика Windows 10 в Настройках.

Чем отличается терминал Bash Shell от Windows PowerShell?

Запустив терминал Linux для Windows 10, вы можете вводить различные команды командной строки.

Но чем это отличается от простого использования командной строки Windows или PowerShell?

Ну, естественно, обе системы совершенно разные. При использовании PowerShell или командной строки вы ограничены командами, характерными для Windows. Это означает, например, использование команды dir для просмотра содержимого каталога; в Linux эквивалентом является ls.

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

Что можно делать с Bash в Windows 10?

Установив оболочку Bash в Windows 10, вы можете использовать ее так же, как и на ПК с Linux.

Стандартные команды, такие как help, покажут вам, как пользоваться предустановленными приложениями и инструментами. Например, apt help продемонстрирует использование менеджера пакетов. Вы можете использовать sudo apt update для получения последних пакетов, как и на ПК с Linux.

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

Аналогично, команда sudo apt upgrade обновляет Linux до последней версии ОС.

Между тем, доступны и другие стандартные команды. Вы можете проверить подключение к сети с помощью ifconfig, проверить текущий каталог с помощью pwd и перейти в другой каталог с помощью cd.

Вы также можете получить быстрый список последних 10 вводов с помощью команды history.

Одним словом, это все равно что использовать Linux в операционной системе Windows 10.

Windows 10 Bash приносит Linux на любой компьютер

Настроить подсистему Windows для Linux и получить доступ к оболочке Bash очень просто. Это гораздо быстрее, чем запуск виртуальной машины, и гораздо менее сложно, чем использование двойной загрузки.

Вкратце, все, что вам нужно сделать для запуска оболочки Linux Bash на Windows 10, это:

  • Убедитесь, что вы используете 64-разрядную Windows 10.
  • Включить подсистему Windows для Linux на экране Windows Features.
  • Установите выбранную вами среду Linux из Магазина Windows.
  • Запустите Linux из меню “Пуск”.

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

Между тем, почти все команды Linux можно использовать в оболочке Bash в Windows.

В следующей статье, мы рассмотрим как установить рабочее окружение lmde, xfce или kde в wls.

Как запустить рабочий стол Linux в Windows с помощью WSL

How to Run Linux Apps on Windows 10 and 11 Using WSL

I’ve been using Windows Subsystem for Linux (WSL) for my OS class for quite a while now. And I love how I can use Linux commands in Windows in a straightforward way without the added complexity of installing a virtual machine or dual booting.

By the end of this article, you should be able to run Linux commands right from Windows like this:

Untitled

example of linux commands on windows

Prerequisites

To have WSL running effectively, I suggest you upgrade to Windows 11. WSL is also available on Windows 10, but it is way more efficient on Windows 11 based on my experience.

For Windows 10, you’ll need to have build 21364 or higher.

This article will cover what you can do on both Windows 10 and 11

How to Install WSL

The command to run WSL is straightforward:

wsl --install

This will download the Linux kernel, set WSL 2 as the default, and install Ubuntu as the default distribution.

Don’t want ubuntu? Here is the command for you:

wsl --install -d <distro name>

These are the available distributions as of now:

  • Ubuntu
  • OpenSUSE Leap 42
  • SUSE Linux Enterprise Server 12 (SLES)
  • Kali Linux
  • Debian GNU/Linux

After this, you’ll find an app called Ubuntu (or any other distro) in your start menu:

Untitled-1

Open the Linux Terminal

Open the Ubuntu app that you just installed, and you’ll be greeted with a Linux terminal! Try running some commands:

Untitled-2

What if I want to access my Windows files?

If you go to your file explorer (winkey+E) you’ll find a new Linux option on the left where all your Linux files exist. This is where when any files you create in the terminal will be located:

Untitled-3

But what if you want to access your regular files?

Luckily, you can do that easily. Just run the following command in your Linux terminal:

cd /mnt/

If you run ls here, you’ll find your computer drives. This way you’ll be able to cd your way into your files.

Untitled-4-1

How to Create Aliases in WSL2

Do you ever have a long command to type and wish there were a shortcut for it? Then, aliases are your friends.

There are two ways to create aliases:

  • per session
  • permanently

How to create per session aliases in WSL2

To create an alias in your current session of Linux (the alias will be forgotten once you close the terminal), then you should run the following command:

alias <alias name>='<command>'

for example:

alias runc='gcc main.c -o main'

How to create permanent aliases in WSL2

We’ll edit a file called .bash_aliases to save our aliases.

Run the following commands:

cd ~
ls -a

Look through the list of files that are printed out and look for .bash_aliases.

If you can’t find it, run the following command:

touch .bash_aliases

Now in order to edit the file, run this command:

vi .bash_aliases

You’ll be greeted with a screen like this:

Untitled-5

  • Press «i» to start typing, and add as many aliases as you want.

For example:

alias runc='gcc main.c -o main'
alias hello='echo hello'
  • To exit the typing mode, press «ctrl + c».
  • To exit Vim and save the files type «:wq!» (I’m proud that I didn’t have to google that.)

Now you’re ready! Restart Ubuntu and start typing any of the following aliases above and it should work perfectly:

Untitled-6

Okay cool, now we know how to run command line apps from WSL2. But what if we want to run Linux GUI apps? The answer is simple – you just need to install the GUI app before running it. I’ll use Firefox as an example.

To install Firefox:

sudo apt install firefox

To run Firefox:

firefox

Untitled

If you already have Firefox on your Windows machine, you’ll find that it isn’t open. That’s because you’re now running Firefox for Linux not Windows.

You can even run Firefox for Linux right from the start menu if you use Windows 11. You’ll find it under your distro’s folder.

Untitled

Conclusion

This article covered how to run WSL 2 effectively. If you have any questions, feel free to contact me on any of my social media platforms



Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

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

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

К написанию данной статьи меня побудил вопрос на Тостере, связанный с 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 с помощью Virtualbox главное изображение

Рассказываем, как установить Linux Ubuntu на Windows бесплатно с помощью VirtualBox и зачем вообще это делать.

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

Что нужно для установки:

  • Инсталлятор Oracle VM VirtualBox для Windows Hosts. Ссылка на скачивание: Download Oracle VM VirtualBox
  • Образ операционной системы Ubuntu Linux в формате ISO. Ссылка на скачивание: Download Ubuntu Desktop

Читайте также:
Изучите необходимый минимум Linux, чтобы быть продуктивными

Для начала нужно установить и запустить приложение VirtualBox.

Для начала нужно установить и запустить приложение VirtualBox

Нажимаем кнопку «Создать», находим в списке тип операционной системы «Linux». Лучше всего выбрать стандартную версию «Ubuntu» 64 битной архитектуры, а название для нее можно ввести любое.

Укажите тип и имя ОС

Указываем объем оперативной памяти, выделенной под виртуальную систему. Рекомендованный объем составляет 1024 MB.

Укажите объем оперативной памяти

Указываем объем дискового пространства, выделенного под виртуальную систему. Рекомендованный объем — 10 GB, но вы можете указать больше, так как новые версии могут потребовать много пространства для установки.

Укажите объем жесткого диска под операционную систему

Тип виртуального жесткого диска можно оставить как есть — VDI (VirtualBox Disk Image).

Укажите тип виртуального жесткого диска

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

Укажите формат хранения данных

Имя и размер файла можно оставить без изменений, поэтому можно сразу нажать на кнопку «Создать».

Создайте виртуальный диск

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

Нажатие на кнопку «Запустить» приведет к появлению диалогового окна с предложением указать путь до скаченного ISO-образа. Сделайте это и нажмите кнопку «Продолжить».

Устанавливаем Ubuntu

Виртуальная машина автоматически выполнит часть процессов, но в некоторых операциях все же потребуется участие пользователя.

Выберите языковую поддержку в списке слева и нажмите «Установить Ubuntu».

Выбираем язык

Можно загрузить все обновления сразу на этапе установки.

Скачиваем все обновления

Без особых опасений выбираем пункт «Стереть диск и установить Ubuntu» и двигаемся дальше.

Стираем виртуальный диск и ставим Ubuntu

Заполните поля и выберите режим входа в систему.

Логинимся

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

Переносим файлы в автоматическом режиме

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

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

Выберите пункт «Устройства» в программе VirtualBox, подпункт «Подключить образ диска Дополнений гостевой ОС…» и дождитесь, пока программа предложит вам открыть приложение для автоматического запуска с виртуального привода.

Настраиваем дополнения

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

Читайте также:
Как работать с подсистемой Windows WSL для Linux

Обычно юные и не очень адепты Linux задают один и тот же вопрос: «Как запустить Windows-приложения в любимом дистрибутиве?» А на обратный вопрос, как правило, крутят у виска. Но так ли уж нелепа идея запуска Linux-программ в среде Windows?

Использование Linux- или UNIX-приложений в Windows может быть продиктовано массой причин  от банальной привычки к некоторым программам до невозможности запуска отдельной машины с Linux. Кто-то хочет использовать нативные версии ПО для отладки, а кто-то надеется, что таким способом можно заставить пользователей плавно смигрировать на полноценный дистрибутив.

Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же GIMP, Audacity, Pidgin и множество других утилит имеют родные сборки не только для Windows, но и для Mac OS X. Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке bash привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink.


Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.

Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать здесь. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ это Cygwin. Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.

Теперь можно поговорить о странном запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать ошибки довольно редки, да и те  некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.

К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.

Оптимальным вариантом для запуска Linux-приложений является использование среды coLinux. Она, условно говоря, запускает ядро Linux на уровне ядра Windows и имеет доступ ко всем аппаратным ресурсам машины, за счёт чего потерь производительности практически нет. При этом она сохраняет полную совместимость с Linux-приложениями, позволяя напрямую запускать их. На базе coLinux имеются готовые системы для быстрого запуска Portable Ubuntu Remix, Topologilinux (Slackware), SpeedLinux (различные дистрибутивы) и andLinux (Ubuntu). Единственным неприятным ограничением coLinux и всех пакетов на его основе является необходимость использования 32-битной версии Windows 2k/XP/2k3/Vista/7. В качестве примера разберём минимальную настройку Debian Squeeze. Первым делом установим свежую версию coLinux, отказавшись от загрузки готовых образов и попутно инсталлировав WinPcap.

Теперь необходимо скачать архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить. Файл squeeze.conf придётся немного отредактировать. Изменений минимум увеличить объём выделяемой RAM (mem), разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.

?

1 2 3 4 5 6 7 8 9 10 kernel=vmlinux cobd0=»rootfs_2gb.img» cobd1=»swap_128mb.img» root=/dev/cobd0 ro cofs0=»C:» initrd=initrd.gz mem=512 eth0=slirp eth1=tuntap

После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth1. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 (coLinux) надо указать адрес из той же подсети.

?

1 2 3 4 auto eth1 iface eth1 inet static address 192.168.100.2 netmask 255.255.255.0

Выходим из nano с сохранением изменений F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:&

?

&добавим одну строчку в конец файла /etc/fstab и сохраним его:

?

1 /dev/cofs0  /mnt/windrvc    cofs    defaults    0   0

Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл ~/.profile (это надо будет сделать и для любых других пользователей). В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.

?

1 export DISPLAY=192.168.100.1:0

Нелишней будет установка набора шрифтов, в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:WindowsFonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера Xming. Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian (в нашем примере это 192.168.100.2).

«Поблагодарим» Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.

?

1 -xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:alt_shift_toggle dpi 96

Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец ~/.profile команду lxpanel&.

?

1 2 3 apt-get update apt-get upgrade apt-get install synaptic lxpanel

Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с Pulseadio и распаковываем его в какой-нибудь каталог, в котором создаём текстовый файл default.pa. Наполняем этот файл нижеследующими строками. Здесь 192.168.100.0/24 это наша TAP-подсеть.

?

1 2 3 4 5 load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-detect add-autoload-sink output module-waveout sink_name=output set-default-sink output

Запускаем pulseaudio.exe и в очередной раз идём править разрешения в брандмауэре Windows. В консоли Debian устанавливаем необходимые утилиты и библиотеки.

?

1 apt-get install libpulse0 libasound2-plugins alsa-utils

В файле /etc/pulse/client.conf добавляем IP-адрес хост-машины с запущенным сервером Pulseaudio default-server = 192.168.100.1, а в /etc/asound.conf следующие параметры:

?

1 2 3 4 pcm.!default {type pulse} ctl.!default {type pulse} pcm.pulse {type pulse} ctl.pulse {type pulse}

Для проверки работоспособности можно попробовать проиграть один из тестовых файлов.

?

1 aplay /usr/share/sounds/alsa/Front_Center.wav

Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.

?

1 exec0=»X:путьдопапкиpulseaudiopulseaudio.exe»

Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops, которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.

В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!

  • Можно ли запустить mac os на windows
  • Можно ли изменить цвет панели задач в windows 11
  • Можно ли использовать код активации windows 10 несколько раз
  • Можно ли запускать windows с флешки
  • Можно ли изменить размер диска с в windows 10