将VMware磁盘镜像导入Google Cloud时遇到签名验证错误的解决咨询
将VMware磁盘镜像导入Google Cloud时遇到签名验证错误的解决咨询
嘿,我来帮你梳理下这个问题的解决思路,还有你疑惑的点~
首先,先解答你最关心的为什么导入过程会在意镜像里的软件源:
Google Cloud的磁盘转换工具(也就是你看到的translate-disk相关流程)在处理镜像时,会启动一个临时实例挂载你的磁盘,做一系列兼容性适配操作——比如安装GCP的Guest Agent、调整系统启动参数适配GCP的虚拟化环境等。这些操作可能会触发apt的更新或依赖安装流程,所以工具会自动检查系统里所有配置的软件源有效性,哪怕你已经注释了/etc/apt/sources.list里的Rackspace源,只要还有其他地方配置了相关源,就会触发这个签名验证错误。
接下来是不用重新上传镜像的解决方法,你可以通过挂载磁盘到临时实例来修复:
- 第一步:在GCP控制台创建一个临时的Ubuntu虚拟机实例,把你那个待转换的VMDK对应的磁盘挂载到这个实例上(注意选对磁盘,挂载时选“附加现有磁盘”)。
- 第二步:登录到临时实例,挂载额外磁盘的分区:
- 先通过
lsblk找到挂载的磁盘(比如/dev/sdb),然后创建挂载点sudo mkdir /mnt/tempdisk,再挂载分区sudo mount /dev/sdb1 /mnt/tempdisk(如果是多个分区,需要对应到系统分区)。
- 先通过
- 第三步:清理所有Rackspace相关的软件源配置:
- 除了检查
/mnt/tempdisk/etc/apt/sources.list,重点看/mnt/tempdisk/etc/apt/sources.list.d/目录下的文件,比如有没有serveragent.list这类和Rackspace Cloud Backup相关的配置文件,直接删除或者把里面的内容全部注释掉。
- 除了检查
- 第四步:清理apt缓存,避免残留的过期签名:
- 执行
sudo chroot /mnt/tempdisk apt clean和sudo chroot /mnt/tempdisk apt autoclean,这样会清理磁盘里缓存的repo索引和签名文件。
- 执行
- 第五步:卸载磁盘
sudo umount /mnt/tempdisk,然后删除临时实例,重新触发GCP的磁盘导入/转换流程即可。
这样操作之后,磁盘里就没有无效的Rackspace软件源了,转换工具再触发apt操作时就不会报错啦。
备注:内容来源于stack exchange,提问作者user3080539
相关产品推荐
相关产品推荐

