因为一些特殊情况,部分开源项目仅支持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,也就是说,你可以通过wsl
和exit
这两个简短的命令非常方便的在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系统来举例,我们可以看到其中包含Ubuntu
|Ubuntu-22.04
|Ubuntu-20.04
|Ubuntu-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文件路径正确即可。