Windows 10 WSL&Ubuntu 22.04 安装并迁移到 F 盘

WSL安装默认在 C 盘,如果C盘容量不多,那么C盘将不堪重负,那么将安装好的WSL&Ubuntu 22.04迁移至其他盘符是一个解决该问题的方法。

一、WSL & Ubuntu22.04

1.系统设置

首先是系统设置,在 Windows 底部的搜索框搜索"启用或关闭 Windows 功能",勾选"适用于 Linux 的 Windows 子系统" 和 "Windows 虚拟机监控程序平台",需要重启电脑。

2.安装发行版

2.1安装WSL

以管理员身份打开 PowerShell 命令窗口,输入以下命令安装内核:

python 复制代码
wsl --install

更新 WSL 可以通过 wsl --update 命令完成,这是微软官方推荐的更新方式‌,该命令会自动下载并安装最新的 WSL 内核和功能更新‌,更新完成后需重启 WSL 或电脑:

python 复制代码
wsl --shutdown

如果因为网络问题导致更新失败,可以使用 --web-download 强制从微软服务器下载

python 复制代码
wsl --update --web-download

可以输入下面的命名验证更新结果:

python 复制代码
wsl --version
2.2安装Ubuntu

接下来是安装Ubuntu,我们安装Ubuntu22.04

打开 Windows 应用商店搜索 "Ubuntu",安装 "Ubuntu 22.04.5 LTS"

因为我之前已经安装好了,所有显示"打开",点击免费下载即可自动下载安装完成

Ubuntu安装结束之后点击"打开",系统将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。(截图是20.04版本的,前面安装22.04的时候忘记截图了)

在窗口里面输入用户名,回车之后输入密码即可。完成设置后,将进入 Linux 发行版的终端界面。这里可以执行 Linux 命令,并进行开发和运行应用程序。

3.WSL&Ubuntu迁移到F盘

通过上述的安装方式数据都会存在 C 盘,大概一两GB,我们把这些数据迁移到 F 盘。

3.1查看 WSL 虚拟机状态并停止

首先我们查看一下虚拟机状态,在 PowerShell 输入下列命令:

python 复制代码
wsl -l -v

会有下面的输出

执行 wsl --shutdown 命令使其停止运行,再次执行 wsl -l -v 确认停用

python 复制代码
wsl --shutdown

3.2导出/导入备份

先手动创建迁移的目标文件夹,然后通过命令导出原虚拟机的备份:

我的目标文件夹为F盘的一个名为"WSL"的文件夹,该文件夹必须存在,不存在的话运行命令会报错

python 复制代码
wsl --export Ubuntu-22.04 F:\WSL\Ubuntu.tar

你安装的如果是20.04或者其他版本,你可以将上面命令中的系统替换为你安装的系统

F是接下来存放虚拟机备份的盘符,哪个盘符都可以。

然后注销原 wsl 虚拟机:

python 复制代码
 wsl --unregister Ubuntu-22.04

再然后将备份导入到新的目标文件夹中:

python 复制代码
wsl --import Ubuntu-22.04 F:\Ubuntu2204 F:\WSL\Ubuntu.tar

F:\Ubuntu2204是接下来导入虚拟机的文件夹,你可以根据情况指定,但是文件夹需要先存在

F:\WSL\Ubuntu.tar是前面存放虚拟机备份的路径(备份建议一直保存,以备不时之需)

Ubuntu2204文件夹里面是一个磁盘映像文件

PowerShell 输入下列命令恢复默认用户

python 复制代码
Ubuntu2204 config --default-user your_user_name

PS:我不做这一步也可以正常使用。

相关推荐
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo4 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者6 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo6 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10157 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao8 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql