如何使用 WSL 在 Windows 10 中启动 Debian GUI()

Microsoft Windows 是一种流行的操作系统。Windows 10 带来了一项名为 WSL(适用于 Linux 的 Windows 子系统)的新功能。这是一项可选功能,允许开发人员和高级用户直接在 Windows 上运行 GNU/Linux 环境,而无需传统的虚拟化或双引导配置。在本指南中,查看如何使用 WSL 在 Windows 10 中启动 Debian GUI。WSL 上的 DebianWSL 工具最初是由微软与 Ubuntu 的创建者 Canonical 合作开发的。它基本上是一个基于 Ubuntu 的内核兼容层。2020 年,微软发布了 WSL 2。它比 WSL 1 带来了几项重要的改进。它提供了更好的系统兼容性、更好的 VM 管理、完整的 Linux 内核支持等等。查看WSL 1 和 WSL 2 之间的区别。请注意,WSL 2 仅适用于 Windows 10 version 2004 build 19041 或更高版本。运行以下命令以验证你正在运行的 Windows 10 版本。

$ winver

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
因为 WSL 最初是基于 Ubuntu 的,所以默认支持 Debian。Debian for WSL可从 Microsoft Store 获得。但是,我们将演示如何在没有 Microsoft 帐户的情况下安装 Debian。对于 Windows,所有命令都将在具有管理权限的 Windows PowerShell 上运行。它相当于运行sudo  shell的 Linux  。要以管理权限启动 PowerShell,请按“Win + X”并选择“Windows PowerShell (Admin)”。
如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
启用 WSL默认情况下不启用 WSL 等可选功能。幸运的是,启用 WSL 非常简单。在 PowerShell 中运行以下命令。
$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
WSL 2 还需要虚拟机平台功能。
$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
这些更改需要重新启动系统才能完全正常运行。重新启动后,以管理员权限启动 PowerShell。将 WSL 2 强制为默认版本。
$ wsl --set-default-version 2

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
请注意,如果你运行的是 Windows 10 64 位版本,那么你可能需要下载并安装 WSL 2 的 Linux 内核更新包。下载和安装 Debian首先,查看 WSL 支持的所有可用发行版。
$ wsl --list --online

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
告诉 WSL 安装 Debian。Debian 可作为可从Microsoft Store安装的软件包获得。
$ wsl --install -d Debian

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
该过程可能需要几分钟才能完成。配置 Debian现在安装了 Debian。如果你使用 WSL 安装,则会自动弹出一个新的 shell。在第一次启动时,Debian shell 会要求创建一个新用户。
如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
如果你想稍后访问 Debian,请使用以下 WSL 命令。从现在开始,我将使用Windows 终端以方便使用。
$ wsl -d Debian

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
更新 APT 缓存并升级所有包。
$ sudo apt update & & sudo apt upgrade -y

接下来,我们需要验证我们是否正在运行最新的 Debian 版本。在撰写本指南时,最新的稳定版本是 Debian 11,代号为Bullseye
$ cat /etc/os-release

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
就我而言,它是 Debian 9 (stretch),而它应该是 Debian 11 (bullseye)。它需要发行版升级才能获得最新的 Debian 版本。首先,制作sources.list文件的备份副本。
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
sources.list文件中,将stretch (Debian 9) 的所有实例替换为bullseye (Debian 11)。这将有效地告诉 APT 使用 Debian 11 的软件包在文本编辑器中打开sources.list并将所有的 stretch 实例替换为Bullseye
$ sudo nano /etc/apt/sources.list

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
这是 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

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
对 sed 感兴趣?查看这个关于 50 个 sed 示例的超级指南。现在,再次运行 APT 更新命令。
$ sudo apt clean & & sudo apt update

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
$ sudo apt full-upgrade

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
它将在此过程中重新启动各种服务。选择“Yes”。
如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
我们现在可以安全地摆脱系统上过时的软件包。
$ sudo apt autoremove

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
重新启动 Debian 会话以使更改生效。验证更改。
$ cat /etc/os-release

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
配置图形用户界面此时 Debian 系统功能齐全。但是,与系统交互的唯一方法是通过命令行界面。默认情况下没有 GUI 可供使用。我们可以通过实施 VNC 来规避这一点。配置过程有点复杂,但非常可行。先决条件这种方法有几个先决条件。首先,确保 WSL 发行版配置为与 WSL 2 一起运行。
$ wsl --set-version Debian 2

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
安装组件现在,访问 Debian shell。我们需要一些额外的组件,比如curlwget
$ sudo apt update & & sudo apt install -y curl wget

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
我们将安装 tasksel,这是一个用于管理各种桌面和服务组件的超级方便的工具。运行以下 APT 命令。
$ sudo apt install tasksel

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
使用sudo权限运行tasksel
$ sudo tasksel

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
它将显示包组和捆绑包的列表。按空格键选择/取消选择一个组。选择所需的后,选择“确定”。该工具将下载并安装所有必要的组件。这将需要一些时间。
如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
安装 VNC 服务器下一步是安装 VNC 服务器。为此,我们将安装TigerVNC。
$ sudo apt-get install tigervnc-standalone-server

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
安装 .NET 运行时.NET 是 Microsoft 为 Windows、Linux 和 macOS 构建应用程序的通用框架。我们在配置的下一部分需要它。运行以下命令以安装 .NET 运行时。如需更深入的安装说明,请查看Microsoft的官方 .NET 安装指南。
$ wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
$ sudo apt install ./packages-microsoft-prod.deb

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
$ rm packages-microsoft-prod.deb

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
$ sudo apt update & & sudo apt install apt-transport-https

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
$ sudo apt update & & sudo apt install dotnet-runtime-5.0

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
安装systemd-genieWSL 本身只是一个准系统的 Linux 框架实现。使用 systemd-genie 是为 Debian 提供一个成熟且功能齐全的 Linux 框架的方法。查看更多关于 systemd-genie。我们已经安装了它的依赖项(.NET 运行时)。剩下的就是配置 systemd-genie 存储库并安装软件包。查看有关在 Debian 上安装 systemd-genie 的深入文档。首先,为systemd-genie配置 APT 存储库。
$ wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
$ chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
$ 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

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
$ apt update

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
最后,安装 systemd-genie。
$ sudo apt install systemd-genie

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
所有必要的工具都已安装。是时候配置它们以获得预期的行为了。配置 VNC 服务器密码在 VNC 设置中,每个用户都将拥有唯一的密码。对于完整的功能,我们至少需要三个密码,以下每个用户一个。
  • root
  • gdm
  • < current_user>
