You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将本地Ubuntu Server 20.04 VM上传至Google Cloud并保留配置?

问题诊断与修复方案

一、你操作踩的坑

1. OVA导入的问题

  • 导出OVA时虚拟机没完全关机:VirtualBox如果导出的是运行/休眠状态的VM,生成的OVA只会包含快照而非完整系统状态,导入GCP后自然是空的。
  • GCP自动覆盖了系统配置:GCP导入自定义镜像后会强制注入cloud-init,重置SSH密钥、用户账户甚至网络设置,直接冲掉了你本地的配置。
  • 格式转换不彻底:VirtualBox的VDI转OVA时,可能没正确转换成GCP支持的raw格式,导致磁盘内容没被正确识别。

2. 磁盘导入的问题

  • 导错了磁盘:你可能把虚拟机的数据盘当成系统盘导入了,GCP启动时找不到根分区,就自动加载了默认临时系统。
  • 分区引导没适配:本地Ubuntu的GRUB是针对VirtualBox硬件做的,导入GCP后没适配NVMe磁盘、GCP虚拟网卡,启动失败后系统自动初始化。
  • 没清理本地残留:本地的cloud-init配置或VirtualBox工具没删,导致导入后系统冲突,触发重置。

二、正确的迁移步骤(Ubuntu Server 20.04专属)

1. 本地VM先做预处理

  • 彻底关机Ubuntu VM(别休眠/挂起),确保所有文件都写入磁盘。
  • 删掉VirtualBox专属工具:
    sudo apt remove --purge virtualbox-guest-*
    
  • 重置网络配置:删掉/etc/netplan/*.yaml里的静态IP,换成GCP兼容的DHCP配置:
    network:
      ethernets:
        ens4:
          dhcp4: true
      version: 2
    
  • 清空旧SSH密钥:删掉/root/.ssh/authorized_keys和你用户目录下的同文件,避免和GCP注入的密钥冲突。
  • 清理cloud-init残留:
    sudo cloud-init clean
    

2. 导出磁盘并上传到GCP

  • 把VDI转成raw格式(GCP认这个):
    VBoxManage clonehd /你的虚拟机路径/xxx.vdi /导出路径/ubuntu-disk.raw --format raw
    
  • 上传到GCP云存储:
    gsutil cp /导出路径/ubuntu-disk.raw gs://你的存储桶名/ubuntu-disk.raw
    
  • 创建自定义镜像:
    gcloud compute images create ubuntu-imported --source-uri gs://你的存储桶名/ubuntu-disk.raw --os-family ubuntu --os-version 20.04
    

3. 创建云VM并验证

  • 用刚创建的ubuntu-imported镜像开VM,记得开SSH、HTTP/HTTPS的防火墙规则。
  • 登录后先查/var/www/html(WordPress目录)、数据库文件是不是都在,再启动Apache/Nginx服务:
    sudo systemctl start apache2
    
  • 测试远程SSH和WordPress访问,没问题就搞定了。

三、核心注意点

  • 一定要导系统盘,别把数据盘当成系统盘上传。
  • GCP不认VDI格式,必须转成raw或qcow2。
  • 预处理阶段一定要删VirtualBox工具和旧配置,不然到GCP会出各种兼容问题。

内容的提问来源于stack exchange,提问作者Anthony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:17:29