一、目标
我们要把 Ubuntu 22.04 WSL2 安装到指定目录,例如:
E:\ubuntu22.04
而不是默认安装到 C 盘。
推荐方式是使用:
wsl --import
这样可以把 Ubuntu 安装到任意磁盘目录。
二、准备工作
1. 确认 WSL 已安装
在 PowerShell 中执行:
wsl --status
如果能看到 WSL 相关信息,说明已经安装。
也可以执行:
wsl -l -v
查看当前已有的 WSL 系统。
2. 创建安装目录
假设要安装到:
E:\ubuntu22.04
在 PowerShell 中执行:
mkdir E:\ubuntu22.04
mkdir E:\WSLDownload
其中:
E:\ubuntu22.04
用于存放 Ubuntu 系统本体。
E:\WSLDownload
用于存放下载的 Ubuntu 镜像文件。
三、下载 Ubuntu 22.04 WSL 镜像
Ubuntu 22.04 的代号是:
Jammy
Ubuntu 22.04 WSL 官方镜像下载地址:
https://cloud-images.ubuntu.com/wsl/jammy/current/ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz
可以在 PowerShell 中直接下载:
Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/wsl/jammy/current/ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz -OutFile E:\WSLDownload\ubuntu-22.04-rootfs.tar.gz
如果你已经手动下载好了 .tar.gz 文件,也可以直接使用下载好的文件。
例如你当前在:
E:\Download
并且文件名是:
ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz
那么后面导入时可以直接使用当前目录下的文件名。
四、导入 Ubuntu 22.04 到 E 盘
方式一:使用完整路径导入
推荐执行:
wsl --import Ubuntu22.04 E:\ubuntu22.04 E:\WSLDownload\ubuntu-22.04-rootfs.tar.gz --version 2
含义如下:
Ubuntu22.04
是 WSL 里的系统名称。
E:\ubuntu22.04
是 Ubuntu 实际安装位置。
E:\WSLDownload\ubuntu-22.04-rootfs.tar.gz
是 Ubuntu 22.04 WSL 镜像文件路径。
--version 2
表示使用 WSL2。
方式二:在下载目录下直接导入
如果你已经进入了下载目录,比如:
(base) PS E:\Download>
并且当前目录下有:
ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz
可以执行:
wsl --import Ubuntu22.04 E:\ubuntu22.04 ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz --version 2
你执行后出现:
wsl: 无法配置网络 (networkingMode Nat),回退到 networkingMode VirtioProxy。
操作成功完成。
这说明安装成功了。
前面的网络提示不是安装失败,只是 WSL 从 NAT 网络模式自动切换到了 VirtioProxy 网络模式。
关键是最后一句:
操作成功完成。
五、检查是否安装成功
在 PowerShell 中执行:
wsl -l -v
如果看到类似:
NAME STATE VERSION
Ubuntu22.04 Stopped 2
说明安装成功。
其中:
VERSION 2
表示当前 Ubuntu 使用的是 WSL2。
六、启动 Ubuntu 22.04
在 PowerShell 中执行:
wsl -d Ubuntu22.04
如果进入后看到类似:
root@Administrator:/mnt/c/#
说明已经进入 Ubuntu 系统。
第一次通过 wsl --import 导入的 Ubuntu,默认一般是 root 用户。
七、更新系统
进入 Ubuntu 后,建议先更新软件源:
apt update
然后升级系统软件:
apt upgrade -y
由于当前是 root 用户,所以不需要加 sudo。
八、创建普通用户
不建议长期使用 root 用户,应该创建普通用户。
比如创建用户:
zsr
执行:
adduser zsr
系统会提示你设置密码:
New password:
Retype new password:
输入密码时,终端不会显示任何字符,这是正常的。
输入两次密码后,如果看到:
passwd: password updated successfully
说明密码设置成功。
用户信息填写
接下来会出现:
Changing the user information for zsr
Enter the new value, or press ENTER for the default
Full Name []:
这些信息不重要,可以全部直接按回车跳过。
它会依次问:
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
每一项都直接按回车。
最后会问:
Is the information correct? [Y/n]
输入:
Y
然后回车。
九、给普通用户添加 sudo 权限
创建用户后,需要给它管理员权限。
例如给 zsr 添加 sudo 权限:
usermod -aG sudo zsr
这一步很重要。
以后使用普通用户时,就可以执行:
sudo apt update
十、设置默认登录用户
默认情况下,通过 wsl --import 导入的 Ubuntu 会使用 root 登录。
我们可以通过修改:
/etc/wsl.conf
来设置默认登录用户。
执行:
nano /etc/wsl.conf
如果你看到文件里已经有:
[boot]
systemd=true
不要删除它。
只需要在下面添加:
[user]
default=zsr
最终文件应该类似这样:
[boot]
systemd=true
[user]
default=zsr
十一、nano 编辑器保存方法
在 nano 里编辑完成后,按:
Ctrl + O
这表示保存。
底部会出现:
File Name to Write: /etc/wsl.conf
直接按:
Enter
然后退出 nano:
Ctrl + X
十二、重启 WSL 让配置生效
修改 /etc/wsl.conf 后,需要重启 WSL。
先在 Ubuntu 中执行:
exit
回到 PowerShell 后执行:
wsl --shutdown
然后重新进入:
wsl -d Ubuntu22.04
十三、检查默认用户是否设置成功
进入 Ubuntu 后执行:
whoami
如果输出:
zsr
说明默认用户设置成功。
此时再执行:
sudo apt update
如果提示输入密码,就输入你刚才给 zsr 设置的密码。
十四、完整安装命令汇总
如果你从零开始,可以按下面完整流程执行。
PowerShell 中执行
mkdir E:\ubuntu22.04
mkdir E:\WSLDownload
Invoke-WebRequest -Uri https://cloud-images.ubuntu.com/wsl/jammy/current/ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz -OutFile E:\WSLDownload\ubuntu-22.04-rootfs.tar.gz
wsl --import Ubuntu22.04 E:\ubuntu22.04 E:\WSLDownload\ubuntu-22.04-rootfs.tar.gz --version 2
wsl -l -v
wsl -d Ubuntu22.04
Ubuntu 中执行
apt update
apt upgrade -y
adduser zsr
usermod -aG sudo zsr
nano /etc/wsl.conf
写入:
[boot]
systemd=true
[user]
default=zsr
保存并退出 nano:
Ctrl + O
Enter
Ctrl + X
退出 Ubuntu:
exit
回到 PowerShell 执行
wsl --shutdown
wsl -d Ubuntu22.04
进入后检查:
whoami
如果显示:
zsr
说明配置成功。
十五、删除用户的方法
如果你创建错了用户,或者想删除某个用户,可以使用下面方法。
假设要删除的用户是:
zsr
1. 只删除用户,不删除 home 文件夹
deluser zsr
这种方式会删除用户账号,但通常会保留:
/home/zsr
2. 删除用户,并删除 home 文件夹
更彻底的方式是:
deluser --remove-home zsr
这会删除用户账号,同时删除:
/home/zsr
里面的文件也会被删除。
十六、删除默认用户前的注意事项
如果 /etc/wsl.conf 中设置了:
[user]
default=zsr
那么删除 zsr 前,需要先修改默认用户,否则下次启动 WSL 可能会出现问题。
安全删除流程
假设你要删除 zsr,并创建新用户 zsac。
1. PowerShell 中使用 root 进入 Ubuntu
wsl -d Ubuntu22.04 -u root
2. 创建新用户
adduser zsac
usermod -aG sudo zsac
3. 修改默认用户
nano /etc/wsl.conf
把内容改为:
[boot]
systemd=true
[user]
default=zsac
保存:
Ctrl + O
Enter
Ctrl + X
4. 删除旧用户
deluser --remove-home zsr
5. 重启 WSL
退出 Ubuntu:
exit
PowerShell 中执行:
wsl --shutdown
wsl -d Ubuntu22.04
6. 检查当前用户
进入 Ubuntu 后执行:
whoami
如果显示:
zsac
说明新用户已经生效。
十七、常见问题
问题 1:为什么安装后默认是 root?
因为使用 wsl --import 导入的系统不会自动创建普通用户,所以第一次进入默认是 root。
解决方法是手动创建用户:
adduser zsr
usermod -aG sudo zsr
然后在 /etc/wsl.conf 中设置:
[user]
default=zsr
问题 2:出现网络提示是不是失败?
你看到的提示:
wsl: 无法配置网络 (networkingMode Nat),回退到 networkingMode VirtioProxy。
操作成功完成。
不是失败。
只要最后显示:
操作成功完成。
就表示导入成功。
问题 3:PowerShell 路径应该怎么写?
推荐使用反斜杠:
E:\ubuntu22.04
不要写成:
E://ubuntu22.04
虽然有时也能识别,但 Windows PowerShell 中标准写法是:
E:\ubuntu22.04
问题 4:如何查看 WSL 系统列表?
wsl -l -v
问题 5:如何进入指定 Ubuntu?
wsl -d Ubuntu22.04
问题 6:如何使用 root 进入 Ubuntu?
wsl -d Ubuntu22.04 -u root
问题 7:如何关闭 WSL?
wsl --shutdown
问题 8:如何卸载这个 Ubuntu?
如果你想彻底删除这个 WSL 系统,执行:
wsl --unregister Ubuntu22.04
注意,这会删除整个 Ubuntu22.04 系统,包括里面的文件。
如果你的 Ubuntu 安装目录是:
E:\ubuntu22.04
注销后也可以手动检查这个文件夹是否还存在,必要时删除。
十八、推荐后续安装基础工具
进入 Ubuntu 后,建议安装基础开发工具:
sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential git curl wget vim nano unzip zip cmake
如果后面要做深度学习、Habitat、Matterport3D Simulator、具身智能实验,还建议安装:
sudo apt install -y python3 python3-pip python3-venv
后续可以继续安装 Miniconda 或 Mambaforge 来管理 Python 环境。
十九、最终推荐目录结构
推荐把 WSL 和下载文件分开放:
E:\
├── ubuntu22.04
└── WSLDownload
└── ubuntu-22.04-rootfs.tar.gz
其中:
E:\ubuntu22.04
是 Ubuntu 系统实际安装目录。
E:\WSLDownload
只是镜像下载目录,导入成功后理论上可以删除 .tar.gz 文件,但建议暂时保留,方便以后重新导入。