在wsl2下将Ubuntu从一个盘移动到其他盘

参考文章:

wsl下将Ubuntu从c盘移动到其他盘

WSL数据迁移(迁移ext4.vhdx)

WSL 系统迁移(2),导入虚拟机磁盘映像 .vhdx ext4/fs

WSL2迁移后默认登陆用户为root的解决方案

操作过程:

1.查看当前系统中wsl分发版本

使用管理员权限启动终端

 wsl -l --all -v

Ubuntu-20.04正在运行,关掉

wsl --shutdown

2.检查当前安装路径
Get-ChildItem -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" | ForEach-Object { Get-ItemProperty -Path $_.PSPath } | Select-Object -Property "DistributionName", "BasePath"

3.导出分发版为tar文件到目的盘比(如E盘)

wsl --export Ubuntu-20.04 E:\Ubuntu\Ubuntu-20.04.tar

 参数的含义,--export是导出的意义,Ubuntu-20.04是我们需要导出的linux版本的名称,最后一个是导出的tar文件保存的地方,注意需要保存为tar格式的,否则会有问题。

因之前从C盘迁移到D盘,默认位置变了

4,直接复制D:\Ubuntu\ext4.vhdx 到E:\Ubuntu\ext4.vhdx,然后注册到现有的Ubuntu-20.04

wsl --unregister Ubuntu-20.04

5,执行如指令:

wsl --import-in-place Ubuntu-20.04 F:\Ubuntu\ext4.vhdx

或者建立软连接,运行如下命令(未测试)

cmd /c mklink "C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\ext4.vhdx" "E:\Ubuntu\ext4.vhdx"

执行结果

6, WSL重启后默认root用户,需要恢复之前用户

【1】在wsl的root用户下面用vim打开/etc/wsl.conf文件

vim /etc/wsl.conf

【2】在wsl.conf文件加入下面代码

[user]
default=aping

【3】重启wsl,Windows CMD输入下面指令

wsl --shutdown

<think>嗯,用户想在WSL2里把Ubuntu系统迁移到另一个或者分区。我之前可能没处理过这个问题,但根据我对WSL和系统管理的了解,应该有几个步骤需要考虑。首先,可能需要导出当前的Ubuntu系统,然后导入到新的位置。我记得WSL有相关的命令,比如`wsl --export`和`wsl --import`,但具体怎么用呢? 用户提到的参考引用是关于网络配置的,可能不太相关,但迁移系统的话,可能需要先关闭WSL实例。比如用`wsl --shutdown`确保所有实例停止。然后,导出现有的Ubuntu分发版到一个tar文件。比如导出到D的某个位置,比如`wsl --export Ubuntu d:\ubuntu_backup.tar`。不过得确认分发版名称是否正确,有时候名称可能有版本号或者其他后缀。 接下来,导入的时候需要指定新的目录,比如E下的某个文件夹。这时候用`wsl --import Ubuntu E:\wsl\Ubuntu E:\wsl\ubuntu.tar --version 2`,这里要注意版本是WSL2的话需要指定--version 2。然后可能需要删除原来的分发版,避免冲突,使用`wsl --unregister Ubuntu`,但得确保在导入之后操作,或者先导出再卸载原来的。 不过用户可能希望保留原来的用户名和密码,默认情况下导入的分发版会以root用户登录,这时候需要设置默认用户。可能需要修改注册表,或者创建一个/etc/wsl.conf文件,设置默认用户。例如,用`ubuntu config --default-user username`命令,但不确定是否适用。或者,在导入后,进入新系统,手动修改配置。 另外,迁移完成后,原来的系统可能还在原来的位置占用空间,可能需要手动删除旧的vhdx文件,释放空间。路径通常在用户目录下的AppData里,比如`%LOCALAPPDATA%\Packages\Canonical...`,但可能需要根据实际情况查找。 用户可能遇到的问题包括权限问题,导出导入时的路径是否正确,以及如何正确设置默认用户。此外,确保目标磁有足够的空间,并且文件系统支持WSL所需的特性,比如NTFS。还需要提醒用户在操作前备份重要数据,避免数据丢失。 可能还需要检查导入后的系统是否正常运行,网络配置是否正确,特别是如果用户之前有自定义的网络设置,可能需要重新配置。比如参考引用中的netplan配置,可能在迁移后需要调整,如果路径变化的话,但WSL的网络配置通常由宿主机的Hyper-V管理,可能不需要修改。 总结步骤应该是:1. 导出现有分发版为tar;2. 导入到新位置;3. 设置默认用户;4. 卸载旧的分发版;5. 清理旧文件。同时注意命令的正确使用和路径的正确性。可能还需要提醒用户关于权限和路径中的空格问题,使用引号包裹路径。</think>要将WSL2中的Ubuntu系统迁移到其他磁或分区,可以按照以下步骤操作: ### 步骤1:停止WSL服务 在PowerShell中执行命令关闭所有WSL实例: ```powershell wsl --shutdown ``` ### 步骤2:导出Ubuntu分发版 将现有系统导出为.tar文件(示例导出到D): ```powershell wsl --export Ubuntu "D:\ubuntu_backup.tar" ``` ### 步骤3:导入到新磁 指定新磁路径进行导入(示例导入到E): ```powershell wsl --import Ubuntu "E:\wsl\Ubuntu" "D:\ubuntu_backup.tar" --version 2 ``` ### 步骤4:设置默认用户 导入后系统默认以root登录,需在PowerShell中执行: ```powershell ubuntu config --default-user <原用户名> ``` ### 步骤5:卸载旧版本 若需释放原磁空间,可卸载旧分发版: ```powershell wsl --unregister Ubuntu ``` ### 关键说明 1. 路径中的空格需要用双引号包裹 2. 迁移后原系统文件仍保留在`%LOCALAPPDATA%\Packages\Canonical...`目录下[^1] 3. 网络配置会继承宿主机的设置,无需单独迁移
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aping_cs_dn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值