wsl修改默认安装目录到其他盘
1. 查看WSL分发版本
在Windows PowerShell中输入如下命令:
注意一下,如果加*标的不是ubuntu,请参考上篇教程修改默认wsl版本。
我的输出是:
1 2 3 4
| NAME STATE VERSION * Ubuntu Running 1 docker-desktop-data Stopped 2 docker-desktop Stopped 2
|
2. 导出分发版为tar文件到目标路径
1
| wsl --export <name> <target-dir>\wsl-ubuntu.tar
|
这里将<name>替换为你的wsl发行版名称,<target-dir>替换为你希望保存的路径,比如我想把wsl的路径修改为d:\WslUbuntu\
1
| wsl --export Ubuntu d:\WslUbuntu\wsl-ubuntu.tar
|
注意盘符是小写。
3. 注销当前分发版
例如我的是
4. 重新导入并安装WSL在目标路径下
1
| wsl --import <name> <target-dir>\wsl-ubuntu <target-dir>\wsl-ubuntu.tar --version <version>
|
最后的<version>是你在第一步中看到的版本号,例如我的是
1
| wsl --import Ubuntu d:\wsl\ubuntu d:\WslUbuntu\wsl-ubuntu.tar --version 1
|
5. 设置默认登陆用户为安装时用户名
1
| <name> config --default-user <Username>
|
最后,可以把产生的tar文件删除。
1
| wsl --install Debian --name openwrt --location D:\wsl\openwrt --web-download
|
选项说明
| 选项 |
作用 |
--name openwrt |
命名为 openwrt |
--web-download |
从网络下载(不用商店) |
--location D:\wsl\openwrt |
指定安装路径 |
--no-launch |
安装后不自动启动 |
wsl相关参数
一、运行 Linux 二进制文件
1. 启动默认 shell
📌 不带参数,直接进入默认发行版的默认 shell。
2. --exec, -e 不使用 shell 执行命令
1 2 3 4 5
| # 直接执行命令,不经过 shell wsl -e ls -la
# 在指定发行版中执行 wsl -d Debian -e cat /etc/os-release
|
📌 区别:-e 直接执行二进制文件,不会加载 .bashrc 等配置。
3. --shell-type 指定 shell 类型
1 2 3 4 5 6 7 8
| # 使用标准 shell wsl --shell-type standard
# 使用登录 shell(加载完整配置) wsl --shell-type login
# 不使用 shell wsl --shell-type none -e ls
|
4. -- 按原样传递命令行
1 2 3 4 5
| # -- 后面的内容原样传递给 Linux wsl -- ls -la /home
# 传递带特殊字符的命令 wsl -- echo "Hello World"
|
二、运行选项
1. --cd 指定工作目录
1 2 3 4 5 6 7 8 9 10 11
| # 进入 Linux 绝对路径 wsl --cd /home/user/project
# 进入用户主目录 wsl --cd ~
# 进入 Windows 路径 wsl --cd "D:\Projects\myapp"
# 组合使用 wsl -d Debian --cd /var/log ls -la
|
2. --distribution, -d 指定发行版
1 2 3 4 5 6
| # 进入指定发行版 wsl -d Debian wsl --distribution Ubuntu
# 在指定发行版执行命令 wsl -d Debian uname -a
|
3. --distribution-id 指定发行版 ID(GUID)
1 2
| # 使用 GUID 运行(适用于脚本) wsl --distribution-id {12345678-1234-1234-1234-123456789abc}
|
📌 GUID 可以在注册表中找到:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
4. --user, -u 指定用户
1 2 3 4 5 6 7 8 9
| POWERSHELL# 以 root 用户进入 wsl -u root wsl -d Debian -u root
# 以普通用户进入 wsl -d Debian -u myuser
# 以 root 执行命令 wsl -d Debian -u root apt update
|
5. --system 启动系统发行版
1 2
| # 进入 WSL 系统发行版(用于调试) wsl --system
|
📌 这是 WSL 内部使用的特殊发行版。
三、帮助与调试
1. --help 显示帮助
2. --debug-shell 调试 shell
1 2
| # 打开 WSL2 调试 shell(用于诊断问题) wsl --debug-shell
|
四、安装相关
1. --install 安装发行版
1 2 3 4 5 6 7 8 9
| # 默认安装(Ubuntu) wsl --install
# 安装指定发行版 wsl --install Debian wsl --install Ubuntu-22.04
# 查看可安装的发行版 wsl --list --online
|
安装选项:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| # --enable-wsl1:启用 WSL1 支持 wsl --install --enable-wsl1
# --fixed-vhd:创建固定大小的磁盘 wsl --install Debian --fixed-vhd
# --from-file:从本地文件安装 wsl --install --from-file D:\Download\debian.tar.gz --name MyDebian
# --legacy:使用旧分发版清单 wsl --install --legacy
# --location:指定安装路径 wsl --install Debian --location D:\wsl\debian
# --name:设置发行版名称 wsl --install --from-file D:\debian.tar --name CustomDebian
# --no-distribution:仅安装 WSL 组件 wsl --install --no-distribution
# --no-launch, -n:安装后不启动 wsl --install Debian --no-launch wsl --install Debian -n
# --version:指定 WSL 版本 wsl --install Debian --version 2
# --vhd-size:指定磁盘大小 wsl --install Debian --vhd-size 50GB
# --web-download:从网络下载(非商店) wsl --install Debian --web-download
|
完整示例:安装到 D 盘指定路径
1
| wsl --install Debian --location D:\wsl\debian --version 2 --no-launch
|
五、管理发行版 --manage
1. --move 移动发行版位置
1 2
| # 将 Debian 移动到 D 盘 wsl --manage Debian --move D:\wsl\debian-new
|
2. --set-sparse 设置稀疏磁盘
1 2 3 4 5 6
| # 启用稀疏模式(自动回收空间) wsl --manage Debian --set-sparse true wsl --manage Debian -s true
# 禁用稀疏模式 wsl --manage Debian --set-sparse false
|
3. --set-default-user 设置默认用户
1 2 3
| # 设置 Debian 的默认用户 wsl --manage Debian --set-default-user myuser wsl --manage Debian --set-default-user root
|
4. --resize 调整磁盘大小
1 2 3 4 5
| # 将 Debian 的磁盘扩大到 100GB wsl --manage Debian --resize 100GB
# 缩小到 50GB(需要先在 Linux 内缩小文件系统) wsl --manage Debian --resize 50GB
|
六、磁盘挂载 --mount
1. 基本挂载
1 2 3 4 5
| # 挂载物理磁盘 wsl --mount \\.\PhysicalDrive1
# 挂载虚拟磁盘 (VHD) wsl --mount D:\disks\mydisk.vhdx --vhd
|
2. 挂载选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| # --vhd:指定为虚拟硬盘 wsl --mount D:\disk.vhdx --vhd
# --bare:仅附加,不挂载 wsl --mount \\.\PhysicalDrive1 --bare
# --name:自定义挂载点名称 wsl --mount \\.\PhysicalDrive1 --name mydisk # 挂载后路径:/mnt/wsl/mydisk
# --type:指定文件系统类型 wsl --mount \\.\PhysicalDrive1 --type ext4 wsl --mount \\.\PhysicalDrive1 --type ntfs
# --options:额外挂载选项 wsl --mount \\.\PhysicalDrive1 --options ro # 只读 wsl --mount \\.\PhysicalDrive1 --options "ro,noatime"
# --partition:指定分区索引 wsl --mount \\.\PhysicalDrive1 --partition 2 # 第2个分区
|
完整示例:
1 2
| # 挂载第二块硬盘的第一个分区,ext4 格式,只读 wsl --mount \\.\PhysicalDrive1 --partition 1 --type ext4 --options ro --name backup
|
七、卸载磁盘 --unmount
1 2 3 4 5
| # 卸载指定磁盘 wsl --unmount \\.\PhysicalDrive1
# 卸载所有磁盘 wsl --unmount
|
八、版本与默认设置
1. --set-default-version 设置默认 WSL 版本
1 2 3 4 5
| # 新安装的发行版默认使用 WSL2 wsl --set-default-version 2
# 新安装的发行版默认使用 WSL1 wsl --set-default-version 1
|
2. --set-default, -s 设置默认发行版
1 2 3
| wsl --set-default Debian wsl -s Debian wsl -s Ubuntu-22.04
|
3. --set-version 转换发行版版本
1 2 3 4 5
| # 将 Debian 从 WSL1 转为 WSL2 wsl --set-version Debian 2
# 将 Debian 从 WSL2 转为 WSL1 wsl --set-version Debian 1
|
九、关闭与终止
1. --shutdown 关闭所有 WSL
1 2 3 4 5
| # 正常关闭 wsl --shutdown
# 强制关闭(可能丢失数据) wsl --shutdown --force
|
2. --terminate, -t 终止指定发行版
1 2 3
| POWERSHELLwsl --terminate Debian wsl -t Debian wsl -t Ubuntu
|
十、状态与版本信息
1. --status 显示状态
输出示例:
1 2 3 4 5
| TEXT默认分发版: Debian 默认版本: 2 Windows Subsystem for Linux 上次更新时间: 2024/1/15 WSL 自动更新已启用。 内核版本: 5.15.133.1-1
|
2. --version, -v 显示版本
输出示例:
1 2 3 4 5 6 7
| TEXTWSL 版本: 2.0.9.0 内核版本: 5.15.133.1-1 WSLg 版本: 1.0.59 MSRDC 版本: 1.2.4677 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp Windows 版本: 10.0.22631.2861
|
十一、导出 --export
1 2 3 4 5 6 7 8 9 10 11
| # 导出为 tar 文件 wsl --export Debian D:\Backup\debian.tar
# 导出到标准输出 wsl --export Debian - > D:\Backup\debian.tar
# --format:指定导出格式 wsl --export Debian D:\Backup\debian.tar --format tar wsl --export Debian D:\Backup\debian.tar.gz --format tar.gz wsl --export Debian D:\Backup\debian.tar.xz --format tar.xz wsl --export Debian D:\Backup\debian.vhd --format vhd
|
十二、导入 --import
1. 基本导入
1 2 3 4 5 6 7 8 9 10 11 12
| wsl --import <名称> <安装路径> <文件路径> [选项] POWERSHELL# 从 tar 文件导入 wsl --import MyDebian D:\wsl\mydebian D:\Download\debian.tar
# 从标准输入导入 cat debian.tar | wsl --import MyDebian D:\wsl\mydebian -
# --version:指定 WSL 版本 wsl --import MyDebian D:\wsl\mydebian D:\Download\debian.tar --version 2
# --vhd:从 vhdx 文件导入 wsl --import MyDebian D:\wsl\mydebian D:\Backup\debian.vhdx --vhd
|
2. --import-in-place 就地导入
1 2
| # 直接使用现有的 vhdx 文件(不复制) wsl --import-in-place MyDebian D:\wsl\existing\ext4.vhdx
|
📌 必须是 ext4 格式的 vhdx 文件。
十三、列出发行版 --list, -l
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| # 基本列表 wsl --list wsl -l
# --all:包括正在安装/卸载的 wsl --list --all wsl -l --all
# --running:仅运行中的 wsl --list --running wsl -l --running
# --quiet, -q:仅显示名称 wsl --list --quiet wsl -l -q
# --verbose, -v:详细信息 wsl --list --verbose wsl -l -v
# --online, -o:显示可安装的发行版 wsl --list --online wsl -l -o
|
wsl -l -v 输出示例:
1 2 3 4
| TEXT NAME STATE VERSION * Debian Running 2 Ubuntu Stopped 2 Alpine Stopped 1
|
十四、删除/注销 --unregister
1 2 3 4
| # 删除指定发行版 wsl --unregister Debian wsl --unregister Ubuntu wsl --unregister MyCustomDistro
|
⚠️ 警告:会永久删除所有数据!
安全删除流程:
1 2 3 4 5 6 7 8 9 10 11
| # 1. 查看有哪些发行版 wsl -l -v
# 2. 备份 wsl --export Debian D:\Backup\debian.tar
# 3. 删除 wsl --unregister Debian
# 4. 确认 wsl -l -v
|
十五、更新与卸载
1. --update 更新 WSL
1 2 3 4 5
| # 更新到最新稳定版 wsl --update
# 更新到预发行版 wsl --update --pre-release
|
2. --uninstall 卸载 WSL
1 2
| # 卸载 WSL 包(组件) wsl --uninstall
|
📌 这会卸载 WSL 核心组件,但不会删除已安装的发行版。
十六、完整命令速查表
| 命令 |
作用 |
wsl |
进入默认发行版 |
wsl -d Debian |
进入指定发行版 |
wsl -d Debian -u root |
以 root 进入 |
wsl -e ls |
不使用 shell 执行命令 |
wsl --cd /home |
指定工作目录 |
wsl --shell-type login |
使用登录 shell |
wsl --help |
显示帮助 |
wsl --debug-shell |
调试 shell |
wsl --install |
安装 WSL |
wsl --install Debian |
安装指定发行版 |
wsl --install --location D:\wsl |
安装到指定路径 |
wsl --install --from-file file.tar |
从文件安装 |
wsl --install --no-launch |
安装后不启动 |
wsl --manage Debian --move D:\wsl |
移动发行版 |
wsl --manage Debian --set-sparse true |
设置稀疏磁盘 |
wsl --manage Debian --set-default-user myuser |
设置默认用户 |
wsl --manage Debian --resize 100GB |
调整磁盘大小 |
wsl --mount \\.\PhysicalDrive1 |
挂载磁盘 |
wsl --mount disk.vhdx --vhd |
挂载虚拟磁盘 |
wsl --unmount |
卸载所有磁盘 |
wsl --set-default-version 2 |
设置默认 WSL 版本 |
wsl --set-default Debian |
设置默认发行版 |
wsl --set-version Debian 2 |
转换发行版版本 |
wsl --shutdown |
关闭所有 WSL |
wsl --shutdown --force |
强制关闭 |
wsl -t Debian |
终止指定发行版 |
wsl --status |
显示状态 |
wsl --version |
显示版本 |
wsl --export Debian backup.tar |
导出发行版 |
wsl --export Debian backup.vhd --format vhd |
导出为 VHD |
wsl --import Name Path file.tar |
导入发行版 |
wsl --import-in-place Name file.vhdx |
就地导入 |
wsl -l -v |
列出发行版(详细) |
wsl -l -o |
列出可安装的发行版 |
wsl -l --running |
列出运行中的 |
wsl --unregister Debian |
删除发行版 |
wsl --update |
更新 WSL |
wsl --uninstall |
卸载 WSL |