You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Debian环境下将现有裸机Windows系统封装为可在QEMU-KVM中运行的镜像文件

如何在Debian环境下将现有裸机Windows系统封装为可在QEMU-KVM中运行的镜像文件

嗨,刚好我之前帮朋友处理过几乎一模一样的需求——不用重装Windows保留所有配置,直接把裸机系统转成QEMU-KVM能用的镜像,在Debian下完全可以搞定,下面是我亲测有效的步骤:

一、先做好最关键的准备:数据备份

别嫌麻烦,分区克隆操作有一定风险,先把Windows里的重要文件(比如conda环境配置、Rust包、工作文档)拷到外接硬盘或者云盘里。也可以用Debian的rsync命令备份整个Windows分区到外接存储:sudo rsync -avx /mnt/windows_partition /media/external_drive/windows_backup(先挂载Windows分区到/mnt/windows_partition)。

二、定位你的Windows系统分区

打开终端,用lsblk或者fdisk -l命令找出Windows的系统盘和引导分区,比如你可能会看到/dev/sda1是EFI引导分区,/dev/sda2是Windows系统分区。记好这两个路径,别搞混了!

三、克隆Windows分区到镜像文件

推荐用partclone工具,它只克隆分区里的已用空间,比dd快很多。

  1. 先安装partclone:sudo apt update && sudo apt install partclone
  2. 执行克隆命令(替换成你的系统分区路径):
    sudo partclone.ntfs -c -s /dev/sda2 -o windows_system_raw.img
    解释下参数:-c表示创建克隆镜像,-s是源分区,-o是输出的镜像文件。

如果你的Windows是UEFI启动,别忘了把EFI引导分区也克隆下来:
sudo partclone.fat32 -c -s /dev/sda1 -o efi_partition.img

四、转换镜像为QEMU友好的格式

partclone生成的是raw格式镜像,QEMU虽然支持,但qcow2格式有快照、压缩等功能,性能更好,推荐转换:
sudo qemu-img convert -f raw windows_system_raw.img -O qcow2 windows_system.qcow2
如果要生成vmdk格式,把-O后面改成vmdk就行:
sudo qemu-img convert -f raw windows_system_raw.img -O vmdk windows_system.vmdk

五、解决硬件驱动兼容问题(重中之重!)

裸机的硬件和QEMU的虚拟硬件完全不同,直接启动镜像大概率会蓝屏,必须提前处理驱动:

方法1:克隆前在裸机Windows里提前准备

在裸机Windows里下载QEMU的virtio驱动包,安装里面的存储、网络、显卡等所有必要驱动,然后再关机回到Debian做克隆,这样启动虚拟机时就能识别虚拟硬件。

方法2:克隆后用工具注入驱动

如果已经克隆了没装驱动,用libguestfs-tools工具直接给镜像注入驱动:

  1. 安装工具:sudo apt install libguestfs-tools
  2. 注入virtio驱动和工具:
    virt-customize -a windows_system.qcow2 --install virtio-win-guest-tools
    这个命令会自动挂载镜像,安装好所有适配QEMU虚拟硬件的驱动。

六、配置QEMU-KVM启动参数测试

现在可以启动虚拟机试试了,举个基础的启动命令(根据你的硬件调整内存和CPU核心数):

sudo qemu-system-x86_64 \
  -enable-kvm \
  -m 8G \
  -smp 4 \
  -hda windows_system.qcow2 \
  -drive file=efi_partition.img,format=raw,if=virtio \
  -boot c \
  -device virtio-net-pci,netdev=net0 \
  -netdev user,id=net0,hostfwd=tcp::3389-:3389

解释下:

  • -enable-kvm:开启KVM硬件加速
  • -m 8G:给虚拟机分配8GB内存
  • -smp 4:分配4个CPU核心
  • -hda:挂载Windows系统镜像
  • -drive:挂载EFI引导镜像(如果是BIOS启动可以去掉这行)
  • -hostfwd:把主机的3389端口转发到虚拟机,方便用远程桌面连接

一些避坑提示

  • 克隆时不要挂载Windows分区,最好用Debian Live USB启动后操作,避免分区被系统占用导致克隆失败
  • 如果你的Windows开启了BitLocker加密,必须先在裸机里解密再克隆,否则镜像无法正常使用
  • 克隆完成后,可以用virt-resize工具调整镜像大小(如果需要),比如缩小镜像节省空间:virt-resize --shrink /dev/sda2 windows_system_raw.img smaller_windows.img

备注:内容来源于stack exchange,提问作者james

火山引擎 最新活动