因为一些特殊情况,部分开源项目仅支持Linux部署方式,但如果我们只为了一个开源项目的使用而为自己的电脑安装Linux系统是不现实的,因为很多软件和游戏都不支持Linux。如果我们使用VM Ware虚拟机来安装Linux系统,却又无法调用GPU,可开源的AI项目90%都是需要GPU加速的。

故此,最佳的解决方式就是使用新版Windows内置的WSL子系统功能,支持快速安装和卸载Linux系统,并且可以调用GPU加速运算。

不过,安装Linux系统还是需要手动自行安装的,因为Windows只是内置了一个虚拟机而已。目前可以一键安装Ubuntu、Debian、kali-linux、OracleLinux、SUSE-Linux-Enterprise-Server、openSUSE等版本。但我们主要面向初学者,所以本站研究了整理了一下关于Windows下通过WSL2安装部署Ubuntu,非常非常简单,五分钟就可以搞定,所以大家放心,几乎没有任何难度的。

组件安装

如果你的系统是第一次使用Windows的WSL功能,那么组件安装这里是必要的操作步骤。如果你之前使用过WSL子系统功能,那么可以跳过组件安装部分。

子系统

管理员方式运行CMD功能,然后执行如下命令,这将会开启Windows的子系统功能,否则后续所有操作无法正常使用。

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

以下是执行完成后的返回内容,可以看到我们所需要的系统功能已经成功被开启。

复制代码
C:\Windows\System32>dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 部署映像服务和管理工具 版本: 10.0.22621.1 映像版本: 10.0.22621.1848 启用一个或多个功能 [==========================100.0%==========================] 操作成功完成

虚拟机

管理员方式运行CMD功能,然后执行如下命令,这将会开启Windows的虚拟机功能,否则后续所有操作无法正常使用。

复制代码
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

以下是执行完成后的返回内容,可以看到我们所需要的虚拟机功能已经成功被开启。

复制代码
C:\Windows\System32>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 部署映像服务和管理工具 版本: 10.0.22621.1 映像版本: 10.0.22621.1848 启用一个或多个功能 [==========================100.0%==========================] 操作成功完成

重启电脑

别偷懒,完成以上安装之后一定要重启电脑,否则无法完成安装。

站长因为在这里偷懒,自作聪明的只是注销系统,所以耽误了半个小时。

Ubuntu安装

Liunx是开源系统,所以有很多开发者为其提供系统服务支持,我们可以理解为同一个版本的Windows系统,但是存在多个发布商,比如微软、苹果、亚马逊等,每个版本都有各自的优缺点。

目前较为主流的Linux系统为Ubuntu,所以我们直接安装最新版的Ubuntu系统即可。

系统安装

我们理论上应该进入微软商店安装Ubuntu,但是那样做不太优雅,我们可以通过在CMD中执行如下命令行直接安装。

复制代码
wsl --install -d Ubuntu

等等片刻之后,将会看到如下内容:

复制代码
C:\Users\dataddd>wsl --install -d Ubuntu 正在安装: 虚拟机平台 已安装 虚拟机平台 正在安装: 适用于 Linux Windows 子系统 已安装 适用于 Linux Windows 子系统 正在安装: Ubuntu 已安装 Ubuntu 正在启动 Ubuntu... Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username:

用户及密码设置

此时的大致意思为,需要我们输入一个用户名,本站就以dataddd为例。

注意:仅支持小写26个字母以及下划线,不支持特殊字符。

复制代码
Enter new UNIX username: dataddd

然后需要我们输入用户密码:

注意:输入密码过程不可见,正常盲输即可。

复制代码
New password:dataddd

再次输入密码,确认两遍一致即可。

复制代码
Retype new password:dataddd

最后完成返回内容如下:

复制代码
C:\Users\dataddd<strong>>wsl --install -d Ubuntu Ubuntu 已安装 正在启动 Ubuntu... Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username: dataddd # 用户名 New password:dataddd # 用户密码 Retype new password:dataddd # 确认密码 passwd: password updated successfully Installation successful! To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage This message is shown once a day. To disable it please create the /home/dataddd/.hushlogin file. dataddd@dataddd:~$

此时我们已经完成了系统的安装与用户名和密码设置,并且默认直接进入到了wsl系统。

但这并不是root用户,root用户是Linux系统的默认账户,拥有最高权限,我们顺便将root密码重置一下。

输入如下命令就,即可更改root密码。

复制代码
sudo passwd root

先输入刚刚设置的密码,然后输入想要设置的root密码,最后再输入一次想要设置的root密码,完整的内容如下。

复制代码
dataddd@dataddd:~$ sudo passwd root [sudo] password for dataddd:<当前账户密码> New password:<root密码> Retype new password:<root密码> passwd: password updated successfully

如果你只是部署一个WSL的子系统,那么到此就已经安装结束了,本文的后续内容仅做了解即可。

相关补充

下面两张截图都是从CMD中截取的,但上图C:\Users\dataddd>下图是dataddd@dataddd:~$

这代表我们在左图这样的界面中输入的命令,是用来控制Windows的。在右图这样绿色的命令行内输入的命令是用来控制WSL子系统Linux的。

默认情况下我们打开CMD的时候就像左图这样,如何进入WSL子系统去控制Linux呢?

我们直接在CMD中输入如下命令,就可以进入WSL虚拟机,注意这是小写的。

复制代码
wsl

执行完如上内容之后,我们会进入到虚拟机内,如何退出虚拟机返回至CMD?

执行如下命令,即可回到CMD,也就是说,你可以通过wslexit这两个简短的命令非常方便的在Windows和Linux中切换控制权。

