WSL 基本使用
目录
1 WSL 安装
在安装前先说明,因为 WSL 使用 Hyper-V,夜神模拟器会无法启用,网上大多都说网易的 mumu 可以兼容,不过我没测试过,不清楚信息真假。
目前 WSL 有两个版本 1 和 2,推荐使用 2。
更新 wsl。
PS C:\Users\gbb> wsl --update --web-download
正在下载: 适用于 Linux 的 Windows 子系统
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。
2 WSL 系统安装
查看有哪些系统可以安装。
PS C:\Users\gbb> wsl --list --online
以下是可安装的有效分发的列表。
请使用“wsl --install -d <分发>”安装。
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_8_5 Oracle Linux 8.5
OracleLinux_7_9 Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4 openSUSE Leap 15.4
openSUSE-Tumbleweed openSUSE Tumbleweed
从商店里安装指定系统。
PS C:\Users\gbb> wsl --install --distribution kali-linux
安装失败提示 Wsl/InstallDistro/WSL_E_INSTALL_PROCESS_FAILED
PS C:\Users\gbb> wsl --install --distribution kali-linux
正在安装: Kali Linux Rolling
已安装 Kali Linux Rolling。
正在启动 Kali Linux Rolling...
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370114
Error: 0x80370114 ??????????????????
Press any key to continue...
分发'kali-linux'安装过程失败,退出代码: 1。
Error code: Wsl/InstallDistro/WSL_E_INSTALL_PROCESS_FAILED
说要启动 WSL 和虚拟服务平台。最简单的是命令行启动。
PS C:\Users\gbb> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
部署映像服务和管理工具
版本: 10.0.22621.1
映像版本: 10.0.22621.1413
启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。
PS C:\Users\gbb> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
部署映像服务和管理工具
版本: 10.0.22621.1
映像版本: 10.0.22621.1413
启用一个或多个功能
[==========================100.0%==========================]
操作成功完成。
手动操作去设置中添加可选功能。
按照官方启用,重启机器。
PS C:\Users\gbb> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
是否立即重启计算机以完成此操作?
[Y] Yes [N] No [?] 帮助 (默认值为“Y”):
查询已经安装的发行版,发现 kali-linux 成功安装并且已经启动。
PS C:\Users\gbb> wsl -l -v
NAME STATE VERSION
* kali-linux Running 2
可以通过 Windows Terminal 输入 kali 进入系统
kali
或者选项卡里也可以进入。
默认安装是最小化,没有工具,可以安装 kali-linux-default 工具包来获得基本的工具。
apt install -y kali-linux-default
如果使用图形化桌面可以安装 Win-KeX。个人经过尝试后,图形化界面发现没有 Vmware 好用,本质上就是 VNC 连接,不推荐使用。
有了 WSL 后可以在 Windows 使用 Linux 命令。
PS C:\Users\gbb> ipconfig | wsl grep IPv4 | wsl cut -d: -f2
169.254.201.136
169.254.3.182
169.254.137.28
192.168.0.100
172.18.80.1
3 WSL 实例管理
3.1 查询运行状态
PS C:\Users\gbb> wsl --list --verbose
NAME STATE VERSION
* kali-linux Stopped 2
PS C:\Users\gbb> kali
┌──(root㉿raingray)-[~]
└─# exit
logout
PS C:\Users\gbb> wsl --list --verbose
NAME STATE VERSION
* kali-linux Running 2
PS C:\Users\gbb>
3.2 停止
wsl -t <Distro Name>
操作演示。
PS C:\Users\gbb> wsl --list --verbose
NAME STATE VERSION
* kali-linux Running 2
PS C:\Users\gbb> wsl -t kali-linux
操作成功完成。
PS C:\Users\gbb> wsl --list --verbose
NAME STATE VERSION
* kali-linux Stopped 2
PS C:\Users\gbb>
另一种停止的方式是直接关闭 Console 也会停止示例。
3.3 启动
可以使用选项在多个发行版中启动虚拟机。
wsl -d <Distro Name>
或者直接输入 Distro Name 就能启动对应实例。
3.4 迁移 WSL 系统位置
默认安装的系统都在 C 盘,大多数人 C 盘被设置为系统盘,所以我们迁移到其他数据盘符存储,避免占用 C 盘过多空间。
使用 PowerShell 查询默认安装位置。
PS C:\Users\gbb> (Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq 'kali-linux' }).GetValue("BasePath") + "\ext4.vhdx"
C:\Users\gbb\AppData\Local\Packages\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\LocalState\ext4.vhdx
PS C:\Users\gbb>
导出。记得导出前做好虚拟机内的服务关闭、数据备份操作,因为直接导出会停止运行系统。
PS C:\Users\gbb> wsl -l -v
NAME STATE VERSION
* kali-linux Running 2
PS C:\Users\gbb> wsl --export kali-linux E:\desktop\kali-linux
正在导出,这可能需要几分钟时间。
操作成功完成。
卸载系统。原有 ext4.vhdx 自动删除。
PS C:\Users\gbb> wsl --unregister kali-linux
正在注销。
操作成功完成。
将刚刚的虚拟机导入。
wsl --import <Distribution Name> <InstallLocation> <FileName>
这里我选择导入到 E:\Documents\Virtual Machines\wsl2-Kali,名称为 kali-linux,导入的文件路径是 E:\Desktop\kali-linux
PS C:\Users\gbb> wsl --import kali-linux 'E:\Documents\Virtual Machines\wsl2-Kali' E:\Desktop\kali-linux
正在导入,这可能需要几分钟时间。
操作成功完成。
启动机器。
PS C:\Users\gbb> wsl -l -v
NAME STATE VERSION
* kali-linux Stopped 2
PS C:\Users\gbb> wsl -l -v
NAME STATE VERSION
* kali-linux Stopped 2
PS C:\Users\gbb> wsl -d kali-linux
┏━(Message from Kali developers)
┃
┃ This is a minimal installation of Kali Linux, you likely
┃ want to install supplementary tools. Learn how:
┃ ⇒ https://www.kali.org/docs/troubleshooting/common-minimum-setup/
┃
┗━(Run: “touch ~/.hushlogin” to hide this message)
┌──(root㉿raingray)-[/mnt/c/Users/gbb]
└─#
如果遇到挂载问题,尝试重启机器已解决。
PS C:\Users\gbb> wsl -d kali-linux
无法将磁盘'E:\Documents\Virtual Machines\wsl2-Kali\ext4.vhdx'附加到 WSL2: 另一个程序正在使用此文件,进程无法访问。
Error code: Wsl/Service/CreateInstance/MountVhd/0x80070020
4 WSL 网络配置
目前我在 Vmware 搭建了个 Lab,这个 Lab 里面都用的是仅主机模式(VMnet18 虚拟网卡),想使用 WSL 中的 Kali 去对 Lab 机器做测试。
目前 WSL 默认网络模式是 NAT,除非只能访问到 Lab 中设置 NAT 的主机,怎么给 WSL 配置上 Vmware 虚拟网卡,网上搜罗一圈没找到,最多设置个桥接。
最终的解决办法就是安装个 Kali 虚拟机设置两个网卡,一张用于打 Lab,另一张上网。
参考资料
- Win-KeX | Kali Linux Documentation,图形化
- Basic commands for WSL | Microsoft Learn,关于 WSL 命令怎么使用的官方文档
如何管理 WSL 磁盘空间 |微软学习 (microsoft.com),虚拟机迁移
解决了“WSL 注册分发失败,错误:0x80370114” |CyberITHub
Windows - WSL 2 安装 Linux 失败,错误代码:0x80370114 - 超级用户 (superuser.com)
最近更新:
发布时间:
很有天赋!
非常感谢这篇精彩的文章,我真的从你精彩的文章中学到了很多东西
我喜欢你的网站,先生,请继续努力并发布更多令人反感的红队内容