首先,为当前用户配置VNC密码。
$ vncpasswd

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
接下来,为root配置 VNC 密码。
$ sudo -H vncpasswd

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
最后,为 GDM 配置 VNC 密码。请注意,如果你没有选择安装 GNOME 桌面环境,则可以跳过此步骤。
$ sudo -H -u Debian-gdm vncpasswd

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
用 Xvnc 替换默认的 X显示管理器的默认功能是为每个用户会话(包括登录屏幕)调用 X 个实例。但是,因为我们将使用 VNC 服务器,所以它不会被削减。要使用 VNC,Xvnc 是合适的候选者。接下来,我们的目标是将 X 交换为 Xvnc。它需要调整调用 Xvnc 而不是 X/Xorg 显示服务的 Xorg 脚本。在继续之前,始终建议备份现有的 Xorg 脚本。
$ sudo mv /usr/bin/Xorg /usr/bin/Xorg.old

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
现在,创建一个新的 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" "1366x768" "-PasswordFile" "${HOME:-/root}/.vnc/passwd" "$@") systemd-cat -t /usr/bin/Xorg echo "launching Xvnc:" "${command[ @]}" exec "${command[ @]}"

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
保存文件并关闭编辑器。该文件必须具有正确的文件权限才能正常工作。
$ sudo chmod 0755 /usr/bin/Xorg.new

创建指向该文件的链接以模拟原始 Xorg 脚本。
$ sudo ln -sf /usr/bin/Xorg.new /usr/bin/Xorg

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
配置环境变量我们需要调整一些环境变量,以便Xorg读取执行精灵命令的用户。为此,我们需要调整根用户和当前用户的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

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
对 root 用户的bashrc文件执行相同操作。
$ 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

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
最后,为当前用户重新加载 bashrc。
$ source ~/.bashrc

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
启动systemd-genie现在,systemd 被配置为让gdm自动启动并创建一个 X 显示到登录实例的实例。由于配置的原因,它将改为创建 Xvnc 实例。它将从 5900 开始收听。下一个命令将显示消息“connecting to systemd”,然后是一些错误。错误是预料之中的。你应该登陆登录屏幕。
$ genie -l

瞧!你现在已经成功登录到在 WSL 2 下运行的支持 GUI 的 Debian!剩下的就是通过 VNC 连接到 WSL 服务器。以下命令将报告服务器 IP 地址。
$ hostname -I

如何使用 WSL 在 Windows 10 中启动 Debian GUI()

文章图片
要连接到系统,请使用 VNC 客户端(在端口 5900 上)。要登录,请使用gdm  VNC 密码。这应该让你进入登录屏幕。最后的想法对于 Windows 用户,WSL 是一种很好的方式来习惯 Linux 世界,而无需从头开始学习所有内容。本指南演示了在 VNC 服务器 (TigerVNC) 的帮助下,在 WSL 上使用 GUI 安装和配置 Debian 11 的推荐方法。通过合适的 VNC 配置,你可以实现更多目标。查看有关在 Debian上安装和配置 VNC 服务器的深入指南。

    推荐阅读