Как запустить графический интерфейс Debian в Windows 10 с помощью WSL?

Как запустить графический интерфейс Debian в Windows 10 с помощью WSL Советы и хитрости

Microsoft Windows — популярная операционная система. В Windows 10 появилась новая функция под названием WSL (подсистема Windows для Linux). Это дополнительная функция, которая позволяет разработчикам и опытным пользователям запускать среду GNU / Linux непосредственно в Windows без необходимости в традиционной виртуализации или конфигурации двойной загрузки.

В этом руководстве вы узнаете, как запустить графический интерфейс Debian в Windows 10 с помощью WSL.

Debian на WSL

Инструмент WSL изначально был разработан Microsoft в сотрудничестве с Canonical, создателем Ubuntu. По сути, это уровень совместимости с ядром, основанный на Ubuntu.

В 2020 году Microsoft выпустила WSL 2. Он предлагает несколько важных улучшений по сравнению с WSL 1. Он предлагает лучшую совместимость системы, лучшее управление виртуальными машинами, полную поддержку ядра Linux и многое другое. Посмотрите разницу между WSL 1 и WSL 2. Обратите внимание, что WSL 2 доступен только для Windows 10 версии 2004, сборка 19041 или выше. Выполните следующую команду, чтобы проверить версию Windows 10, которую вы используете.

winver

Поскольку WSL изначально был основан на Ubuntu

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

В случае Windows все команды будут выполняться в Windows PowerShell с правами администратора. Это Linux-эквивалент запуска оболочки sudo. Чтобы запустить PowerShell с правами администратора, нажмите «Win + X» и выберите «Windows PowerShell (Admin)».

В случае Windows все команды будут выполняться в Windows PowerShell

Включение WSL

Дополнительные функции, такие как WSL, по умолчанию не включены. К счастью, включить WSL очень просто. Выполните следующую команду в PowerShell.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

WSL 2 также требует функции платформы виртуальных машин.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Эти изменения требуют перезапуска системы для полной работоспособности.

После перезагрузки запустите PowerShell с правами администратора. Сделайте WSL 2 версией по умолчанию.

wsl —set-default-version 2

Обратите внимание: если вы используете 64-разрядную версию Windows 10, вам может потребоваться загрузить и установить пакет обновления ядра Linux для WSL 2.

Скачивание и установка Debian

Сначала ознакомьтесь со всеми доступными дистрибутивами, поддерживаемыми WSL.

wsl —list —online

Скажите WSL установить Debian. Debian доступен в виде устанавливаемого пакета в Microsoft Store.

wsl —install -d Debian

Процесс может занять несколько минут.

Настройка Debian

Debian установлен. Если вы установили с помощью WSL, автоматически появится новая оболочка. Во время первого запуска оболочка Debian попросит создать нового пользователя.

Если вы установили с помощью WSL, автоматически появится новая оболочка

Если вы хотите получить доступ к Debian позже, используйте следующую команду WSL. С этого момента я буду использовать Терминал Windows для простоты использования.

wsl -d Debian

Обновите кеш APT и обновите все пакеты.

sudo apt update && sudo apt upgrade -y

Затем нам нужно проверить, используем ли мы последнюю версию Debian. На момент написания этого руководства последним стабильным выпуском был Debian 11 под кодовым названием bullseye.

cat /etc/os-release

В моем случае это Debian 9 (stretch), где должен быть Debian 11 (bullseye). Для получения последней версии Debian требуется обновление дистрибутива.

Сначала сделайте резервную копию файла sources.list.

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

В файле sources.list замените все экземпляры stretch (Debian 9) на bullseye (Debian 11). Это фактически укажет APT работать с пакетами для Debian 11. Откройте sources.list в текстовом редакторе и замените все экземпляры stretch на bullseye.

sudo nano /etc/apt/sources.list

Вот примерный список репозиториев для Debian 11 bullseye.

$ deb http://deb.debian.org/debian bullseye main contrib non-free
$ deb http://deb.debian.org/debian bullseye-updates main contrib non-free
$ deb http://security.debian.org/debian-security bullseye-security main contrib non-free

