1. WSL2 简介
WSL2(Windows Subsystem for Linux 2)是微软为Windows操作系统开发的一款功能, 它允许在Windows系统上运行Linux发行版.
WSL2是WSL的升级版本, 带来了更好的性能和兼容性, 可以让开发者可以在Windows上享受Linux开发环境的便利.
WSL2使用了一个完整的Linux内核, 而不仅仅是对Linux系统调用的映射, 这意味着可以直接在Windows上运行原生的Linux二进制文件.
它提供了更高的文件系统性能, 更好的兼容性, 允许在本地开发和调试Linux应用程序, 而无需在虚拟机中配置独立的Linux环境.
使用WSL2, 可以在Windows操作系统中使用命令行界面(CLI)运行Linux命令和应用程序.
可以在Windows商店中下载和安装您喜欢的Linux发行版, 如Ubuntu, Debian等.
一旦安装完成, 可以通过WSL2启动Linux发行版, 并在其中运行各种命令和应用程序.
区别:
传统虚拟机: 是一种在主机计算机上软件模拟出一个独立的计算环境, 而在这个虚拟化环境中运行着另一个完整的操作系统和应用程序.
虚拟化技术通常需要占用大量资源并且需要额外的操作系统许可.
WSL2: 是一种在Windows操作系统层面上提供的Linux兼容性层, 它为Linux应用程序提供了一个可以直接运行的环境,
借助虚拟文件系统和Linux应用程序库等技术, WSL2让Linux应用程序可以在Windows上运行,
并且与Windows系统集成更加紧密, 同时也降低了资源占用和额外的许可成本.
WSL2的主要优势包括:
* 1. 性能优势: 与虚拟机相比, WSL2提供了更高的性能, 因为它使用轻量级的实用工具虚拟机(utility VM),
并允许系统和应用程序组件与主机操作系统共享更多内容.
* 2. 与Windows的集成: WSL2支持与Windows的紧密集成, 使开发者能够轻松地在两种环境之间切换.
例如, 可以在Windows文件浏览器中直接访问Linux文件系统.
* 3. 易于设置和使用: WSL2的设置相对简单, 只需要通过Microsoft Store安装所选的Linux发行版, 然后启动并配置它.
* 4. 支持多个Linux发行版: WSL2支持多个Linux发行版, 如Ubuntu, Debian, openSUSE, Fedora等, 为用户提供了灵活性.
* 5. 适用于多种用途: 无论是开发, 测试, 部署还是管理, WSL2都能提供灵活的Linux环境.
总的来说, WSL2为Windows用户提供了一个强大且实用的工具, 使他们能够在不离开Windows环境的情况下享受Linux的优势.
2. 虚拟化相关知识
2.1 硬件虚拟机开关
硬件虚拟机开关: 是指计算机主板上的一个具有开关功能的硬件设置.
这个开关用于启用或禁用处理器的虚拟化支持.
当硬件虚拟机开关被启用时, 处理器会提供虚拟化相关的指令集, 从而允许虚拟化技术进行更高效的操作.
* WSL2使用了Hyper-V虚拟化技术来创建和管理虚拟化环境.
在某些计算机上, 特别是在一些消费级计算机上, 硬件虚拟机开关默认处于禁用状态.
如果您打算使用虚拟化技术, 如Hyper-V, 您可能需要在计算机的BIOS或UEFI设置中打开硬件虚拟机开关.
启用硬件虚拟机开关后, 才可以正常使用Hyper-V等虚拟化技术.

