安装wsl前,打开windows功能:
实操:
安装的是哪个wsl版本不重要,他们可以转换,随时可以在wsl1和wsl2之间切换
如果你的wsl linux是纯净安装,从wsl1转换到wsl2版本耗时在30秒内(很快)
我这里最开始至安装了kali-linux
利用在管理员模式下运行power shell ,输入命令
wsl -l -v
即可以查看到当前的wsl linux的状态
包括子系统名称NAME ,
运行状态 STATE
wsl的版本 VERSION
PS C:\Users\cxxu\Desktop> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 1
wsl -l -v
而后,可以执行
wsl --set-version <你指定某个linux系统名>
如果是1,就从2降级到wsl1.
将ubuntu从wsl1转换为wsl2
PS C:\Users\cxxu\downloads\Programs> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 1
PS C:\Users\cxxu\downloads\Programs> wsl --set-version ubuntu 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2
转换完成。
PS C:\Users\cxxu\downloads\Programs> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
最好使用google搜索报错内容
例如
WslRegisterDistribution failed with error: 0x800701bc
....
WslRegisterDistribution failed with error: 0x800701bc · Issue #5393 · microsoft/WSL (github.com)
这个问题,可以通过wsl版本转换尝试解决
wsl --set-default-version 1
wsl_update.msi
内核更新程序
PS C:\Users\cxxu> wsl --help
版权所有(c) Microsoft Corporation。保留所有权利。
有关此产品的隐私信息,请访问 https://aka.ms/privacy。
用法: wsl.exe [参数] [选项...] [命令行]
用于运行 Linux 二进制文件的参数:
如果未提供命令行,wsl.exe 将启动默认 shell。
--exec, -e <命令行>
在不使用默认 Linux shell 的情况下执行指定的命令。
--
按原样传递剩余的命令行。
选项:
--cd <目录>
将指定的目录设置为当前工作目录。
如果使用了 ~,将使用 Linux 用户的主路径。如果路径以 / 字符开头,它将被解释为一个绝 对 Linux 路径。
否则,该值必须是一个绝对 Windows 路径。
--distribution, -d <发行版>
运行指定的发行版。
--user, -u <用户名>
以指定用户身份运行。
--system
启动系统发行版的 shell。
用于管理适用于 Linux 的 Windows 子系统的参数:
--help
显示用法信息。
--install <发行版>
安装适用于 Linux 的 Windows 子系统发行版。
要获得有效发行版的列表,请使用 "wsl.exe --list --online"。
--mount <磁盘>
在所有 WSL 2 发行版中附加并安装物理或虚拟磁盘。
选项:
--vhd
指定<磁盘>引用虚拟硬盘。
--bare
将磁盘附加到 WSL2,但不进行安装。
--name <名称>
使用针对安装点的自定义名称安装磁盘。
--type <类型>
安装磁盘时要使用的文件系统,如果未指定, 默认为 ext4。
--options <选项>
其他安装选项。
--partition <索引>
要安装的分区的索引,如果未指定,则默认为 整个磁盘。
--set-default-version <版本>
更改新发行版的默认安装版本。
--shutdown
立即终止所有正在运行的发行版和 WSL 2 轻型实用程序虚拟机。
--status
显示适用于 Linux 的 Windows 子系统的状态。
--unmount [磁盘]
从所有 WSL2 发行版中卸载并分离磁盘。
如果在没有参数的情况下调用,则卸载和分离所有磁盘
。
--update
更新适用于 Linux 的 Windows 子系统包。
--version, -v
显示版本信息。
用于管理适用于 Linux 的 Windows 子系统中的发行版的参数:
--export <发行版> <文件名>
将发行版导出为 tar 文件。
对于标准输出,文件名可以是 -。
--import <发行版> <安装位置> <文件名> [选项]
将指定的 tar 文件作为新发行版导入。
对于标准输入,文件名可以是 -。
选项:
--version <版本>
指定用于新发行版的版本。
--list, -l [选项]
列出各个发行版。
选项:
--all
列出所有发行版,包括当前正在安装或卸载的
发行版。
--running
仅列出当前正在运行的发行版。
--quiet, -q
仅显示发行版的名称。
--verbose, -v
显示有关所有发行版的详细信息。
--online, -o
显示可使用 "wsl.exe --install" 安装的发行版的列表。
--set-default, -s <发行版>
将相应发行版设置为默认发行版。
--set-version <发行版> <版本>
更改指定发行版的版本。
--terminate, -t <发行版>
终止使用指定的发行版。
--unregister <发行版>
注销相应发行版并删除根文件系统。
windows_控制面板cpl和msc的快速打开_powershell_xuchaoxin
https://aka.ms/wsl2kerne
按照此文档说明,下载并安装 wsl_update_x64.msi
但是如果你的windows版本较新(例如已经是win11),那么应该不需要安装这部分模块
如果遇到其他异常,更多细节可以参考:
https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
目前来看,wsl1的终端交互比较流畅(但还是比不上传统虚拟机和实体机的反应速度)(尤其是使用了zsh后,wsl2命令提示符的反应慢了不少)
不过wsl2的完整性体验比wsl1更加接近传统安装的linux系统
现在wsl2已经支持wsl GUI了,但我还是偏爱wsl1代