目标
将现有的 源发行版(例如:Ubuntu-24.04 或 Ubuntu-24.04-OpenClaw)克隆为一个 新发行版(例如:Ubuntu-24.04-CoPaw)。
前置准备
- 确保源系统已停止:为了避免数据不一致,操作前必须先关闭源发行版。
- 准备存储路径:建议在非系统盘(如 D 盘)创建一个文件夹专门存放 WSL 镜像文件,节省 C 盘空间。
- 示例路径:
D:\WSL_Images\
- 示例路径:
操作步骤(以 PowerShell 管理员身份运行)
第一步:停止源发行版
假设你的源发行版名称是 Ubuntu-24.04(如果是其他名字请替换):
powershell
编辑
1wsl --terminate Ubuntu-24.04 2# 或者强制关闭所有 3wsl --shutdown
第二步:导出源系统为 TAR 包
这将把整个系统(包括所有文件、配置、已安装的软件)打包成一个文件。
<源名称>: 现有的发行版名字<备份文件路径>: 你想保存.tar文件的位置
powershell
编辑
1# 语法:wsl --export <源名称> <输出文件路径> 2wsl --export Ubuntu-24.04 D:\WSL_Images\ubuntu-24.04-base.tar
(等待进度条完成,文件大小取决于你安装了多少东西)
第三步:导入为新发行版
这是“克隆”的关键步骤。我们将刚才的包导入为一个全新的名字。
<新名称>: 你想要的名字(例如Ubuntu-24.04-CoPaw)<新安装路径>: 新系统实际存放的文件夹(WSL 会在这里生成ext4.vhdx虚拟磁盘文件)
powershell
编辑
1# 语法:wsl --import <新名称> <安装目录> <输入的tar文件路径> --version 2 2wsl --import Ubuntu-24.04-CoPaw D:\WSL_Instances\Ubuntu-24.04-CoPaw D:\WSL_Images\ubuntu-24.04-base.tar --version 2
注意:D:\WSL_Instances\Ubuntu-24.04-CoPaw 文件夹不需要提前创建,WSL 会自动生成,但父文件夹 D:\WSL_Instances 必须存在。
第四步:修复默认用户(重要!)
通过 --import 导入的系统,默认会以 root 用户登录。你需要把它改回你的普通用户(例如 jiulu 或 copaw)。
- 先启动新系统确认用户存在:powershell编辑
1wsl -d Ubuntu-24.04-CoPaw(此时你应该是以root身份进入的) - 检查用户名:
输入cat /etc/passwd | grep -v nologin查看有哪些用户。- 如果你想用原来的用户
jiulu,直接执行下面的修复命令。 - 如果你想建新用户
copaw,请先在里面执行adduser copaw创建用户。
- 如果你想用原来的用户
- 配置默认用户:
退出 WSL (exit),回到 PowerShell。不同发行版的配置命令略有不同,对于 Ubuntu,通常可以使用发行版自带的命令:powershell
1# 语法:<发行版名>.exe config --default-user <用户名> 2# 但因为我们是通过 import 导入的,可能没有注册 exe 快捷命令。 3# 最通用的方法是修改 /etc/wsl.conf通用修复法(修改 wsl.conf):powershell编辑1# 直接在 Windows 侧用 wsl -u root 执行 echo 命令写入配置 2wsl -d Ubuntu-24.04-CoPaw -u root bash -c "echo -e '[user]\ndefault=jiulu' > /etc/wsl.conf"(请将jiulu替换为你想要默认登录的用户名)
第五步:重启并验证
为了让 /etc/wsl.conf 生效,必须完全重启该发行版实例。
powershell
编辑
wsl --terminate Ubuntu-24.04-CoPaw wsl -d Ubuntu-24.04-CoPaw
现在,你应该直接以 jiulu (或你设置的用户) 身份登录,且处于 /home/jiulu 目录下。
后续优化(可选但推荐)
- 创建桌面快捷方式:
- 右键桌面 -> 新建 -> 快捷方式。
- 对象位置输入:
wsl -d Ubuntu-24.04-CoPaw - 名称:
Ubuntu CoPaw - 关键一步:右键属性,将 “起始位置” 设置为
\\wsl$\Ubuntu-24.04-CoPaw\home\jiulu(参考你之前的成功经验)。
- 清理临时 TAR 包:
如果确认新系统运行正常,可以删除第二步生成的.tar文件以节省空间。powershell编辑1del D:\WSL_Images\ubuntu-24.04-base.tar - 修改主机名(Hostname):
如果你希望终端提示符显示不同的主机名(避免多个 Ubuntu 都叫DESKTOP-xxxx):- 进入新系统:
wsl -d Ubuntu-24.04-CoPaw - 编辑配置:
sudo nano /etc/wsl.conf - 添加内容:
- 进入新系统:
[user]
default=jiulu[network]hostname=CoPawgenerateHosts = false
- 保存退出,然后在 PowerShell 执行
wsl --terminate Ubuntu-24.04-CoPaw重启生效。
总结命令速查表
表格
| 步骤 | 命令示例 | 说明 |
|---|---|---|
| 停止 | wsl --terminate Ubuntu-24.04 | 必须先在停止状态下操作 |
| 导出 | wsl --export Ubuntu-24.04 D:\backup.tar | 备份为 tar 包 |
| 导入 | wsl --import Ubuntu-24.04-CoPaw D:\new_path D:\backup.tar --version 2 | 克隆为新名字 |
| 设用户 | wsl -d Ubuntu-24.04-CoPaw -u root bash -c "echo -e '[user]\ndefault=jiulu' > /etc/wsl.conf" | 修复默认用户 |
| 重启 | wsl --terminate Ubuntu-24.04-CoPaw | 使配置生效 |