Windows11安装WSL2(Windows Subsystem for Linux)

1 配置Windows环境

任务栏搜索功能,打开 启用或关闭Windows功能 界面,勾选以下两项,然后点击 确定。

然后 重启电脑。

2 安装Linux子系统

2.1 安装默认子系统版本:

bash 复制代码
# 下载安装速度比较慢,--web-download 参数提升下载速度
wsl --install --web-download

弹出的用户账户控制界面选择 是。

2.2 进入/退出Linux

bash 复制代码
# 进入
wsl -d Ubuntu

# 退出
exit

或者 PowerShell

3 迁移子系统到其他盘

子系统默认安装到C盘:

C:\Users\xxx\AppData\Local\wsl{0b1453cf-0d9f-477b-9258-feb84e4b5281}

为了不占用C盘,将子系统迁移到别的盘。

  1. 导出镜像
bash 复制代码
# 导出之前先关闭所有子系统
wsl --shutdown

# 导出到F盘
wsl --export Ubuntu F:\WSL\Ubuntu-24.04.tar
  1. 导入镜像到F盘
bash 复制代码
wsl --import Ubuntu-24.04 F:\WSL\Ubuntu-24.04 F:\WSL\Ubuntu-24.04.tar
  1. 卸载安装在C盘的子系统
bash 复制代码
wsl --unregister Ubuntu

附录一:wsl相关命令

  1. 安装与配置
bash 复制代码
# 安装WSL和默认Ubuntu发行版
wsl --install

# 查看可安装的Linux发行版
wsl --list --online
wsl -l -o

# 安装指定发行版
wsl --install -d Ubuntu-22.04
wsl --install -d Debian

# 更新WSL内核
wsl --update

# 设置WSL默认版本
wsl --set-default-version 2
  1. 查看与管理发行版
bash 复制代码
# 列出已安装的发行版
wsl --list --verbose
wsl -l -v

# 设置默认发行版
wsl --set-default Ubuntu-22.04

# 启动指定发行版
wsl -d Ubuntu-22.04

# 以root用户启动
wsl -u root

# 卸载已安装的发行版
wsl --unregister Ubuntu
  1. 系统控制
bash 复制代码
# 关闭所有WSL实例
wsl --shutdown

# 终止指定发行版
wsl --terminate Ubuntu-22.04

# 设置发行版版本
wsl --set-version Ubuntu 2
  1. 备份和迁移
bash 复制代码
# 导出发行版备份
wsl --export Ubuntu-22.04 D:\backup\ubuntu22.tar

# 从备份导入新实例
wsl --import Ubuntu-New D:\WSL\NewUbuntu\ D:\backup\ubuntu22.tar --version 2

# 自定义导入路径
wsl --import Ubuntu-Dev D:\WSL\MyUbuntu rootfs.tar.gz --version 2
  1. 访问Windows文件
bash 复制代码
# 进入C盘
cd /mnt/c/

# 访问用户目录
ls /mnt/c/Users/你的用户名/

# 创建桌面快捷链接
ln -s /mnt/c/Users/你的用户名/Desktop/ ~/Desktop

# 从WSL调用Windows命令
explorer.exe .          # 打开当前目录到资源管理器
code .                  # 用VSCode打开当前目录

# 从Windows复制文件到WSL
copy file.txt \\wsl$\Ubuntu-22.04\home\user\
  1. 高级用法
bash 复制代码
# 在PowerShell中运行WSL命令
wsl ls -la
wsl python3 /home/username/script.py

# 执行单行命令不进入交互
wsl -d Ubuntu-22.04 -e bash -c "ls /"

# 执行多个命令
wsl bash -c "cd /home && mkdir test && echo done"
相关推荐
wacsii43 分钟前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
共享家95271 小时前
408 操作系统第一章
服务器·数据库·windows
AI+程序员在路上1 小时前
RV1126B 上支持的模型及全流程应用--从CNN及语音到 LLMVLM 与跨平台选型
linux·c语言·人工智能
默|笙1 小时前
【Linux网络】传输层协议TCP(1)---TCP报文介绍
linux·网络·tcp/ip
相思难忘成疾1 小时前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
PellyKoo1 小时前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
用户4107192013251 小时前
用 systemd 从零做一个系统健康巡检服务:脚本、沙箱与磁盘满排查实战
linux·ubuntu
云飞云共享云桌面1 小时前
1台SolidWorks服务器如何承载10个设计并发?
运维·服务器·网络·3d·制造
未来之窗软件服务2 小时前
WAF负载均衡+蜜罐混淆安全体系-东方仙盟
运维·安全·负载均衡·仙盟创梦ide·东方仙盟·阿雪技术观·网关开发