服务器整盘备份迁移教程:RAW 转 QCOW2 并导入阿里云自定义镜像
服务器整盘备份迁移教程:RAW 转 QCOW2 并导入阿里云自定义镜像
冰糖呼噜AI摘要
正在生成中……
服务器迁移最省事的办法,不是重装系统重配环境,而是直接整盘备份。
这样网站程序、环境、配置、数据都能尽量原样保留,后续还能上传到阿里云、腾讯云这类平台做自定义镜像。
本文记录一套实用流程:
- 原服务器做迁移前处理
- 整盘备份到另一台服务器
- 接收服务器保存
.raw.gz - 解压为
.raw - 转换为
.qcow2 - 上传云厂商导入为自定义镜像
一、整体流程
整个迁移思路很简单:
- 原服务器做兼容性处理
- 用
dd + gzip + ssh备份整块系统盘到接收服务器 - 接收服务器保存为
.raw.gz - 解压为
.raw - 按需转换成
.qcow2 - 上传到云平台做自定义镜像
二、原服务器需要做哪些前置工作
1. 确认系统盘名称
先确认你要备份的是哪块盘:
1 | lsblk |
常见有:
/dev/vda/dev/sda/dev/nvme0n1
2. 尽量停止业务写入
为保证数据一致性,建议备份前尽量停掉网站和数据库服务:
1 | systemctl stop nginx |
停止所有的docker容器
1 | docker stop $(docker ps -q) |
尤其是数据库业务,最好停掉后再做整盘备份。
3. 清理无用文件
减少镜像体积:
1 | apt clean |
4. 将磁盘空闲空间置零,提升后续 qcow2 压缩率
1 | dd if=/dev/zero of=/ZERO.FILL bs=1M status=progress || true |
4. 安装 cloud-init
这一步很重要。
如果后续准备把镜像上传到阿里云、腾讯云,建议提前安装 cloud-init。
原因是:
- 阿里云明确建议:本地自定义镜像如果没有安装
cloud-init,使用该镜像创建 ECS 实例后,将无法自动完成主机名、网络等初始化配置。 - 腾讯云文档写得更直接:如果导入镜像没有安装
cloud-init,基于该镜像启动的实例将无法正常初始化,导致镜像无法正常导入。
安装方式一般是:
Debian / Ubuntu
1 | apt update |
CentOS / Rocky / AlmaLinux
1 | yum install -y cloud-init |
5. 建议检查这些系统项
为了后续更容易在云平台启动,建议顺手检查:
/etc/fstab是否使用 UUID,避免磁盘名变化后挂载失败- 网络配置不要写死旧网卡名
- 引导模式要清楚是 BIOS 还是 UEFI
- 系统内核和启动器是否正常
因为镜像格式转对了,不代表一定能在云上直接启动。
6. 建议用 screen 或 tmux
整盘备份时间可能很长,建议先开会话:
1 | screen -S backup |
三、接收服务器需要做什么
1. 创建接收目录
1 | mkdir -p /data/backup |
2. 检查磁盘空间
1 | df -h |
要确保空间足够存放:
.raw.gz- 解压后的
.raw - 转换后的
.qcow2
3. 安装转换工具
1 | apt-get update |
四、原服务器如何备份到接收服务器
假设:
- 原服务器系统盘是
/dev/vda - 接收服务器 IP 是
47.98.76.54 - 接收目录是
/data/backup
在原服务器执行:
1 | dd if=/dev/vda bs=64M status=progress | gzip -1 | ssh root@47.98.76.54 "mkdir -p /data/backup && cat > /data/backup/debian-vda.raw.gz" |
这条命令的作用就是:
- 读取整块系统盘
- 实时压缩
- 通过 SSH 传到另一台服务器保存
五、接收服务器查看备份结果
1 | cd /data/backup |
你会看到类似:
1 | -rw-r--r-- 1 root root 2.4G Mar 20 15:13 debian-vda.raw.gz |
说明压缩镜像已经接收完成。
六、解压成 RAW 镜像
1 | cd /data/backup |
解压后会得到:
1 | debian-vda.raw |
-k 表示保留原压缩包。
七、转换成 QCOW2 镜像
如果后续准备导入虚拟化平台,或者想用更常见的虚拟磁盘格式,可以转成 qcow2:
1 | cd /data/backup |
检查一下:
1 | qemu-img info debian-vda.qcow2 |
八、上传到阿里云的流程
阿里云当前支持导入 QCOW2、VHD、RAW、VMDK 格式的镜像文件。
标准流程是:
- 把镜像文件上传到 OSS
- 在 ECS 控制台 里选择 导入镜像
- 填写 OSS 中的镜像文件 URL
- 导入后生成 自定义镜像
- 再基于这个自定义镜像创建 ECS 实例
阿里云还有几个关键要求:
- OSS Bucket 地域必须和导入镜像的 ECS 地域一致
- 系统盘大小不能小于镜像文件大小
- 启动模式建议与原镜像保持一致(BIOS/UEFI)
- 如果系统版本不在平台支持列表里,可以选择
Customized Linux或Others Linux。
也就是说,阿里云这部分你记得没错,确实是:
先传 OSS,再导入成自定义镜像。
九、腾讯云这类平台要注意什么
腾讯云这类平台也一样,cloud-init 基本是必要项。
腾讯云官方文档明确说明:未安装 cloud-init 的 Linux 自定义镜像,实例首次初始化会失败,甚至可能影响镜像导入。
所以如果你的目标不是只做离线备份,而是真的要上传到云厂商使用,那原服务器最好提前把 cloud-init 装好。
十、完整命令汇总
原服务器清理磁盘空间
1 | apt clean |
原服务器整盘备份
1 | dd if=/dev/vda bs=64M status=progress | gzip -1 | ssh root@47.98.76.54 "mkdir -p /data/backup && cat > /data/backup/debian-vda.raw.gz" |
接收服务器安装转换工具以及查看文件
1 | apt-get update |
解压 RAW
1 | gunzip -k /data/backup/debian-vda.raw.gz |
转换 QCOW2
1 | qemu-img convert -p -c -f raw -O qcow2 -o compat=1.1 /data/backup/debian-vda.raw /data/backup/debian-vda.qcow2 |
查看镜像信息
1 | qemu-img info /data/backup/debian-vda.qcow2 |
总结
如果你的目标只是做完整备份,raw.gz 就已经够用了。
如果你的目标是迁移到阿里云、腾讯云这类平台,那建议额外做好这两件事:
- 原服务器提前安装
cloud-init - 镜像生成后按云厂商流程上传并导入自定义镜像
其中阿里云的标准流程就是:
上传到 OSS → ECS 导入镜像 → 生成自定义镜像 → 创建实例。




