WSL 安装 Ubuntu 22.04 到指定磁盘

一、目标

我们要把 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 文件,但建议暂时保留,方便以后重新导入。

相关推荐
m0_702036531 小时前
mysql如何导出特定条件的查询数据_使用mysqldump加where参数
jvm·数据库·python
正在走向自律1 小时前
标量子查询消除:数据库优化器的一场“等价变戏法”
数据库·sql 优化·金仓数据库·数据库性能调优·标量子查询·数据库优化器
逻极1 小时前
SQLite 从入门到精通:深入理解嵌入式数据库的艺术与科学
数据库·sqlite·记忆·sqlite从入门到精通
未来之窗软件服务1 小时前
数据库优化(九)随机抽选系统数据表 ——东方仙盟
大数据·数据库·数据库优化·仙盟创梦ide·东方仙盟
爱喝水的鱼丶1 小时前
SAP-ABAP:新手入门篇——从0到1写出你的第一个ABAP Hello World程序并完成调试运行
运维·服务器·数据库·学习·sap·abap
m0_733565462 小时前
bootstrap怎么实现响应式的文章瀑布流布局
jvm·数据库·python
TE-茶叶蛋2 小时前
sql优化思维
数据库·sql
oradh2 小时前
Oracle物理存储结构概述
数据库·oracle·物理结构·oracle基础·oracle入门·oracle物理存储结构概述
m0_463672202 小时前
Golang如何用火焰图分析性能_Golang火焰图教程【对比】
jvm·数据库·python