如何快速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
。
✅ 第二步:使用正确的设备名重新打包
假设你通过 lsblk
或 fdisk
查到你的磁盘是 /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
(如果安装了的话)
版权声明:
作者:xiaodaiwl
链接:https://blog.daining.top/?p=219
文章版权归作者所有,未经允许请勿转载。
THE END