Windows10 开启 Ubuntu 子系统简易步骤

王 茂南 2025年12月23日07:50:38
评论
8346字阅读27分49秒

简介

WSL(Windows Subsystem for Linux) 是内嵌于 WindowsLinux 子系统,它允许开发人员直接在 Windows 系统中 "套娃" 运行一个 GNU/Linux 环境,在其中你可以使用各类的命令行工具和应用程序,避免使用虚拟机或双系统设置的庞大开销。WSL 2 则是 WSL 的升级版本,它提供了完整的 Linux 内核,提升了文件 IO 性能,并支持 Docker 的使用,不过这也导致了其跨 OS 文件系统的性能不如 WSL 1, 即在访问 Windows 的文件系统时会比 WSL 1慢一点。

个人认为,如果想体验较为纯正的 Linux 环境,并且希望在其中获得更好的 IO 性能,推荐使用 WSL2。但若有跨 OS 使用文件的需求,则可以考虑 WSL 1。如果暂时还没有考虑好自己的需求的话,任意选择一个先折腾起来也不要紧,因为WSL可以很方便地在1、2版本间切换(后面会提到)。

参考资料

 

安装过程

下载安装 Ubuntu 系统

首先我们在 Windows 商店中搜索 Ubuntu 进行安装。安装的界面如下所示:

Windows10 开启 Ubuntu 子系统简易步骤

 

打开「适用于 Linux 的 Windows 子系统」

上面我们安装完毕之后,如果直接打开可能会出现「The Windows Subsystem for Linux optional component is not enabled」的错误,我们还需要去,控制面板->程序与功能->Windows 功能,中进行设置,下面是详细的说明。

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 beginning of this article.

下面是实际操作的图示,看到地址栏是「控制面板->程序->程序与功能」,接着在左侧可以看到「启用或关闭 Windows 功能」,点击之后即可看到弹出的对话框

Windows10 开启 Ubuntu 子系统简易步骤

设置完毕之后,记得需要重启电脑。

 

启动 Ubuntu 并进行初始化

在配置好上面的内容之后,就可以正常进行启动了。第一次启动可能需要稍等一会,会有如下的界面(Installing, this may take a few minutes):

Windows10 开启 Ubuntu 子系统简易步骤

在启动之后,就是一些初始化的设置,用户名,密码,然后就安装成功了:

Windows10 开启 Ubuntu 子系统简易步骤

注意Ubuntu 默认将磁盘挂载到 /mnt 目录下,例如可以使用 cd /mnt/d 进入D盘,操作文件;

Windows10 开启 Ubuntu 子系统简易步骤

 

WSL 命令

下面是一些常用的 wsl 命令,可以帮助我们更好的管理发行版。

  • wsl 更新,wsl --update
    • 需要在「Windows 更新设置」-->「高级选项」中打开「更新 Windows 时接收其他 Microsoft 产品的更新」
  • 设置默认 wsl 版本,wsl --set-default-version 2
  • 将某个发行版转为 version 2 或是 1,wsl --set-version <Distro> 2
  • 关闭虚拟机,wsl --shutdown
  • 查看安装的发行版的信息(可以查看是否运行,以及版本),wsl --list -v
Windows10 开启 Ubuntu 子系统简易步骤

如果出现「WSL 2 需要更新其内核组件」的提示,查看 Check requirements for running WSL 2 寻求解决办法;

 

更新清华源

因为某些网络原因,我们需要将「软件源」切换为「清华源」。下面是替换的方法。我们首先备份一下原始的源文件(一定要备份)

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

接着我们打开清华源的地址,Ubuntu 镜像使用帮助 ,按照说明将内容粘贴在 sources.list 这个文件中即可:

  1. # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
  2. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
  3. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
  4. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
  5. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
  6. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
  7. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
  8. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
  9. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
  10. # 预发布软件源,不建议启用
  11. # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
  12. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

接着更新一下,输入:

  1. sudo apt update

如果出现以下的报错(不要慌):

Windows10 开启 Ubuntu 子系统简易步骤

这个时候将上面的 https 全部替换成 http 即可。

 

美化 Ubuntu 系统与 Windows Terminal

安装 zsh 与 oh-my-zsh

上面我们就已经安装完成了,但是为了让界面变得更加美观,我们在这里推荐安装 oh-my-zsh,这是一款针对 zsh 终端的扩展框架,支持配置多种插件与主题来丰富我们的终点。

首先我们需要安装 zsh 来作为我们的 shell,打开 WSL(Ubuntu),输入以下的代码:

  1. sudo apt-get install zsh # Ubuntu下安装zsh
  2. # 安装后重启wsl(一定需要重启)
  3. echo $SHELL # 查看当前使用的shell是否为zsh
  4. # 如果显示为/usr/bin/zsh,则代表安装成功,否则使用以下命令切换为 zsh
  5. chsh -s /bin/zsh # 将shell切换为zsh

接着我们来下载安装 oh-my-zsh(更多关于 oh-my-zsh 的安装,可以点击链接进行查看),或是可以使用下面的方式进行下载安装:

  1. wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
  2. sh install.sh

