因为一些特殊情况,部分开源项目仅支持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文件路径正确即可。