Win10 系统安装 Linux 子系统教程(WSL2 + Ubuntu 20.04 + Gnome 桌面 )

前言:最近刚换一台新的电脑,在准备安装 Win10 / Linux 双系统时,了解到 Win10 推出了 WSL 功能,于是决定体验一下。

1. WSL 简介

1.1 什么是 WSL ?

要想使用 Linux 系统,以前通常有两种方式:(1)使用虚拟机,(2)直接使用 Linux 系统。使用虚拟机时开销较大;直接使用 Linux 系统虽然可以带来最流畅的体验,但是与 Windows 系统之间进行切换时比较麻烦,一次只能使用一个系统。

为此,微软开发了适用于 Linux 的 Windows 子系统,称为 WSL,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。简单点来说,有了 WSL,就可以在 Windows 系统中像运行软件一样运行 Linux 系统。

1.2 WSL1 与 WSL2

在这里插入图片描述
将适用于 Linux 的 Windows 子系统从 WSL 1 升级到 WSL 2 的主要区别和优势是:

  • 提高文件系统性能,
  • 支持完全的系统调用兼容性。

WSL 2 使用最新、最强大的虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。 但是,WSL 2 不是传统的 VM 体验。

2. 安装 WSL

2.1 安装 WSL1

(1)启用“适用于 Linux 的 Windows 子系统”可选功能

需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。可以使用命令行的方式,也可以使用图形界面的方式。

图形界面方式

在【设置 -> 更新与安全->开发者选项】中开启【开发人员模式】
在这里插入图片描述
在【程序和功能 -> 启用或关闭 Windows 功能】中勾选【适用于 Linux 的 Windows 子系统】
在这里插入图片描述

命令行方式

以管理员身份打开 PowerShell 并运行:

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

(2)重启电脑

(3)安装 Linux 发行版,如 Ubuntu

在 Microsoft Store 中下载并安装需要的 Linux 发行版
在这里插入图片描述

(4)启动 Linux 子系统

至此,Linux 子系统就相当于 Windows 系统上安装的一个软件,可以在开始菜单子启动。

首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。

然后,需要为新的 Linux 分发版创建用户帐户和密码。
在这里插入图片描述
至此,已成功安装并设置了与 Windows 操作系统完全集成的 Linux 分发!

可打开 PowerShell 命令行并输入以下命令(仅在 Windows 内部版本 18362 或更高版本中可用),检查分配给每个已安装的 Linux 分发版的 WSL 版本:wsl -l -v

PS C:\Users\user-name> wsl --list --verbose
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         1

2.2 升级到 WSL2

(1)开启“虚拟机平台”可选功能

同样地,可以采用图形界面的操作方式,也可以采用命令行的方式。

图形界面方式
在之前的基础上,勾选【虚拟机平台】。
在这里插入图片描述
命令行方式

以管理员身份打开 PowerShell 并运行:

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

(2)重启电脑

(3)下载 Linux 内核更新包

下载最新包:适用于 x64 计算机的 WSL Linux 内核更新包

然后双击运行,安装
在这里插入图片描述

(4)设置 WSL 版本

PS C:\Users\user-name> wsl --set-version Ubuntu-20.04 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。

说明:

  • 若要将分发版设置为受某一 WSL 版本支持,请运行:
wsl --set-version <distribution name> <versionNumber>

请确保将 <distribution name> 替换为你的分发版的实际名称,并将 <versionNumber> 替换为数字“1”或“2”。 可以随时更改回 WSL 1,方法是运行与上面相同的命令,但将“2”替换为“1”。

  • 如果要使 WSL 2 成为你的默认体系结构,可以通过此命令执行该操作:
wsl --set-default-version 2

从 WSL 1 更新到 WSL 2 可能需要几分钟才能完成,具体取决于目标分发版的大小。如果--set-default-version 未列出,则表示你的 OS 不支持它,你需要更新到版本 1903(内部版本 18362)或更高版本。

3. 使用 WSL

3.1 启动和退出 Linux 子系统

进入 Linux 子系统有以下几种方式:
(1)和正常软件一样启动,如在开始菜单中点击其图标、双击桌面快捷方式
(2)在 Windows 中打开一个终端,如 PowerShell,输入命令wsl
(3)在终端中输入命令Linux 发行版名称.exe,如ubuntu20.04.exe

退出 Linux 子系统的方式:
(1)直接关闭终端
(2)在终端中输入命令exit,此时退出了 WSL,然后输入命令 wsl -t Ubuntu-20.04,关闭 ubuntu 子系统。

  1. 使用 wsl命令进入 Linux 子系统时,进入的目录是当前打开终端的位置,使用 PowerShell 终端时,所在位置为/mnt/c/Users/windows-login-name。使用 ubuntu2004.exe命令进入 Linux 子系统时,进入的目录是所在位置为/home/linux-login-name

  2. 常用的 wsl 命令:

