众所周知,阿里云的服务器非常贵,如果低价购买了某些规格,到期后不想续费,可以把镜像下载下来,放到家里云中运行
目录
系统镜像
从阿里云获取系统镜像时,需要开通对象存储OSS并创建存储桶,存储桶地区需要和镜像所在地一致
对虚拟机进行快照操作,然后通过快照创建自定义镜像
如果是从轻量应用服务器导出,需要在镜像页面选择共享到ECS,然后在ECS镜像页面选择复制镜像,才能进行下一步
随后在镜像页面选择导出到OSS,镜像格式选择qcow2或raw(推荐选择raw,因为会打包压缩成.tar.gz,实际体积更小,可以节省OSS流量并加快下载速度)
接下来就是下载镜像了,可以直接下载(阿里云OSS标准冗余存储的流量按量付费是每GB扣0.5),也可以用同地域的服务器中转下载来规避流量费
下载好之后把镜像传到家里云上就好啦,raw格式的记得解压
家里云运行环境
我在家里云使用的是Proxmox VE 8,管理器版本8.4.9,内核使用6.14.8-2-bpo12-pve
创建和配置虚拟机
创建一个虚拟机,可以先不附加磁盘。
因为阿里云镜像中默认配置了串口控制台,可以比较方便的使用xterm.js,但是在此之前还需要添加一个串口才能使用。

添加一个串口,串口号填写0。

将磁盘附加到虚拟机
在执行下方操作前,确认raw格式的镜像已解压,并确认要挂载的虚拟磁盘格式
如果镜像格式与需要的格式不一致,需要先转换格式
qemu-img convert -f <原格式> -O <目标格式> <输入镜像> <输出镜像>如果刚刚添加了虚拟磁盘,删掉原本的虚拟磁盘并将镜像重命名成原来的虚拟磁盘
如果刚刚没有添加虚拟磁盘,执行以下命令附加虚拟磁盘
qm importdisk <vmid> <images-name> <storage pool> --format=<disk-fs>vmid是刚刚创建的虚拟机id,images-name是磁盘镜像,storage pool选择存储池,disk-fs是虚拟产品格式
然后在控制台打开虚拟机的硬件选项卡,会出现“未使用的磁盘”,双击附加到虚拟机
打开虚拟机的“选项”,双击引导顺序,确认引导正确

系统启动
由于阿里云镜像中存在阿里云专用cloud-init,直接启动会有一点点小问题,在noVNC中光标闪烁但未进入登录页,在xterm.js中会有如下循环输出
[ 27.528546] cloud-init[473]: 2025-08-30 16:07:23,422 - url_helper.py[WARNING]: Calling 'http://100.100.100.200/2016-01-01/meta-data/instance-id' failed [23/300s]: request error [HTTPConnectionPool(host='100.100.100.200', port=80): Max retries exceeded with url: /2016-01-01/meta-data/instance-id (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f89580b1e20>, 'Connection to 100.100.100.200 timed out. (connect timeout=5.0)'))]这是阿里云专用cloud-inti在尝试连接内网100.100.100.200的cloud-init服务器,但是在私有环境下不存在,该过程会循环重试两次,每次5分钟(300秒),这就导致需要等待10分钟才能进入系统
所以我们需要进行一个修改,进入救援模式禁用掉相关服务
- 打开
noVNC连接,并在noVNC中启动虚拟机(不建议连接前就打开虚拟机,可能会错过grub,同时建议质直连pve时操作,避免CDN导致操作延迟) - 不断按下
ESC键,进入grub后按e修改启动配置 - 在
Linux行末添加init=/bin/bash
- 按下
Ctrl + X进入救援模式 - 查看分区情况
df或lsblk,找到挂载为/的分区 - 重新挂载根分区为可写
mount -O remount,rw <根分区> - 查看systemd启用情况
systemctl list-unit-files --type=service --state=enabled - 禁用掉阿里云相关内容
systemctl disable <service name>
- aliyun.service
- cloud-config.service
- cloud-final.service
- cloud-init-local.service
- cloud-init.service
- ecs_mq.service
可选操作:
- 修改密码,
忘记密码或者为了方便xterm.js,使用passwd修改密码 - 修改公钥,避免在云上时和别人共用导致别人也能登录
完成以上操作后,通过Ctrl + Alt + Delete重启系统

然后就可以正常进入系统登录了
登录后将软件源从阿里云内网源改为自己常用的源,然后就可以愉快的 apt update啦,再apt install qemu-guest-agent -y把agent装上,完事。
如果这篇文章对你有帮助,欢迎分享给更多人!