将 Hyper-V 上的 Ubuntu 虚拟机内容迁移到 WSL (Windows Subsystem for Linux) 中

将 Hyper-V 上的 Ubuntu 虚拟机内容迁移到 WSL (Windows Subsystem for Linux) 中,最推荐且最干净的方法是在 Hyper-V 内部打包文件系统,然后在 WSL 中导入

以下是详细的操作步骤:

方法一:通过 Tar 包迁移(推荐)

这种方法可以保留你的用户数据、配置文件和已安装的软件,同时避免迁移不必要的系统垃圾。

1. 在 Hyper-V Ubuntu 中导出文件系统

启动你的 Hyper-V Ubuntu 虚拟机,打开终端,执行以下命令将整个文件系统打包:

# 进入根目录或临时目录
cd /tmp

# 打包整个文件系统(排除不需要的虚拟文件系统和挂载点)
sudo tar -czf /tmp/ubuntu-hyperv-backup.tar.gz \
  --exclude=/proc \
  --exclude=/sys \
  --exclude=/dev \
  --exclude=/run \
  --exclude=/tmp/ubuntu-hyperv-backup.tar.gz \
  --exclude=/mnt \
  --exclude=/media \
  --exclude=/lost+found \
  /

注意: 如果文件很大,建议将生成的 ubuntu-hyperv-backup.tar.gz 移动到一个 Windows 也能访问的共享文件夹,或者通过 SCP/SFTP 传输到 Windows 宿主机上。你也可以直接在 Hyper-V 中挂载一个 Windows 的共享目录来写入这个文件。

2. 在 Windows 上准备 WSL 环境(如果已有则跳过)

确保你已经安装了 WSL。打开 PowerShell:

# 查看当前已安装的发行版
wsl -l -v

# 如果需要,可以先安装一个空的 Ubuntu 作为基础(可选)
wsl --install Ubuntu-24.04
3. 将备份导入为新的 WSL 实例

使用 wsl --import 命令将刚才的 tar 包导入为一个全新的 WSL 发行版:

# 语法: wsl --import <自定义名称> <安装路径> <tar包路径>
wsl --import MyUbuntu D:\WSL\MyUbuntu C:\path\to\ubuntu-hyperv-backup.tar.gz
4. 修复默认用户(重要!)

通过 --import 导入的 WSL 实例默认会以 root 用户登录。你需要设置回你原来的普通用户:

# 进入新导入的实例
wsl -d MyUbuntu

# 在 WSL 内部执行(将 your_username 替换为你在 Hyper-V 中的用户名)
# 对于 Ubuntu/Debian:
echo -e "[user]\ndefault=your_username" | sudo tee /etc/wsl.conf

# 退出 WSL
exit

然后在 PowerShell 中重启该 WSL 实例使配置生效:

wsl --terminate MyUbuntu
wsl -d MyUbuntu

此时你应该以普通用户身份登录,且所有之前的文件、软件、配置都完好无损。


方法二:仅迁移特定项目(轻量级)

如果你不需要完整的系统环境,只想迁移部分内容:

迁移内容推荐方式
个人文件/代码scp / SFTP / 共享文件夹直接拷贝
已安装的软件包列表dpkg --get-selections > packages.txt → WSL中 dpkg --set-selections < packages.txt && apt-get dselect-upgrade
用户配置拷贝 ~/.bashrc, ~/.ssh, ~/.config 等 dotfiles
Docker 镜像/容器docker save/load 或推送到 Registry
数据库使用 mysqldump / pg_dump 等原生导出工具

⚠️ 注意事项

  1. 内核差异:Hyper-V 使用完整的 Linux 内核,WSL2 使用微软定制的轻量级内核。极少数依赖特定内核模块的程序可能无法在 WSL 中运行。
  2. Systemd:WSL2 较新版本已支持 systemd,但如果你的服务依赖完整的 init 系统行为,可能需要额外配置。确认 /etc/wsl.conf 中有 [boot] systemd=true
  3. 网络配置:Hyper-V 中的静态 IP、网卡绑定等网络配置在 WSL 中不适用,需要重新适配 WSL 的网络模式(NAT/mirrored)。
  4. 磁盘空间:确保 Windows 目标盘有足够的空间,tar 包 + 解压后的 VHDX 文件会占用较多空间。
  5. 清理:迁移完成并验证无误后,记得删除 /tmp 下的 tar 包以释放 Hyper-V 虚拟机的磁盘空间。

推荐优先使用方法一,它是最完整、最可靠的整机迁移方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值