如果是在 Windows 中下载的 install.sh 文件,保存的时候需要选择换行方式(end of line sequence)需要保存为 line Feed (LF),否则会出现以下的报错,"set: illegal option -" on one host but not the other

Windows10 开启 Ubuntu 子系统简易步骤

安装完毕之后,重启 WSL,之后就可以看到 oh-my-zsh 的效果了。

 

配置 zsh

在完成上面的内容之后,我们需要配置一下 zsh。按照下面的方式进行修改:

  1. # 利用vim编辑器打开zsh配置文件
  2. vim ~/.zshrc
  3. #修改oh-my-zsh的主题,这里推荐使用agnoster主题(也可选择其他)
  4. ZSH_THEME="agnoster"
  5. #保存文件后退出回到Shell,然后输入
  6. source ~/.zshrc

修改完主题之后,因为缺失合适的字体,会导致主题图标显示异常。我们需要安装 powerline 字体到我们的 Windows 系统中去(不是 WSL 系统)

我们可以到 Github 仓库查看 powerline 项目,Powerline fonts-Github,按照说明进行安装(这里好像是可以不用安装,直接进入下载的 font 文件夹内,选择对应的字体进行安装)。

  1. # clone
  2. git clone https://github.com/powerline/fonts.git --depth=1
  3. # install
  4. cd fonts # git clone的文件夹
  5. ./install.sh

安装完毕之后,会有如下的安装成功的说明:

Windows10 开启 Ubuntu 子系统简易步骤

接着我们进入指定的文件夹,C:\Users\<用户名>.local\share\fonts,选择一个对应的字体进行安装,这里我们使用的是 DejaVu Sans Mono for Powerline 这个字体。双击打开文件进行安装,如下图所示(在上面 clone仓库的时候,也可以直接安装字体文件):

Windows10 开启 Ubuntu 子系统简易步骤

之后再次进入 Windows Terminal,在下拉框中进行设置(这里是对 Windows Terminal 进行字体的设置):

Windows10 开启 Ubuntu 子系统简易步骤

我们选择上面安装的字体(选择时候记得勾上,「显示所有字体」),并调整一下字号即可:

Windows10 开启 Ubuntu 子系统简易步骤

 

接着我们可以安装 neofetch,他可以帮助我们显示操作系统,软件和硬件的相关信息。下面是具体的安装方式(安装之前需要更新一下源,sudo apt-get update):

  1. # Ubuntu下安装neofetch
  2. sudo apt install neofetch
  3. # 利用vim编辑器打开zsh配置文件
  4. vim ~/.zshrc
  5. # 在配置文件中主题行的后一行添加neofetch(在文件的末尾加也可以)
  6. ZSH_THEME="agnoster"
  7. neofetch

安装和配置完毕之后,重启一下 WSL 就可以看到相关的提示了(或者可以安装完毕之后,直接在终端输入 neofetch 也可以看到输出的结果)。

Windows10 开启 Ubuntu 子系统简易步骤

 

安装 zsh 常用插件

zsh 中有许多优秀的插件帮助我们提高效率,下面介绍两个常用插件的安装流程,分别是「语法高亮插件」和「自动提示插件」。首先,将当前路径切换到 plugins 目录中。

  1. cd ~/.oh-my-zsh/custom/plugins

之后,我们用 git 下载这两款插件到 WSL 中。

  1. # git下载 zsh-syntax-highlighting
  2. git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  3. # git下载 zsh-autosuggestions
  4. git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

下载完成后,我们修改一下 zsh 的配置文件,使插件生效。

  1. # 首先用vim进入.zshrc配置文件
  2. vim ~/.zshrc
  3. # 之后利用vim编辑文件为
  4. plugins=(
  5.         zsh-syntax-highlighting
  6.         zsh-autosuggestions
  7.         )
  8. source $ZSH/oh-my-zsh.sh
  9. source $ZSH_CUSTOM/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
  10. source $ZSH_CUSTOM/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh

配置好 oh-my-zsh 并安装好插件后,WSL方面的美化工作就基本完成啦!

 

为 WSL2 安装 CUDA

这里的安装步骤按照,CUDA on WSL User GuideWith WSL 2 and GPU paravirtualization technology, Microsoft enables developers to run GPU accelerated applications on Windows.

NVIDIA GPU acceleration will be available with official support on Pascal and later GeForce and Quadro GPUs in Windows Device Driver Model. However, we recommend using Turing or newer architectures for better performance.

再次强调一下,这里主要是参考这两个教程(可以直接查看下面的链接):

 

首先驱动 CUDA

https://developer.nvidia.com/cuda/wsl/download,下载驱动

安装完成之后进行重启,再次进入 WSL2,使用 nvidia-smi 我们就可以看到显卡的信息了。

 

测试 CUDA 是否在 WSL2 中正常使用

安装完毕之后,使用 PyTorch 中的 torch.cuda.is_available() 测试,如返回 True 说明安装成功,之后就可以显卡来加速了。

 