开启硬件虚拟化, 需要进入计算机的BIOS设置, 操作步骤如下(百度找, 找不到就滚键盘ESC-F12, 还不行就FN + ESC-F12):
* 1. 开机时, 按下计算机的启动键(通常是DEL, F2, F10或者ESC)进入BIOS设置界面.
可以在启动时屏幕底部或者开机标志中找到相关的提示信息(部分电脑会有提示).
* 2. 在BIOS设置界面中, 使用键盘上的方向键导航到"Advanced"(高级)或者类似的选项.
* 3. 在高级选项中, 寻找"Virtualization"(虚拟化)或者"Intel Virtualization Technology"(英特尔虚拟化技术)等类似的选项.
* 4. 将虚拟化选项的状态从"Disabled"(禁用)更改为"Enabled"(启用).
有些BIOS设置可能使用不同的术语描述, 比如"Enable Virtualization"(启用虚拟化)等, 具体根据BIOS版本而定.
* 5. 保存更改并退出BIOS设置.
通常, 在BIOS设置界面的底部会显示相应的键盘快捷键, 例如F10保存并退出.
请注意, BIOS设置和选项因计算机品牌和型号而异, 上述步骤仅作为通用指导.
如果您不确定如何开启硬件虚拟化, 建议参考计算机的用户手册或者联系计算机制造商的技术支持获取详细指引.
2.2 Hyper-V虚拟化
Hyper-V虚拟化: 是一种由微软提供的虚拟化技术, 它允许在Windows操作系统上创建和管理虚拟机.
使用Hyper-V, 可以在一台主机上运行多个独立的虚拟机, 每个虚拟机都可以运行自己的操作系统和应用程序.
Hyper-V利用了硬件辅助虚拟化技术, 以提供更高的性能和可靠性.
启用虚机化相关功能(完成启动后需要重启计算机):
* 1. Hyper-V;
* 2. windows虚拟机监控程序平台;
* 3. 适用于Linux的Windows子系统;
* 4. 虚拟机平台.