Теперь снова запустите команды обновления APT.

sudo apt clean && sudo apt update
sudo apt full-upgrade

Это будет разрешение на перезапуск различных служб во время процесса. Выберите «Да».

Это будет разрешение на перезапуск различных служб во время процесса

Теперь мы можем безопасно избавиться от устаревших пакетов в системе.

sudo apt autoremove

Перезапустите сеанс Debian, чтобы изменения вступили в силу. Проверьте изменение.

cat /etc/os-release

Настройка графического интерфейса

На данный момент система Debian полностью функциональна. Однако единственный способ взаимодействия с системой — это интерфейс командной строки. По умолчанию графический интерфейс отсутствует.

Мы можем обойти это, внедрив VNC. Процесс настройки несколько сложен, но вполне выполним.

Предпосылки

Для этого метода есть несколько предварительных условий. Во-первых, убедитесь, что дистрибутив WSL настроен для работы с WSL 2.

wsl —set-version Debian 2

Установка компонентов

Теперь войдите в оболочку Debian. Нам нужны дополнительные компоненты, такие как curl и wget.

sudo apt update && sudo apt install -y curl wget

Мы будем устанавливать tasksel, очень удобный инструмент для управления различными компонентами рабочего стола и служб. Выполните следующую команду APT.

sudo apt install tasksel

Запустите tasksel с привилегиями sudo.

sudo tasksel

Он покажет список групп пакетов и пакетов

Он покажет список групп пакетов и пакетов. Нажмите пробел, чтобы выбрать / отменить выбор группы. После того, как вы выбрали нужные, нажмите «ОК».

Инструмент скачает и установит все необходимые компоненты. Это займет некоторое время.

Инструмент скачает и установит все необходимые компоненты

Установка VNC-сервера

Следующим шагом будет установка VNC-сервера. Для этого мы установим TigerVNC.

sudo apt-get install tigervnc-standalone-server

Установка.NET Runtime

.NET — это универсальная платформа для создания приложений для Windows, Linux и macOS от Microsoft. Он нам понадобится для следующей части конфигурации.

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

wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo apt install ./packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update && sudo apt install apt-transport-https
sudo apt update && sudo apt install dotnet-runtime-5.0

Установка systemd-genie

WSL, сам по себе, является всего лишь простой реализацией фреймворка Linux. Использование systemd-genie — это способ дать Debian полноценный и функциональный фреймворк Linux.

Мы уже установили его зависимость (.NET Runtime). Осталось только настроить репозиторий systemd-genie и установить пакет.

Сначала настройте репозиторий APT для systemd-genie.

wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg

chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

cat << EOF > /etc/apt/sources.list.d/wsl-transdebian.list
$ deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
$ deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
$ EOF

apt update

Наконец, установите systemd-genie.

sudo apt install systemd-genie

Установлены все необходимые инструменты. Пришло время настроить их для получения ожидаемого поведения.

Настройка пароля VNC-сервера

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

  • root
  • gdm
  • <current_user>

Сначала настройте пароль VNC для текущего пользователя.

vncpasswd

Затем настройте пароль VNC для root.

sudo -H vncpasswd

Наконец, настройте пароль VNC для GDM. Обратите внимание, что вы можете пропустить этот шаг, если вы не выбрали установку среды рабочего стола GNOME.

sudo -H -u Debian-gdm vncpasswd

Замена X по умолчанию на Xvnc

Функция диспетчера отображения по умолчанию — вызывать экземпляры X для каждого пользовательского сеанса (включая экран входа в систему). Однако, поскольку мы собираемся использовать сервер VNC, он не будет сокращаться. Для работы с VNC подходящим кандидатом является Xvnc.

Далее наша цель — заменить X на Xvnc. Это требует настройки сценария Xorg, который вызывает Xvnc вместо службы отображения X / Xorg.

Прежде чем продолжить, всегда рекомендуется делать резервную копию существующего скрипта Xorg.

sudo mv /usr/bin/Xorg /usr/bin/Xorg.old

Теперь создайте новый скрипт Xorg.

