WSL2安装Ubuntu20.04至E盘
一、准备工作
1.1 开启WSL功能
在 Windows 搜索栏输入“启用或关闭 Windows 功能”,勾选“适用于 Linux 的 Windows 子系统”和“虚拟机平台”,然后重启电脑。
1.2 设置默认版本
以管理员身份打开 PowerShell,输入 wsl --set-default-version 2,确保后续安装使用 WSL2。
二、在C盘中安装Ubuntu20.04(默认LTS版本)
2.1 安装系统
使用科学上网,打开规则模式,根据网上一个博主的内容,他说如果没有科学上网可以使用wsl --install -d Ubuntu-20.04 --web-download,详情参考:https://www.bilibili.com/video/BV1tW42197za?spm_id_from=333.788.videopod.sections&vd_source=d281c2477c5b78e0ebea5a0b97d495d6
如果有科学上网,正常使用如下命令:
在 PowerShell 中输入 wsl --install -d Ubuntu-20.04
2.2 设置用户
安装完成后会自动弹出一个窗口,按照提示设置你的用户名和密码
成功后一般会自动进入,可以输入ls,sudo apt update等命令进行验证。
2.3 验证安装
输入exit或者使用Ctrl + D退出当前Linux
输入 wsl -l -v
可以输入wsl -d Ubuntu-20.04启动
输入wsl --shutdown终止
如果还想安装其它的发行版,输入wsl --list --online即可查看要安装的内容,输入wsl --install <名称>即可安装,如果无科学上网,需要加上--web-download
三、迁移系统到E盘
3.1 关闭 WSL
在 PowerShell 输入 wsl --shutdown,确保系统完全停止
3.2导出备份
将系统打包成一个文件。
我在E盘建立了一个名为WSL的文件夹。
输入以下命令:
1 | wsl --export Ubuntu-20.04 E:\WSL\ubuntu-backup.tar |
3.3 删除原系统
注销 C 盘上的旧系统,释放空间。
1 | wsl --unregister Ubuntu-20.04 |
3.4 导入到 E 盘
将备份文件解压到 E 盘的新位置。
1 | wsl --import Ubuntu-20.04 E:\WSL\Ubuntu-20.04 E:\WSL\ubuntu-backup.tar --version 2 |
四、修复用户权限
迁移后,系统默认会以 root 用户登录。
如果你不想每次都用 root,需要设置回你之前创建的用户。
4.1 设置默认用户
在 PowerShell 中输入:
1 | Ubuntu-20.04 config --default-user <yourusername> |
如果上面的不行,可以使用下面的命令:
1 | wsl -d Ubuntu-20.04 --user <yourusername> |
如果都不行,可以先看看自己的用户名是不是一开始在C盘装的时候的用户名,如果是,就不用再搞了,说明已经成功了。
4.2 验证
直接在powershell中输入wsl或者打开一个Ubuntu终端,看用户名是否是自己设置的那个即可
五、删除备份文件
确认正常后,之前的.tar就可以删除了
.vhdx是镜像文件,Ubuntu系统的东西就是在这里面
六、字体问题
如果你也有这个问题,可以去Ubuntu官网上下载字体,网址是:https://design.ubuntu.com/font
运行UbuntuMono-R.ttf即可
七、启用systemd
systemd是现代 Linux 发行版默认的初始化系统和服务管理器。它的作用包括:
- 管理开机启动项(服务)
- 管理进程生命周期(启动、停止、重启)
- 挂载文件系统、管理日志、处理硬件热插拔
- 提供日志系统(journalctl)、用户登录管理等
在 WSL2 早期版本中,没有原生支持 systemd,导致很多依赖 systemd的服务(如 sshd、docker、systemctl命令)无法正常使用。
不过现在应该都默认配置了,我的就是默认配置的,可以在Ubuntu终端中输入:
1 | sudo vi /etc/wsl.conf |
里面应该有:
1 | [boot] |
如果没有就加上。
输入:
1 | systemctl |
如果输出一个列表,说明已经启用。
八、共享IP
WSL2 默认使用的是 NAT(网络地址转换)模式,它像一个“虚拟机”一样:
- 有自己的独立 IP(如
192.168.128.1或192.168.133.20) - 与 Windows 不在同一个网络命名空间
- Windows 可以通过
localhost访问 WSL2(因为 WSL2 会监听127.0.0.1:端口并转发给 Windows) - 但 WSL2 无法通过
localhost访问 Windows 服务,必须手动指定 Windows 的 IP(如192.168.x.x)
微软在 WSL 2.0.0+(0.67.6+)版本中引入了 “镜像网络”模式(Mirror Networking),可以让 WSL2 和 Windows 共享同一个网络栈,实现:
- IP 地址完全一致(都是 Windows 的 IP)
localhost双向互通- 代理自动同步
- 局域网设备可直接访问 WSL2 服务
8.1 创建/编辑配置文件
在 Windows 资源管理器的地址栏输入 %UserProfile%并回车,进入你的用户文件夹
在此文件夹下,创建一个名为 .wslconfig 的文件,用记事本打开,输入以下内容:
1 | [wsl2] |
8.2 重启WSL
保存文件后,在 Windows 终端(PowerShell 或 CMD)中执行以下命令:
1 | wsl --shutdown |
等待几秒后,重新打开WSL,输入ifconfig,可以看到IP和Windows一样了。
九、安装Docker
9.1 下载与安装
我使用的是这个网址
https://github.com/tech-shrimp/docker_installer/releases/tag/latest
使用命令行安装:
1 | start /w "" "docker_desktop_installer_windows_x86_64.exe" install --installation-dir=D:\Docker\setup |
9.2 配置镜像源加速
点击设置,点击Docker Engine
找到这个,
1 | { |
修改为:
1 | { |