复制代码
exit

依赖更新

在你安装完成WSL的Linux系统之后,我们要做的第一件事,那就是更新当前系统依赖。

我们应该确保自己处于WSL虚拟机内,执行如下命令,更新软件包列表并自动升级:

复制代码
sudo apt update <strong>&&</strong> sudo apt -y upgrade

执行如上代码后需要等待几分钟,因为这将会获取最新Ubuntu依赖更新。

WSL|基础知识

什么是WSL?你可以理解为是一个完全虚拟出来的系统容器,在你当前的电脑系统里面再安装一个子系统。

以下是一些常用的wsl命令,大家先简单的了解一下即可。

查看已安装的Linux系统

我们可以先查看一下关于wsl的基本信息,在CMD中执行如下命令即可。

复制代码
wsl -l

如果你已安装过WSL的子系统,那么会显示如下内容:

复制代码
C:\Users\dataddd<strong>></strong>wsl -l 适用于 Linux Windows 子系统分发: Ubuntu (默认)

如果你未安装过任何子系统,那么将会返回内容如下:

复制代码
C:\Users\dataddd wsl -l 适用于 Linux Windows 子系统没有已安装的分发 使用 'wsl.exe --list --online' 列出可用的分发 并使用 'wsl.exe --install <Distro>' 进行安装 也可以通过访问 Microsoft Store 安装分发: https://aka.ms/wslstore Error code: Wsl/WSL_E_DEFAULT_DISTRO_NOT_FOUND

开启WSL系统

开机方式非常简单,我们可以只需要输入wsl即可自动开启默认的Linux系统。

复制代码
wsl

关闭当前Linux系统

也就是最常见的关机命令,非常方便。

复制代码
wsl --shutdown

更新WSL

更新适用于 Linux 的 Windows 子系统程序包。

复制代码
wsl --update

列出可安装的Linux系统

复制代码
wsl -l -o

以下是返回内容:

复制代码
C:\Users\dataddd wsl -l -o 以下是可安装的有效分发的列表 使用 'wsl.exe --install <Distro>' 安装 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS OracleLinux_7_9 Oracle Linux 7.9 OracleLinux_8_7 Oracle Linux 8.7 OracleLinux_9_1 Oracle Linux 9.1 SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4 openSUSE-Leap-15.4 openSUSE Leap 15.4 openSUSE-Tumbleweed openSUSE Tumbleweed

拿Ubuntu系统来举例,我们可以看到其中包含UbuntuUbuntu-22.04Ubuntu-20.04Ubuntu-18.04等多个版本,如果没有特殊要求,我们直接安装第一个Ubuntu即可,因为这是Ubuntu的最新版本。

重启WSL

执行如下命令,重启WSL虚拟机。

复制代码
sudo reboot

执行如上命令之后,将会从Linux的终端中退出,返回到CMD命令内,我们重新输入wsl,进入虚拟机。

复制代码
wsl

系统快照

熟悉虚拟机的朋友可能听名字就知道这是什么了,其实就是将你现在已经部署好的虚拟机做一个备份,可以让你随时还原到当前虚拟机的状态。

拍摄快照

这个功能非常非常有用,因为你无法确定会不会有时候把虚拟机给搞乱了,所以如果你已经布置好了一个完整的虚拟机,想要备份,那么可以使用如下方式。

我们在CMD中执行如下命令,将会把你当前状态的虚拟机进行快照拍摄,其中的Ubuntu虚拟机的名称,后面的D:\dataddd\WSL\WSL-Ubuntu.tar保存的路径+文件名,可以自行修改。

复制代码
wsl --export Ubuntu D:\dataddd\WSL\WSL-Ubuntu.tar

执行完成后,等待片刻,可以在D盘dataddd\WSL目录下看到WSL-Ubuntu.tar文件已成功生成。

还原快照

这是本节的重中之重,也就是如何将你下载好的项目备份直接倒入到自己的电脑,站长会给你提供一个较大的系统备份压缩包,下载之后不用解压,直接通过如下方式导入到你的电脑中即可。

在CMD中逐条执行如下命令,即可完成导入虚拟机备份的快照功能,说白了就是恢复备份。

恢复备份需要安装一个虚拟机吗?不需要,你只需要确定你的WSL相关组件已经开启即可,也就是本文中最上面的部分。

关闭WSL虚拟机:

复制代码
wsl --shutdown

删除名为Ubuntu的虚拟机:

复制代码
wsl --unregister Ubuntu

首先我们需要确认一个工作目录,用来存放该项目的相关环境依赖文件。本站所选择的目录为D盘的根目录下dataddd\WSL文件夹,完整路径为:D:\dataddd\WSL

在CMD中执行如下命令,这将会自动检测D盘是否在dataddd\WSL文件夹,没有则自动创建文件夹

复制代码
if not exist D:\dataddd\WSL mkdir D:\dataddd\WSL

导入本站所提供的虚拟机,其中Ubuntu为虚拟机名称,D:\dataddd\WSL为导入虚拟机的路径,D:\dataddd\WSL\WSL-Ubuntu.tar为虚拟机备份文件路径,--version 2为版本号,关于版本一般来说忽略即可。

复制代码
wsl --import Ubuntu D:\dataddd\WSL D:\dataddd\WSL\WSL-Ubuntu.tar --version 2

注意:D:\dataddd\WSL这个路径就是你想把导入备份的虚拟机安装到哪里,我们无论指定到哪个路径都是可以正常执行的,只要确认tar文件路径正确即可。