WSL(Windows Subsystem for Linux)提供了一个兼容性层,使得可以在 Windows 上运行 Linux 命令行工具和应用程序,而无需虚拟机或双重启动系统。WSL 不是一个容器化解决方案。
| 命令 | 描述 |
|---|---|
wsl --list --online | 列出在线可用的 Linux 发行版。 |
wsl --list --verbose | 列出已安装的 Linux 发行版,并显示详细信息。 |
wsl --set-version <distribution name> <versionNumber> | 设置特定发行版的 WSL 版本。 |
wsl --set-default-version <Version> | 设置默认 WSL 版本。 |
wsl --set-default <Distribution Name> | 设置默认的 Linux 发行版。 |
wsl --distribution <Distribution Name> --user <User Name> | 以特定用户的身份运行特定的 Linux 发行版。 |
wsl --update | 更新 WSL 到最新版本。 |
wsl --status | 检查 WSL 配置的状态。 |
wsl --version | 检查 WSL 及其组件的版本。 |
wsl --help | 显示 WSL 中可用的选项和命令列表。 |
wsl --user <Username> | 以指定用户的身份运行 WSL。 |
<DistributionName> config --default-user <Username> | 更改发行版的默认用户。 |
wsl --shutdown | 立即终止所有运行的发行版和 WSL 2 轻量级实用工具虚拟机。 |
wsl --terminate <Distribution Name> | 终止指定的发行版。 |
wsl hostname -i | 标识通过 WSL 2 安装的 Linux 分发版的 IP 地址。 |
cat /etc/resolv.conf | 在 WSL 2 中查看 Windows 计算机的 IP 地址。 |
wsl --export <Distribution Name> <FileName> | 将发行版导出为 tar 文件。 |
wsl --import <Distribution Name> <InstallLocation> <FileName> | 从 tar 文件导入发行版。 |
wsl --import-in-place <Distribution Name> <FileName> | 就地导入发行版,使用.vhdx 文件。 |
wsl --unregister <Distribution Name> | 注销和卸载 Linux 发行版。 |
wsl --mount <DiskPath> | 在所有 WSL 2 发行版中挂载物理磁盘。 |
wsl --unmount <DiskPath> | 卸载已挂载的磁盘或分离所有已挂载的磁盘。 |
编译 WSL2 内核
跳转到“编译 WSL2 内核”(1)配置和编译内核
git clone https://github.com/microsoft/WSL2-Linux-Kernel.gitcd WSL2-Linux-Kernelmake menuconfig KCONFIG_CONFIG=Microsoft/config-wsl配置 USB 串口驱动——进入 Device Drivers -> USB support 菜单——选择所需的 USB 串口驱动make -j$(nproc) bzImage KCONFIG_CONFIG=Microsoft/config-wsl(2)替换内核
-
将编译好的
bzImage复制到 Windows 文件系统中的指定路径C:\wsl_usr_kernel\bzImage -
在用户主目录创建
.wslconfig文件,并添加以下内容[wsl2]kernel=C:\\wsl_usr_kernel\\bzImage -
重启后检查
uname -r
若要取消自定义内核,将
.wslconfig文件改名即可
wsl 挂载 usb 设备
跳转到“wsl 挂载 usb 设备”(1)环境配置:
-
硬件条件:非arm64;Windows 11;WSL 2;Linux 内核≥5.10.60.1
-
下载 usbipd-win 项目:官网下载;
winget install --interactive --exact dorssel.usbipd-win -
Linux中安装
sudo apt install linux-tools-generic hwdata、sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
(2)使用
usbipd list
#链接usbipd bind -b <BUSID>usbipd attach --wsl --busid <BUSID># 断开usbipd detach --busid <busid>