# 列出所有分发的名称、运行状态、对应的 WSL 版本
wsl -l -v
# 终止指定的 Linux 分发
wsl -t <distro>
# 注销分发
wsl --unregister <distro>
# 终止所有正在运行的分发和 WSL2 轻型工具虚拟机
wsl --shutdown

3.2 文件系统

如何在 Linux 应用中使用 Windows 文件?

WSL 的优势之一是可以通过 Windows 和 Linux 应用或工具访问文件。

WSL 将计算机的固定驱动器装载到 Linux 分发版中的 /mnt/<drive> 文件夹下。 例如,你的 C: 驱动器装载在/mnt/c/

例如,使用装载的驱动器,可以使用 Visual Studio 或 VS Code 编辑 C:\dev\myproj\ 中的代码,并通过 /mnt/c/dev/myproj 访问相同的文件,在 Linux 中生成/测试该代码。

重要说明: 使用 WSL 的主要限制之一是不支持使用 Windows 应用或工具直接访问/更改 Linux 发行版文件系统中的文件。

不要使用 Windows 应用和工具更改 Linux 文件!

C:\Users\windows-login-name\AppData\Local\Packages\目录下有一个以CanonicalGroupLimited开头的文件夹,Linux 子系统相关的文件都存储在该文件夹里面。需要特别注意的是:任何情况下都不要使用 Windows 应用和工具更改该目录里面的 Linux 文件!
在这里插入图片描述
正确的做法:
将工作文件存放在 Windows 文件系统中,这样不仅能够在 Windows 中直接进行访问,还能在 Linux 中通过 /mnt/<drive>/<path> (例如 /mnt/c/dev/project/...) 进行访问,从而避免了在 Windows 和 Linux 系统中来回拷贝文件。

总之,为了避免丢失文件或污染文件数据,需要遵循下面三条准则:

  • 如果想要使用 Windows 和 Linux 工具访问、创建、修改文件,请将文件存储在Windows 文件系统中。
  • 通过 Windows 应用、工具、脚本、终端来访问、创建、修改 Linux 子系统中的文件时,请使用 \\wsl$\<DistroName>\
  • 千万不要使用寻找 AppData目录中的文件的方式,通过 Windows 应用、工具、脚本、终端来访问、创建、修改 Linux 子系统中的文件。

计算机的存储设备上存储了与每个文件、目录相关的文件元数据(例如:权限、拥有者、时间戳等),Windows 和 Linux 中文件元数据的表示方式是不同的。因此,通过 Windows 应用、工具、脚本、终端来访问、创建、修改位于AppData目录中的 Linux 子系统中的文件时,会造成数据污染或损坏 Linux 环境,导致需要卸载和重新安装 Linux 子系统。

3.3 换源

使用 Linux 子系统时,为了提高软件的安装速度,需要将软件源换成国内的镜像源。

(1)备份原来的数据源配置文件

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

(2)修改数据源配置文件

sudo vi /etc/apt/sources.list

这里使用中科大的源 (此处是 20.04 版本的源,对应版本名称为focal,如果是其他版本则替换为对应的版本名即可)。

# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

i键进入编辑模式,修改后,按 ESC 键退出编辑模式,输入:wq保存并退出。

(3)更新源,升级软件(可选):

sudo apt-get update
sudo apt-get upgrade

4. 安装图形界面

WSL 工具的目的是使用户能够视需要在 Windows 上运行 Bash 和核心 Linux 命令行工具。WSL 尚不支持 GUI 桌面或应用程序 (例如 Gnome、KDE 等) 。

对于 Linux 技术使用得还不太熟练的可以自行安装图形界面,以方便使用。

安装图形界面有多种方案可供选择,下面介绍其中使用最多的两种。

取决于使用的是 WSL1 还是 WSL2、Ubuntu 18.04 及以下版本还是 Ubuntu 20.04 版本,图形界面的安装方法有所不同。

4.1 Xfce4 + VcXsrv

安装 xfce4 桌面,然后设置 xrdp 远程连接,再使用 VcXsrv 进行显示(也可以用 VNC 软件进行显示)。

(1)安装 VcXsrv

X-Windows 显示服务器程序有多种:VcXsrv Windows X Server、Xming、Cygwin X Server。这里选择 VcXsrv,免费开源,在 SourceForget 上评价不错,下载地址为 https://sourceforge.net/projects/vcxsrv/

下载后安装,打开XLaunch,选择:“one large window”,Display number 设置成0,
在这里插入图片描述
选择【start no client】
在这里插入图片描述
勾选 【Disable access control】
在这里插入图片描述

可以点击 【save configuration】,将配置保存为文件,下次直接打开配置文件就可以了。
在这里插入图片描述
点击完成后,将会弹出一个黑色窗口,开始监听 Linux 的显示服务请求。

(2)安装 Xfce4 桌面

Xfce 是一种轻量级的桌面,基于GTK2.0,和旧版 Gnome 界面类似,可以运行在很多 Linux 发行版上,包括 Ubuntu 。

sudo apt-get install xfce4

(3)设置与启动桌面

设置显示器的地址。

sudo vim ~/.bashrc
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
source ~/.bashrc

实际上,上面的做法等价于:
在 Windows 中打开 PowerShell,输入 ipconfig 命令,可以查看到 Windows 与 Ubuntu 虚拟机进行通信的网络地址。
在这里插入图片描述
然后,通过 export DISPLAY=192.168.104.97:0命令告诉桌面程序应该去哪里寻找在本地运行的 X 服务器。

然后启动桌面

startxfce4

此时,在 XLaunch 中就可以看到 Ubuntu 系统的 xfce4 桌面。
在这里插入图片描述

该方法适用于 WSL2 的各种 Ubuntu 版本。

4.2 Gnome + VcXsrv

给 WLS2 的 Ubuntu 20.04 系统安装 Gnome 桌面的麻烦之处在于:Ubuntu 20.04 默认安装的 gnome 版本是高于 3.34 的,gnome 从这一版本开始就完全依赖 systemd 了,而 WSL 2 默认不是以 systemd 作为初始化进程,因此无法直接运行 gnome 桌面。

(1)安装 VcXsrv

同 4.1 节。

(2)安装 Gnome 图形界面

安装 gnome 桌面:

sudo apt install ubuntu-desktop

(3)设置 systemd

WSL2 默认不是以 systemd作为初始化进程,所以无法使用systemctl,使用systemctl时会出现以下提示:

System has not been booted with systemd as init system (PID 1). Can't operate.

为了使 WSL2 支持 systemd ,有人写了一个脚本 ubuntu-wsl2-systemd-script 。从 github 上下载该脚本并运行,

git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh

然后重启 Ubuntu 系统。此时再次运行systemctl命令,发现能正常运行。

user-name:~$ systemctl 
  UNIT                                                                         >
  sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fc785225\x2d9131\x2d>
  sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fd1d2cbd\x2dce7c\x2d>
  sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fd1d2cbd\x2dce7c\x2d>
  sys-devices-platform-serial8250-tty-ttyS0.device                             >
  sys-devices-platform-serial8250-tty-ttyS1.device                             >
  sys-devices-platform-serial8250-tty-ttyS2.device                             >
  sys-devices-platform-serial8250-tty-ttyS3.device                             >
  sys-devices-virtual-block-ram0.device                                        >
  sys-devices-virtual-block-ram1.device                                        >
  sys-devices-virtual-block-ram10.device                                       >
  sys-devices-virtual-block-ram11.device                                       >
  sys-devices-virtual-block-ram12.device                                       >
  sys-devices-virtual-block-ram13.device                                       >
  sys-devices-virtual-block-ram14.device                                       >
  sys-devices-virtual-block-ram15.device                                       >
  sys-devices-virtual-block-ram2.device                                        >
  sys-devices-virtual-block-ram3.device                                        >
  sys-devices-virtual-block-ram4.device                                        >
  sys-devices-virtual-block-ram5.device                                        >
  sys-devices-virtual-block-ram6.device                                        >
  sys-devices-virtual-block-ram7.device                                        >
  sys-devices-virtual-block-ram8.device                                        >
lines 1-23

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。systemctl是 Systemd 的主命令,用于管理系统。

(4)设置与启动桌面

输入sudo vi ~/.bashrc,在文件末尾添加:

export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
export XDG_SESSION_TYPE=x11

保存后退出,并使用source ~/.bashrc使修改生效。

然后启动桌面,

gnome-session

此时,在 XLaunch 中就可以看到 Ubuntu 系统的 gnome 桌面。
在这里插入图片描述

  1. Ubuntu 18.04 默认安装的 gnome 版本是 3.28.1,不依赖于systemd,因此不需要设置systemd就可以运行 gnome 桌面。
  2. 对于Ubuntu 20.04,也可以选择 Cinnamon 桌面,因为 Cinnamon 是基于 gnome 的老版本改的,不依赖于 systemd 。
sudo apt install cinnamon-desktop-environment lightdm
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
cinnamon-session &

参考链接

  1. Microsoft 官方文档
  2. Win10安装Ubuntu子系统及图形化界面详细教程
  3. wsl2(win10 Linux子系统)图形界面的安装,wsl同理
  4. win10创建Ubuntu16.04子系统,安装常用软件以及图形界面(包括win10远程桌面连接Ubuntu)
  5. WSL2 Ubuntu图形界面使用指南
  6. wsl2 ubuntu Gnome 桌面
  7. WSL2中的Ubuntu上运行GNOME的问题
  8. WSL启用systemd
  9. Systemd 入门教程:命令篇
  • 74
    点赞
  • 341
    收藏
    觉得还不错? 一键收藏
  • 35
    评论
### 回答1: Win10子系统UbuntuWSL安装Docker的教程(图文详解): 1. 首先,确保你已经将Win10子系统UbuntuWSL)正确安装并运行。 2. 打开Ubuntu终端,更新系统软件包列表,运行以下命令: ``` sudo apt-get update ``` 3. 接着,安装必要的软件包,运行以下命令: ``` sudo apt-get install apt-transport-https ca-certificates curl software-properties-common ``` 4. 添加Docker的官方GPG密钥,运行以下命令: ``` curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` 5. 添加Docker的官方软件库,运行以下命令: ``` echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 6. 接下来,更新软件包列表,运行以下命令: ``` sudo apt-get update ``` 7. 现在,我们可以安装Docker了,运行以下命令: ``` sudo apt-get install docker-ce docker-ce-cli containerd.io ``` 8. 安装完成后,启动Docker服务,运行以下命令: ``` sudo service docker start ``` 9. 检查Docker是否成功安装,运行以下命令: ``` sudo docker run hello-world ``` 10. 如果你看到“Hello from Docker!”的文字,说明Docker已经成功安装并运行了。 以上就是在Win10子系统UbuntuWSL)上安装Docker的详细步骤。 希望这个图文教程能帮助到你。如需进一步了解Docker的使用和操作,请查阅官方文档和其他优质教程。 ### 回答2: 当您在Windows 10操作系统中使用WSL(Windows Subsystem for Linux安装Ubuntu子系统时,您可以按照以下步骤来安装Docker: 1. 打开Windows 10的设置应用程序,并选择"更新和安全"。 2. 在左侧导航栏中选择"开发人员选项"。 3. 在"使用开发人员功能的设备"部分,勾选"适用于Linux的Windows子系统"复选框,并点击"确定"。系统将要求您重新启动计算机。 4. 在启动后,打开Microsoft Store,并搜索"Ubuntu"。 5. 选择"Ubuntu"应用程序,并点击"获取"按钮以下载并安装Ubuntu。 6. 打开Ubuntu应用程序,并按照提示进行初始设置,包括创建用户名和密码。 7. 更新Ubuntu子系统的软件包列表,输入以下命令并按下回车键: ```shell sudo apt update ``` 8. 安装Docker软件包,输入以下命令并按下回车键: ```shell sudo apt install docker.io ``` 9. 安装完成后,启动Docker服务,输入以下命令并按下回车键: ```shell sudo systemctl start docker ``` 10. 您可以通过运行以下命令来验证Docker是否正确安装: ```shell sudo docker run hello-world ``` 如果您看到一个打印出"Hello from Docker!"的信息,那么Docker安装成功。 11. 如果您想使Docker服务在系统启动时自动启动,可以运行以下命令: ```shell sudo systemctl enable docker ``` 至此,您已成功在Windows 10的WSL安装了Docker。现在,您可以在Ubuntu子系统中使用Docker运行容器来开发和部署应用程序。 ### 回答3: Win10子系统Ubuntu (WSL) 安装Docker教程(图文详解): 步骤1:打开Microsoft Store应用商店,搜索并安装Ubuntu。 步骤2:打开已安装Ubuntu终端。 步骤3:通过以下命令更新Ubuntu软件包列表: sudo apt update 步骤4:安装必要的依赖项: sudo apt install apt-transport-https ca-certificates curl software-properties-common 步骤5:添加Docker的官方GPG密钥: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 步骤6:设置稳定版仓库: echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 步骤7:通过以下命令更新软件包列表使得Docker可用: sudo apt update 步骤8:安装Docker: sudo apt install docker-ce docker-ce-cli containerd.io 步骤9:验证安装是否成功: sudo docker run hello-world 步骤10:启动Docker服务并设置为开机启动: sudo systemctl enable docker sudo systemctl start docker 至此,在Win10子系统Ubuntu中已成功安装Docker。 请注意:WSL是一个用于在Windows系统中运行Linux环境的工具,并且Docker运行于Linux环境中。因此,通过WSL安装的Docker实际上是运行在子系统中的,并不能直接与Windows环境中的Docker进行交互。要与Windows环境中的Docker进行交互,你需要安装适用于Windows的Docker版本。 希望以上步骤可以帮助你成功在Win10子系统Ubuntu安装Docker。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值