Win11家庭版, 系统并没有预先安装Hyper-V功能, 需要手动安装:
* 1. 在桌面新建文本文件hyper_v.bat.
* 2. 选中hyper_v.bat右击 --> 选择编辑.
* 3. 复制下方批处理脚本, 粘贴到文件中.
* 4. 保存并退出.
* 5. 右键使用管理员运行, 脚本将自动完成Hyper-V功能安装.
* 6. 安装完成后, 重启即可在windows功能中找到Hyper-V, 且正常情况下已经自动开启.
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hv.txt
for /f %%i in ('findstr /i . hv.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hv.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
Pause
启动适用于Linux的Windows子系统(WSL)后, 默认会提供wsl命令用于启动默认的WSL发行版.
在cmd命令提示符中输入wsl可以验证WSL是否已经正确安装并可用.

3. 下载 Linux 内核更新包
下载适用于x64计算机的WSL2 Linux内核更新包:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi .
双击以运行下载的更新包 --> 系统将提示你提供提升的权限, 选择"是"以批准此安装.

* 不要使用wsl --update命令进行更新, 需要科学上网.
4. 设置WSL 2 为默认版本
将 WSL 2 设置为默认版本: wsl --set-default-version 2 .

5. 安装所选的 Linux 分发
5.1 应用商城安装
* 1. 打开应用商城 --> 搜索linux的发行版本.

应用商城安装路径位于:
C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_xxxxxxxx\LocalState\下.

* 2. 按照成功后点击打开.

* 3. 设置用户名称及密码, 设置完成后便可叉掉窗口.

5.2 自定义安装
下载Linux:
* 1. 下载地址: https://cloud-images.ubuntu.com/releases/ .
* 2. 选择发行版本, 例如: 20.04版本.

* 3. 选择更本版本, 地址: https://cloud-images.ubuntu.com/releases/focal/release-20231011/ .

* 4. 选择wsl版本文件.
下载地址: https://cloud-images.ubuntu.com/releases/focal/release-20231011/
ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz .

* 6. 安装ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz:
打开命令行工具, 使用wsl --import命令进行安装.
该命令的格式为: wsl --import <DistributionName> <InstallLocation> <FileName>.
请注意, <DistributionName>是你为新的WSL分发版定义的名字,
<InstallLocation>是你希望将分发版安装到的目录,
<FileName>则是ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz文件的路径.
例如: wsl --import Ubuntu2004 C:\WSL\Ubuntu2004
C:\path\to\ubuntu-20.04-server-cloudimg-amd64-wsl.rootfs.tar.gz.
这个命令将创建一个名为Ubuntu2004的新的WSL分发版, 并将其安装在C:\WSL\Ubuntu2004目录下.


* 8. 启动ubuntu-20.04设置密码:
# 启动子系统
C:\Users\blue\Desktop>wsl -d Ubuntu2004
# 首次设置密码
root@Vivobook:/mnt/c/Users/blue/Desktop# passwd
New password: zxc
Retype new password: zxc
passwd: password updated successfully
root@Vivobook:/mnt/c/Users/blue/Desktop#

6. 基本使用
6.1 列出版本信息
查看wsl版本以及运行状态命令: wsl --list --verbose , 简写: wsl -l -v .
C:\Users\blue\Desktop> wsl --list --verbose
NAME(名称) STATE(状态) VERSION(wsl版本)
* Ubuntu-22.04 Running 2
Ubuntu2004 Stopped 2
查看列出已安装的WSL发行版及默认使用版本: wsl -l .
C:\Users\blue\Desktop> wsl -l
适用于 Linux 的 Windows 子系统分发:
Ubuntu-22.04 (默认)
Ubuntu2004
6.2 切换默认使用版本
切换默认使用的版本, 需要先停止运行子系统, 再切换默认的使用版本(从STATE状态可以看到虚拟机的运行状态).
关闭当前运行的wsl: wsl --shutdown .
设置wsl默认版本, 命令:wsl --set-version <DistributionName> .
# 关闭当前运行的wsl:
C:\Users\blue\Desktop>wsl --shutdown
# 设置wsl默认版本:
C:\Users\blue\Desktop>wsl --setdefault Ubuntu2004
操作成功完成.
# 查看设置默认使用版本:
C:\Users\blue\Desktop>wsl -l
适用于 Linux 的 Windows 子系统分发:
Ubuntu2004 (默认)
Ubuntu-22.04
6.3 启动子系统
默认情况下, 使用wsl命令会运行默认的子系统.

使用以下命令启动指定发行版, 使用wsl命令: wsl -d <DistributionName>.

6.4 关闭子系统
关闭WSL子系统步骤:
* 1. 可以在WSL终端中输入exit命令或叉掉连接窗口.


* 2. 使用命令: wsl --shutdown 停止WSL程序的运行.

* wsl --shutdown 会停止所有的wsl子系统.

* 指定的WSL子系统: wsl --terminate <DistributionName> , 简写 wsl -t <DistributionName> .

6.5 注销子系统
注销WSL子系统命令: wsl --unregister <DistributionName> .
注销后会删除系统文件, 在删除前做好备份!!!
# 删除Ubuntu2004子系统:
wsl --unregister Ubuntu2004



7. 终端中使用WSL
* 1. 在系统 --> 开发者选择中选默认的终端为Windows终端.

* 2. 开启子系统.

* 3. 外观配置.

* 注意: 关闭子系统时需要新建一个一个窗口输入wsl --shutdown;
如果在终端中输入exit会直接关闭终端窗口.

8. 更换国内源
* 1. 备份原始源文件source.list.
执行命令: sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
* 2.修改源文件sources.list.
2.1 更改文件权限使其可编辑: sudo chmod 777 /etc/apt/sources.list .
2.2 打开文件进行编辑: sudo vi /etc/apt/sources.list .
2.3 删除原来的文件内容, 复制下面的任意一个到其中并保存.
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse

* 3. 更新软件源: 保存文件并关闭文本编辑器.
然后, 在终端中运行以下命令更新软件源: sudo apt update .

* 4. 升级软件包(可选): sudo apt upgrade -y .





9. Xshell连接WSL
* 1. 更新网络工具: sudo apt install net-tools .
* 2. 查看ip地址: ifconfig .

* 3. 按照ssh服务器: sudo apt install openssh-server .
* 4. 启动ssh服务器: sudo service ssh start .
4.1 设置ssh服务器开机自启: sudo systemctl enable ssh .
4.2 检查SSH服务是否已经设置为开机自启: sudo systemctl is-enabled ssh .
4.3 果输出显示"enabled",表示SSH服务已经设置为开机自启.

* 5. 关闭Ubuntu上的防火墙: sudo systemctl stop ufw .
查看防火墙服务是否已经关闭: sudo ufw status ; 如果终端输出"Status: inactive", 则表示防火墙已经成功关闭.
关闭开机自启防火墙: sudo systemctl disable ufw .

* 6. Xshell工具无法连接Ubuntu系统root用户, 需要更改sshd文件才能使用root用户连接Xshell.
6.1 vim /etc/ssh/sshd_config .
6.2 在文件末尾添加: PermitRootLogin yes .
6.3 保存并退出.
6.4 重启ssh服务: service ssh restart .


* 7. 打开xshell工具 -- > 点击新建回话.

* 8. 设置回话的名称, 将ip地址"172.22.83.51"填写到主机框中 --> 点击连接.

* 9. 填写登录的用户名 --> 勾选记住用户名.

* 10. 填写用户的密码 --> 勾线记住密码 --> 点击确认.

* 11. 连接成功!
