1 安装和配置 WSL2
参考:双系统的日子结束了:Windows和Linux将合二为一
WSL 2是 WSL 中体系结构的新版本,它更改了 Linux 与 Windows 进行交互的方式。该版本提高了文件系统性能,增加了完全的系统调用兼容性。当然,Linux 分发版可以作为 WSL 1或 WSL 2运行,你可以自行选择,并且可以随时在它们之间进行切换。
WSL 2 是对基础体系结构的一次重大改造,它使用虚拟化技术和 Linux 内核来实现其新功能。微软处理了琐碎的细节,这样你就可以专注于重要的事情了。
1.1 安装 WSL2
参考:适用于 Linux 的 Windows 子系统安装指南 (Windows 10)
必须先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发版。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
若要仅安装 WSL 1,现在应重启计算机并继续安装所选的 Linux 分发版,否则请等待重启并继续更新到 WSL 2。 阅读有关比较 WSL 2 和 WSL 1 的详细信息。
若要更新到 WSL 2,必须满足以下条件:
运行 Windows 10(已更新到版本 2004 的内部版本 19041 或更高版本)。
通过按 Windows 徽标键 + R,检查你的 Windows 版本,然后键入 winver,选择“确定”。 (或者在 Windows 命令提示符下输入
ver
命令)。 如果内部版本低于 19041,请更新到最新的 Windows 版本。 获取 Windows 更新助手。
安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。
以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机,以完成 WSL 安装并更新到 WSL 2。
以管理员的身份打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
1.2 安装 Ubuntu 子系统
打开 Microsoft Store,并选择你偏好的 Linux 分发版。首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
然后,需要为新的 Linux 分发版创建用户帐户和密码。
2 安装桌面系统
- 更新和升级包:
sudo apt update && sudo apt upgrade
- 安装 xfce4 与 xrdp:
sudo apt install -y xfce4 xrdp
安装xfce4过程中会出现选择显示管理DM选择的提示,建议用 lightdm
。如果错过了安装过程中出现的这个向导,那么可以在安装完成后执行下面的命令重新设置DM
sudo dpkg-reconfigure lightdm
- 配置 xrdp 端口:
sudo sed -i "s/port=3389/port=3390/g" /etc/xrdp/xrdp.ini
这里面 3389 是默认配置,这里将其改为 3390 是避免和 windows 的端口冲突。因为两边的端口号是通的,在 wsl 中开一个 8080 端口的 WebServer,在 windows 可以直接访问。
- 配置 xsession
sudo echo xfce4-session >~/.xsession
这一步其实是在告诉系统,开启桌面环境的时候开启什么桌面环境。
- 启动 xrdp
sudo service xrdp restart
- 远程连接
- 在 win10 开始菜单中搜远程桌面,或按 win+r 后输入 mstsc
- 在计算机后面输入
localhost:3390
点击连接,输入用户名。首次连接可能需要较长时间。
效果:
这样便可以启动 Ubuntu 桌面了。
如果WSL的Ubuntu系统关闭,如关机重启,会导致远程连接不上,此时需要先在Win10中打开Ubuntu的命令行界面,输入:
sudo service xrdp restart
此时再远程连接,即可连接上。
3 使用 WSL2 的 Visual Studio Code
只要您的 Windows10 已经安装 vscode,则可以直接在 Linux 的命令行中启动 vscode:
code .
在桌面系统打开 vscode 需要您自行安装。
请注意 WSL 的文件系统与 Windows10 的是一致的,比如:
即 /mnt/c/Users/xinet$
对应于您的 C:/Users/xinet
。
4 安装 Anaconda3
首先进入 Anaconda | The World's Most Popular Data Science Platform 下载 Ubuntu 版本的 Anaconda3 软件包。然后执行如下命令进行安装:
sh Anaconda3-2020.07-Linux-x86_64.sh
这里我选中最新的版本。
5 WSL 安装 CUDA
参考 CUDA on WSL User Guide
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
$ sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
$ sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
$ sudo apt-get update
$ sudo apt-get -y install cuda
6 Xubuntu 安装
如果不满足于简化的桌面可以安装 Xubuntu。
[WSL]在Windows10子系统里安装运行桌面(xUbuntu)
7 WSL 删除与重载
最近在折腾WSL,安装了一个Ubuntu 16和一个18,但是因为有些系统问题一直无法很好的设置,打算卸载了重装,可是按照网上的教程wslconfig /l, wslconfig /u卸载之后,重新通过Windows Store安装总是有问题,Store里面显示这2个APP已经安装过了,只有启动这一个选项,但是点击启动又报错,说没找到相应的文件。重新点击获取也不行,系统显示已下载,但是点击启动却说找不到文件,搞了很久一直无法解决,最终还是查到了一个方案,在Powershell里面通过命令行的方式来解决。
首先要先查看已经安装了哪些软件包:
Get-AppxPackage -allusers | Select Name, PackageFullName
然后可以看到列表里面你想要删除的软件包,执行以下命令来删除,例如要删除Ubuntu16
get-appxpackage CanonicalGroupLimited.Ubuntu20.04onWindows | remove-Appxpackage
完成后重新在Windows Store里面下载应用即可。
8 编译WSL 2内核
微软还在GitHub上更新了编译WSL 2内核的步骤,只需3 步:
- 从微软商店安装最新的Ubuntu发行版
- 打开Ubuntu子系统,安装内核组件:
sudo apt install build-essential flex bison libssl-dev libelf-dev
- 编译 WSL:
make KCONFIG_CONFIG=Microsoft/config-wsl
9 其他教程
- WSL2 的一些网络访问问题
- 搭建 WSL2 的沙雕版 GUI(VcXsrv+xfce4)