https://www.freesion.com/article/35261374465/#3_WindowsCUDA_on_WSL_33

 

 

安装 CUDA Toolkit

接着我们安装 CUDA Toolkit,这部分参考 Setting up CUDA Toolkit on WSL 2(可以去这个网站寻找最新的安装说明):

  1. $ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
  2. $ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
  3. $ wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb
  4. $ sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb
  5. $ sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub
  6. $ sudo apt-get update
  7. $ sudo apt-get -y install cuda

上面的操作做完之后,可以进行以下的测试:

  1. cd /usr/local/cuda-11.4/samples/4_Finance/BlackScholes
  2. sudo make BlackScholes
  3. ./BlackScholes

如果出现以下的内容,则说明安装成功:

Windows10 开启 Ubuntu 子系统简易步骤

 

添加环境变量

根据自己安装的 cuda 的目录,在 .bashrc 中添加环境变量:

  1. export CUDA_HOME=/usr/local/cuda-11.4
  2. export PATH=$PATH:$CUDA_HOME/bin

添加完毕之后,可以使用 nvcc -V 来查看 cuda 的版本号:

Windows10 开启 Ubuntu 子系统简易步骤

 

安装 cuDNN

深度神经网络库 (cuDNN) 是经 GPU 加速的深度神经网络基元库。cuDNN 可大幅优化标准例程(例如用于前向传播和反向传播的卷积层、池化层、归一化层和激活层)的实施。

安装 cuDNN 的时候需要登录 Nvidia 账号(没有需要注册一下,会有一个小的调查)。接着找到对应自己 cuda 版本的 cuDNN ,根据系统进行下载(我这里使用的是 Ubuntu,所以下载的是 cuDNN Library for Linux (x86_64))。同时这里推荐使用 deb 文件进行安装,这样在安装之后会有 cudnn_samples_v8 这个文件,用来验证是否正确安装。

首先我们下载三个 deb 文件,分别是 Runtime LibraryDeveloper LibraryCode Samplesdeb 文件,如下所示:

接着我们依次安装上面的三个 deb 文件:

  1. sudo dpkg -i libcudnn8_8.0.3.33-1+cuda11.0_amd64.deb
  2. sudo dpkg -i libcudnn8-dev_8.0.3.33-1+cuda11.0_amd64.deb
  3. sudo dpkg -i libcudnn8-samples_8.0.3.33-1+cuda11.0_amd64.deb

最后我们就可以测试一下 cuDNN 是否正确安装。

  1. cp -r /usr/src/cudnn_samples_v8/ $HOME # 将测试例子复制到可执行路径
  2. cd  ~/cudnn_samples_v8/mnistCUDNN # 进入文件夹
  3. sudo make clean
  4. sudo make # 编译文件
  5. sudo ./mnistCUDNN # 运行例子

此时如果运行的结果出现了 Test passed! 则说明 cnDNN 已经安装成功。

如果这里出现如下的报错:

  1. fatal error: FreeImage.h: No such file or directory

此时只需要安装两个包即可:

  1. sudo apt-get install libfreeimage3 libfreeimage-dev

参考链接NVIDIA cuDNN v8 deb方法安装和卸载教程(Linux/Ubuntu)

 

配置 WSL 的图形界面

目前 Windows 更新之后可以直接运行 GUI 应用,参考 Run Linux GUI apps on the Windows Subsystem for Linux (preview)。下面是利用 VcXsrv 来进行 GUI 应用的显示。这部分参考自 在 Windows 上用 WSL 完美运行 Linux 程序

安装 Kde-Plasma 桌面

首先需要安装 Kde-Plasma 桌面及软件:

sudo apt install --install-recommends kde-plasma-desktop kde-standard

接着我们需要查看 cat /etc/resolv.conf 这个文件,并记下最后的 nameserver:

Windows10 开启 Ubuntu 子系统简易步骤

接着我们将以下的两个量加入系统变量中:

export DISPLAY=172.27.16.1:0
export PULSE_SERVER=172.27.16.1

也可以直接添加到 shell 的配置文件中,这样可以默认开启。将上面的两行添加到 ~/.zshrc 的最上面即可。

 

安装 VcXsrv

接着我们需要安装 VcXsrv。安装完毕后,在开始菜单里打开 XLaunch,出现如下的界面,选择 Multiple windows

Windows10 开启 Ubuntu 子系统简易步骤

点击下一页,不进行修改,及默认选项,Start no client

Windows10 开启 Ubuntu 子系统简易步骤

接着选择下一步,Extra Settings 把 Disable access control 打勾:

Windows10 开启 Ubuntu 子系统简易步骤

最后点击「完成」即可。这样就完成了整个 VcXsrv 的安装和设置。

 

打开带有 GUI 的应用

安装完上面的程序之后,我们重启一下 wsl,之后尝试输入 gedit,查看是否会有以下的界面出现。如果出现,则表示安装成功了。

Windows10 开启 Ubuntu 子系统简易步骤

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南
  • 本文由 发表于 2025年12月23日07:50:38
  • 转载请务必保留本文链接:https://mathpretty.com/13023.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: