wsl安装使用教程

准备工作

提前开启电脑虚拟化工作

开始安装WSL

打开windows powershell 窗口

PS C:\Users\wangj0928> wsl --install
正在下载: 适用于 Linux 的 Windows 子系统 2.7.12
[                           0.3%    

PS C:\Windows\system32> wsl --install
正在下载: 适用于 Linux 的 Windows 子系统 3.0.1

WSL常用命令

安装与更新

命令说明
wsl --install -d <Distro>安装指定 Linux 发行版
wsl --install --no-distribution仅安装 WSL 内核,不安装发行版
wsl --update更新 WSL 内核到最新版
wsl --update --rollback回滚到上一版 WSL 内核
wsl --version查看 WSL 版本信息
#安装 WSL 及默认 Ubuntu 发行版
wsl --install

#安装到指定目录
# 这是使用的是wsl离线文件 进行安装的
wsl --install --from-file "D:\wj\software\wsl\CentOS-Stream-Image-WSL-Base.x86_64-9-202608080808.wsl" --location "D:\wj\software\wsl\CentOS-Stream-9" --name CentOS-Stream-9

#这属于在线安装
wsl --install kali-linux --location D:\wj\software\wsl\kali-linux
wsl --install AlmaLinux-8 --location D:\wj\software\wsl\AlmaLinux-8
wsl --install Ubuntu-26.04 --location D:\wj\software\wsl\Ubuntu-26.04
wsl --install Debian --location D:\wj\software\wsl\Debian

#在创建一个 同样的系统,需要修改一个名字即可--name kali-linux2
wsl --install kali-linux --name kali-linux2 --location D:\wj\software\wsl\kali-linux

查看与列表

命令说明示例
wsl --list --online 或 wsl -l -o列出在线商店可安装的发行版wsl -l -o
wsl --list --verbose 或 wsl -l -v列出已安装的发行版及状态、WSL 版本wsl -l -v
wsl --list --all列出所有发行版(含未运行)wsl --list --all
wsl --list --running仅列出当前正在运行的发行版wsl --list --running
wsl --status查看 WSL 全局状态和配置wsl --status
发行版名称所属家族 / 基础发布与更新模式支持周期概览适用场景与核心区别
Ubuntu (无版本号)DebianLTS(滚动指向最新稳定版)跟随当前最新LTS通用开发。默认安装项,实际指向 Ubuntu-26.04(截至2026年9月),适合不想指定版本号的用户。
Ubuntu-26.04DebianLTS 固定周期5年(至2031年4月)通用开发/服务器。当前(2026年)最新的Ubuntu LTS,拥有最新的上游软件包和内核。
Ubuntu-24.04DebianLTS 固定周期5年(至2029年4月)通用开发/服务器。上一代LTS,生态成熟稳定,兼容性验证最充分。
Ubuntu-22.04DebianLTS 固定周期5年(至2027年4月)通用开发/服务器。较老的LTS,适合需要旧版依赖或特定遗留环境的项目。
DebianDebian稳定版(Stable)固定周期约2年(当前为Bookworm)通用服务器/高稳定场景。以极度稳定和自由软件理念著称,软件包版本较老但Bug极少。
kali-linuxDebian (Testing分支)滚动发布 (Rolling)无固定终止日期安全渗透/数字取证。预装大量黑客工具,默认以Root用户运行,不适合日常办公。
eLxrDebian (定制)固定周期(物联网优化)基于Debian 12长期支持边缘计算/嵌入式/IoT。由风河(Wind River)维护,针对低资源设备和实时性场景做优化,内核响应延迟低。
AlmaLinux-10Red Hat (RHEL克隆)企业级固定周期(EL10)约10年(至2036年)企业级生产服务器。与RHEL 1:1二进制兼容,最新EL10主干,适合替代CentOS。
AlmaLinux-9Red Hat (RHEL克隆)企业级固定周期(EL9)约10年(至2032年)企业级生产服务器。当前主流EL9分支,社区活跃,稳定性极高。
AlmaLinux-8Red Hat (RHEL克隆)企业级固定周期(EL8)至2029年企业级遗留服务器。适用于依赖老版本GLIBC/内核的专有软件环境。
AlmaLinux-Kitten-10Red Hat (RHEL克隆)开发/预览版(Pre-release)无(非生产用)测试与上游体验。相当于RHEL 10的Beta版,用于提前适配新功能,不建议生产环境使用。
OracleLinux_9_5Red Hat (RHEL克隆)企业级固定周期(UEK兼容)约10年企业级数据库/服务器。与RHEL兼容,但附带Oracle自家的Unbreakable Enterprise Kernel(UEK),对Oracle数据库有额外优化。
OracleLinux_8_10Red Hat (RHEL克隆)企业级固定周期至2029年企业级遗留系统。同上,基于EL8老分支。
OracleLinux_7_9Red Hat (RHEL克隆)企业级固定周期(即将EOL)至2024年(已过生命周期)废弃/迁移对象。内核和工具链极老,存在较多安全漏洞,强烈不推荐新装。
FedoraLinux-44Red Hat (Fedora上游)短周期前沿版(6个月/版)约13个月个人开发者/尝鲜。集成GNOME 48等最新桌面技术和编译器,适合做桌面环境测试,但版本迭代快。
FedoraLinux-43Red Hat (Fedora上游)短周期前沿版约13个月(将于2026年底EOL)个人开发者/尝鲜。比44版稍旧,若想体验新功能推荐选择44。
archlinux独立(自主构建)滚动发布 (Rolling)无固定终止日期极客/DIY玩家。秉持极简主义(Minimalist),无预装软件,软件包永远是最新上游版本,配置自由度最高但有潜在不稳定风险。
openSUSE-TumbleweedSUSE滚动发布 (Rolling)无固定终止日期开发者/滚动爱好者。SUSE系最新软件源,包含最新的Linux内核和工具链,稳定性优于Arch但略低于Leap。
openSUSE-Leap-16.0SUSE固定周期(常规版)约3-5年通用服务器/桌面。与SUSE Enterprise共享源码,提供稳定的生产级体验,适合不喜欢滚动更新的用户。
SUSE-Linux-Enterprise-16.0SUSE企业级固定周期长期支持(约10年)企业关键任务。SUSE官方商业版,提供SUSE专属技术支持和服务(SLES)。
SUSE-Linux-Enterprise-15-SP7SUSE企业级服务包(Service Pack)长期支持(至2030年后)企业老旧系统。15 SP7是15系列的最新服务包,适合对SLES 15生态有依赖的场景。
SUSE-Linux-Enterprise-15-SP6SUSE企业级服务包(旧SP)支持至2028年左右企业遗留系统。SP6比SP7稍老,无特殊需求建议选SP7或16.0。

启动与运行

命令说明示例
wsl启动默认发行版wsl
wsl ~启动默认发行版并进入用户主目录wsl ~
wsl -d <Distro>启动指定发行版wsl -d Ubuntu-22.04
wsl -d kali-linux2
wsl -d <Distro> -u <User>以指定用户身份启动wsl -d Ubuntu -u root
wsl -e <Command>执行命令后退出(不进入交互 shell)wsl -e cat /etc/os-release
wsl <Linux命令>在默认发行版中直接执行 Linux 命令wsl ls -la

相关启动命令

#切换root AlmaLinux-8
方式1:临时获取 root 权限执行单条命令
方式2:sudo -i
方式3:sudo passwd root  可以先给root设置一个密码,然后在使用su - 切换
方式4:直接以 root 启动  以管理员打开 PowerShell / CMD:
wsl -d AlmaLinux-8 -u root
wsl -d Debian -u root
直接进入 root,无需密码
方式5:设置默认登录用户为 root
wsl -d AlmaLinux-8 --set-default-user root
改为普通用户
wsl -d AlmaLinux-8 --set-default-user wj

#AlmaLinux-8更换阿里源
sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^# baseurl=https://repo.almalinux.org|baseurl=https://mirrors.aliyun.com|g' -i.bak /etc/yum.repos.d/almalinux*.repo

dnf makecache  

关闭与终止

命令说明示例
wsl --shutdown关闭所有 WSL 实例,释放内存wsl --shutdown
wsl --terminate <Distro> 或 wsl -t <Distro>强制停止指定发行版wsl -t Ubuntu-22.04

设置/切换/删除

命令说明
wsl --set-version Ubuntu-22.04 2设置发行版使用 WSL 1 或 WSL 2
wsl --set-default AlmaLinux-8设置新安装发行版的默认 WSL 版本
wsl --unregister Ubuntu-20.04
wsl --unregister kali-linux
卸载/删除指定发行版(⚠️不可恢复)
#设置默认发行版
wsl --set-default CentOS-Stream-9
wsl --set-default AlmaLinux-8

备份迁移

命令说明示例
wsl --import <Distro> <Dir> <File.tar>从 tar 文件导入发行版(多次导入修改名字即可Ubuntu2)wsl --import Ubuntu2 D:\WSL\Ubuntu D:\wsl-backup\Ubuntu.tar
wsl --import <Distro> <Dir> <File.tar> --version <Ver>导入时指定 WSL 版本wsl --import Ubuntu D:\WSL\Ubuntu ubuntu.tar --version 2
wsl --mount <DiskPath>挂载磁盘wsl --mount \\\\.\\PHYSICALDRIVE1
#备份
wsl --export CentOS-Stream-9 D:\wj\software\wsl\CentOS-Stream-9.tar
wsl --export kali-linux D:\wj\software\wsl\kali-linux.tar
wsl --export AlmaLinux-8 D:\wj\software\wsl\AlmaLinux-8.tar
wsl --export Ubuntu-26.04 D:\wj\software\wsl\Ubuntu-26.04.tar
wsl --export Debian D:\wj\software\wsl\Debian-13-5.tar

#导入
wsl --import CentOS-Stream-9 D:\wj\software\wsl\CentOS-Stream-9 D:\wj\software\wsl\CentOS-Stream-9.tar
wsl --import AlmaLinux-8-2 D:\wj\software\wsl\AlmaLinux-8-2 D:\wj\software\wsl\AlmaLinux-8-AliYuan.tar
wsl --import kali-linux2 D:\wj\software\wsl\kali-linux2 D:\wj\software\wsl\kali-linux.tar
wsl --import Debian D:\wj\software\wsl\Debian D:\wj\software\wsl\Debian-13-5.tar

图形化访问wsl 中的系统

#以kali-linux系统为例
先安装桌面环境  必须先更新自身的软件系统 然后在安装桌面软件
# sudo apt update
# sudo apt install -y kali-win-kex
安装完成后输入kex  开启动桌面

常见问题

宝塔面板docker

node_exporter

WSL2 不支持 rslave,通过不宝塔安装node_exporter时,默认添加了rslave

#未修改前的参数
volumes:
      - '/:/host:ro,rslave'
#修改后的参数
volumes:
      - '/:/host:ro'

prometheus

#修改前
command:
  - '--storage.tsdb.retention=15d'
#修改后
command:
  - '--storage.tsdb.retention.time=15d'

grafan

services:
  BT_SERVICE_NAME6:
    image: grafana/grafana:${VERSION}
    #    container_name: ${CONTAINER_NAME}
    deploy:
      resources:
        limits:
          cpus: ${CPUS}
          memory: ${MEMORY_LIMIT}
    restart: always
    ports:
      - ${HOST_IP}:${WEB_HTTP_PORT}:3000
    volumes:
      - ${APP_PATH}/data:/var/lib/grafana:z
    labels:
      createdBy: "bt_apps"
    networks:
      - baota_net

networks:
  baota_net:
    external: true

© 版权声明
THE END
点赞12 分享