sudo nano /usr/bin/Xorg.new

Введите следующий код.

#!/bin/bash
for arg do
shift
case $arg in
vt*)
set  «$@» «${arg//vt/tty}«
;;
-keeptty)
;;
-novtswitch)
;;
*)
set  «$@» «$arg«
;;
esac
done
# display geometry
command=(«/usr/bin/Xvnc» «-geometry» «1366×768» «-PasswordFile» «${HOME:-/root}/.vnc/passwd» «$@»)
systemd-cat -t /usr/bin/Xorg echo «launching Xvnc:» «${command[@]}«
exec «${command[@]}«

Сохраните файл и закройте редактор

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

sudo chmod 0755 /usr/bin/Xorg.new

Создайте ссылку на файл для эмуляции исходного скрипта Xorg.

sudo ln -sf /usr/bin/Xorg.new /usr/bin/Xorg

Настройка переменных среды

Нам нужно настроить некоторые переменные среды, чтобы Xorg считывал данные от пользователя, выполняющего команду genie. Для этого нам нужно настроить файл bashrc как корневого, так и текущего пользователя. Обратите внимание, что bashrc отличается от bash_profile.

Откройте bashrc текущего пользователя.

nano ~/.bashrc

Добавьте следующие коды в конец файла.

export XDG_RUNTIME_DIR=/run/user/$UID
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk ‘{print $2; exit;}’):0.0
sudo /etc/init.d/dbus start &> /dev/null

Сделайте то же самое с файлом bashrc пользователя root.

su —
nano ~/.bashrc

export XDG_RUNTIME_DIR=/run/user/$UID
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk ‘{print $2; exit;}’):0.0
sudo /etc/init.d/dbus start &> /dev/null

Наконец, перезагрузите bashrc для текущего пользователя.

source ~/.bashrc

Запускаем systemd-genie

Теперь systemd настроен на автоматический запуск gdm и создание экземпляра отображения X для экземпляра входа в систему. Из-за конфигурации вместо этого он будет создавать экземпляры Xvnc. Он начнёт слушать с 5900.

Следующая команда покажет сообщение «подключение к systemd», за которым следует несколько ошибок. Ошибки ожидаются. Вы должны попасть на экран входа в систему.

genie -l

Вуаля! Вы успешно вошли в систему Debian с графическим интерфейсом, работающую под WSL 2! Все, что осталось, — это подключиться к серверу WSL через VNC. Следующая команда сообщит IP-адрес сервера.

hostname -I

Для подключения к системе используйте клиент VNC (на порту 5900). Для входа используйте пароль gdm VNC. Это должно привести вас на экран входа в систему.

Заключение

Для пользователей Windows WSL — отличный способ привыкнуть к миру Linux без необходимости изучать все с нуля. В этом руководстве демонстрируется рекомендуемый метод установки и настройки Debian 11 с графическим интерфейсом пользователя на WSL с помощью сервера VNC (TigerVNC).

Читайте также:  Как сканировать документы с помощью телефона?
Оцените статью
ПОПУЛЯРНЫЕ ТЕХНОЛОГИИ
Добавить комментарий

  1. Александр

    На шаге

    $ chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg
    $ cat < /etc/apt/sources.list.d/wsl-transdebian.list
    $ deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
    $ deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
    $ EOF

    пишет:
    -bash: /etc/apt/sources.list.d/wsl-transdebian.list: Permission denied

    все приехали ((((((

    Ответить
    1. Andrei

      https://github.com/arkane-systems/wsl-transdebian

      As root (sudo -s), enter the following commands:

      wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg

      chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

      cat < /etc/apt/sources.list.d/wsl-transdebian.list
      deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
      deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
      EOF

      apt update
      If you do not have lsb_release installed, you will need to manually substitute the distro name (e.g., «bullseye») in place of $(lsb_release -cs).

      Ответить
  2. Ыыыыы

    E: The repository ‘http://security.debian.org/debian-security bullseye/updates Release’ does not have a Release file.

    Ответить
  3. hizore

    https://toukor.s-ul.eu/4Seqz4jL как фиксить?

    Ответить