如何快速DD/完整克隆您的VPS系统

✅ 第一步:确认你的磁盘设备名

在 Linux 系统中,磁盘设备名称可能因虚拟化平台或内核版本不同而有所差异。常见的磁盘设备包括:

设备名 说明(常见于)
/dev/vda KVM / Xen 虚拟机使用 virtio 驱动时
/dev/sda 某些旧的虚拟化环境或本地物理机
/dev/xvda Xen 虚拟机(半虚拟化)
/dev/nvme0n1 基于 NVMe 的云服务器(如 AWS、阿里云新一代实例)

🔍 如何查看当前系统的磁盘设备?

你可以运行以下命令来列出所有块设备:

lsblk

或者:

fdisk -l 2>/dev/null | grep "Disk /dev"

输出示例:

Disk /dev/xvda: 40 GiB, 42949672960 bytes, 83886080 sectors

这表示你的系统磁盘是 /dev/xvda

 


✅ 第二步:使用正确的设备名重新打包

假设你通过 lsblkfdisk 查到你的磁盘是 /dev/xvda,那么你应该用这个设备名代替 /dev/vda 来创建镜像:

创建原始 RAW 镜像(推荐先压缩)

dd if=/dev/xvda of=system.img bs=4M status=progress

如果你担心镜像太大,可以配合 gzip 压缩写入:

dd if=/dev/xvda bs=4M status=progress | gzip > system.img.gz

之后解压恢复时:

gzip -dc system.img.gz | dd of=/dev/xvda bs=4M

✅ 第三步:转换为 VHD 格式(使用 qemu-img)

确保已安装 qemu-utils

sudo apt update && sudo apt install -y qemu-utils

.img 文件转换为 VHD(固定大小)格式:

qemu-img convert -f raw system.img -O vpc -o subformat=fixed,force_size system.vhd

✅ 可选:查看 VHD 文件信息

qemu-img info system.vhd

🧠 小贴士

  • 如果你的 VPS 是从云服务商(如阿里云、腾讯云、AWS、Azure)购买的,建议优先使用其控制台提供的“自定义镜像”功能,而不是手动打包。
  • 如果你只是想迁移系统,也可以考虑使用 rsync 或 tar 打包文件系统而非整盘克隆。
  • 若你无法直接访问块设备(例如 OpenVZ 架构的 VPS),则不能使用 dd,只能用 tar 打包文件系统。

✅ 示例流程总结

# 1. 查看磁盘设备
lsblk
# 2. 假设设备是 /dev/xvda,则打包成 raw 镜像
dd if=/dev/xvda of=system.img bs=4M status=progress

# 3. 安装 qemu 工具(如未安装)
sudo apt install qemu-utils

# 4. 转换为 VHD 格式
qemu-img convert -f raw system.img -O vpc -o subformat=fixed,force_size system.vhd


如果你不确定你的 VPS 使用的是哪种虚拟化架构或设备名,可以提供如下信息,我可以帮你判断:

  • lsblk 输出
  • uname -a
  • virt-what(如果安装了的话)
THE END