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:我不做这一步也可以正常使用。

相关推荐
CTRA王大大1 小时前
【golang】制作linux环境+golang的Dockerfile | 如何下载golang镜像源
linux·开发语言·docker·golang
小张程序人生1 小时前
《VMware 安装 CentOS 7.9 虚拟机详细教程(含图解步骤)》
linux·centos
泡沫冰@3 小时前
管理 SELinux 安全性
linux
展信佳_daydayup4 小时前
03 基础篇-润和开发板连接过程
linux·开源·嵌入式
两张不够花4 小时前
Shell脚本源码安装Redis、MySQL、Mongodb、PostgreSQL(无报错版)
linux·数据库·redis·mysql·mongodb·postgresql·云计算
tan77º5 小时前
【Linux网络编程】分布式Json-RPC框架 - 项目设计
linux·服务器·网络·分布式·网络协议·rpc·json
Ray Song5 小时前
【Linux】 wget、curl 用法区别
linux·运维·服务器·curl·wget
一乐小哥7 小时前
五分钟就能搭好的socks5为啥我装了一个小时😭 进来看小丑
linux·后端
Insist7538 小时前
K8s--调度管理:node节点、Pod亲和性、污点与容忍
linux·容器·kubernetes
Xの哲學10 小时前
Linux PCI 子系统:工作原理与实现机制深度分析
linux·网络·算法·架构·边缘计算