手动导入虚拟磁盘

如需从物理数据中心、本地工作站上的虚拟机 (VM) 或运行在其他云平台上的虚拟机将启动磁盘映像导入至 Compute Engine,建议您使用虚拟磁盘导入工具,该工具会自动执行本指南中的所有步骤。

如果您不想使用此自动化工具,可以按照本指南中的分步说明手动操作。

此映像导入过程一次只能导入一个磁盘。本指南将着重介绍如何导入启动磁盘映像。

只有在您无法构建或迁移应用以在 Compute Engine 公共映像上运行时,才应导入现有的启动磁盘。公共映像已配置为在 Compute Engine 环境中运行,因此您可以在这些映像上运行应用,而无需担心引导加载程序和操作系统配置。但是在下列情况中,您可能需要导入自己的启动磁盘映像:

  • 您的应用需要一个未作为公共映像提供的操作系统。
  • 您已经拥有一组用于在另一个云平台中创建虚拟机的基础映像。
  • 将应用代码迁移到其中一个公共映像所需的工作量大于完成启动磁盘映像导入过程所需的工作量。

或者,您也可以借助合作伙伴服务来迁移虚拟机。如需了解详情,请参阅将虚拟机迁移到 Compute Engine

概览

如需将启动磁盘映像导入到 Compute Engine 中,请执行以下过程:

  1. 规划您的导入路径。您必须确定在上传启动磁盘映像之前要在哪里准备该映像,以及该映像在 Compute Engine 环境中启动后,您将如何连接到该映像。
  2. 准备您的启动磁盘,以便它可以在 Compute Engine 环境中启动,而且在启动后可供您访问。
  3. 创建启动磁盘映像文件并进行压缩。
  4. 将该映像文件上传到 Cloud Storage,并将该映像作为新的自定义映像导入到 Compute Engine 中。
  5. 使用导入的映像创建虚拟机实例,并确保其正常启动。
  6. 如果该映像未能成功启动,您可以通过将启动磁盘映像挂接到另一个实例并重新配置该映像来排查此问题。
  7. 优化该映像并安装访客环境,以便让您导入的操作系统映像可与元数据服务器进行通信并使用其他 Compute Engine 功能。

要求

启动磁盘要求

启动磁盘必须满足以下要求才能导入到 Compute Engine 中:

  • 如果您构建了自定义操作系统内核,则该内核必须满足硬件和内核配置要求。 大多数现有的 Linux 发行版已经满足这些要求,因此这项要求仅针对自行构建自定义操作系统并在 Compute Engine 上运行该系统的高级用户。
  • 启动磁盘不得大于 2048 GB (2 TB)。
  • 您导入的启动磁盘必须具有即用型 MBR 分区表,或者采用结合了 GPT 分区表与 MBR 引导加载程序的混合配置。
  • 只要启动磁盘可通过 MBR 引导加载程序正常启动,您就可以为该启动磁盘上的主分区选择您偏好的任何格式。
  • 启动磁盘上的引导加载程序不得包含 quietrhgbsplashimage= 内核命令行参数。Compute Engine 不支持在启动时呈现启动画面。您可以在执行引导加载程序配置步骤时从 GRUB 配置中移除这些值。
  • 启动磁盘上的操作系统必须支持 ACPI

映像文件要求

您导入的映像文件必须满足以下要求:

  • 磁盘映像文件名必须是 disk.raw
  • RAW 映像文件的大小必须为 1 GB 的整数倍。例如,该文件的大小可以是 10 GB 或 11 GB,而不能是 10.5 GB。
  • 压缩文件必须是使用了 gzip 压缩tar 实用程序 --format=oldgnu 选项的 .tar.gz 文件(请参阅手册)。

您可以导入您偏好的任何操作系统的启动磁盘映像,但有些系统比其他系统更容易配置,可轻松与 Compute Engine 环境相结合。以下操作系统已通过本指南的测试:

  • Debian 7 和 Debian 8
  • RHEL/CentOS 6
  • openSUSE 13.x
  • Ubuntu 12.04、14.04 和 16.04

以下操作系统可能需要采用本指南未涵盖的其他配置步骤:

  • Debian 6 及更低版本
  • RHEL/CentOS 7
  • RHEL/CentOS 5 及更早版本
  • Ubuntu 10.04 及更低版本

项目要求

当您通过导入的映像创建虚拟机实例时,该实例必须能够访问在启动磁盘上配置的操作系统的外部软件包存储库。

此存储库可以直接从操作系统供应商处进行访问,也可以通过与托管这些存储库的本地基础架构的网络连接进行访问。

如需设置对外部存储库的访问权限,请在您的项目中完成以下任一步骤:

映像导入费用

在开始之前,请先了解导入过程的费用。如果将启动磁盘映像文件上传到 Google Cloud Storage,则您不需要支付网络入站流量费用;如果将该映像作为 Compute Engine 自定义映像导入,您也不需要支付任何费用。但是,导入过程中的某些特定步骤会产生下列费用:

  • 将压缩后的映像文件临时存储在某个 Cloud Storage 标准存储分区中的费用。您必须先将您的文件存放在一个临时 Cloud Storage 存储分区中,然后才能将其作为自定义 Compute Engine 映像导入。在完成导入过程后,您可以移除该存储分区。
  • 完成将自定义映像导入到 Compute Engine 中的操作后,存储自定义映像的费用。
  • 您现有的数据中心、网络提供商或当前云服务上数据出站流量的潜在费用。映像文件即使在压缩之后仍可能非常大,因此在某些平台上,将这些文件复制到 Compute Engine 中可能会产生很高的出站流量费用。
  • Compute Engine 永久性磁盘虚拟机实例(可让您在将映像导入 Compute Engine 后对映像进行配置)的费用。

规划并准备您的导入路径

导入磁盘的方法取决于要迁移至 Compute Engine 的系统的当前配置。您需要一个可创建并压缩启动磁盘映像文件的系统,以及一个可将该映像文件上传到 Cloud Storage 的系统。在规划导入路径时,请考虑以下事项:

  • 映像导入路径要求您必须在正常运行的操作系统环境中配置启动磁盘。此过程可能会导致启动磁盘无法在 Compute Engine 环境以外的任何位置启动。您要负责确保在将系统导入到 Compute Engine 中时,不会丢失磁盘上的数据或中断正在运行的业务应用。
  • 确定您现有的系统访问配置,然后规划在将系统导入到 Compute Engine 中后您要如何访问该系统。
    • 如果您的系统已有用户登录或 SSH 配置,那么您可以先仅配置引导加载程序,然后再配置映像以使其能够在 Compute Engine 上以最佳方式运行。您可以通过现有 SSH 配置或交互式串行控制台中的用户直接登录功能来访问实例。
    • 如果您的系统还没有用户登录或 SSH 配置,则您必须配置启动磁盘,以使该磁盘在 Compute Engine 中启动后可供您访问。
  • 导入过程可能需要几个小时或几天的时间才会完成,具体取决于启动磁盘的大小和网络连接的速度。
  • 用来创建并压缩启动磁盘映像的系统必须具有足够的存储空间,这样才能在启动磁盘本身以外的某个存储设备上创建映像文件。通常,您的映像和 tar.gz 文件占用的存储空间大小将为启动磁盘本身的 2-3 倍。
  • 了解您要导入的现有系统的文件系统结构。
    • 如果您的操作系统和应用文件分布在多个磁盘上,请分别导入每个磁盘,并使用每个映像为 Compute Engine 虚拟机实例创建唯一的永久性磁盘。
    • 如果您系统的启动卷采用 RAID 配置(即将多个磁盘作为单个逻辑卷),请为整个磁盘阵列创建一个映像,而不要为磁盘阵列中的每个磁盘分别创建一个映像。Compute Engine 永久性磁盘不需要配置 RAID。
  • 如果您的系统使用可信平台模块或软件级加密对启动磁盘的内容进行了加密,请先解密该启动磁盘,然后再创建启动磁盘映像文件。Google 无法读取经过加密的映像。在您上传映像后,Google 会为您加密这些映像,并且允许您为永久性磁盘Cloud Storage 存储分区提供您自己的加密密钥。

在您找到或创建可以在其中完成导入过程的系统后,请连接到该系统并配置引导加载程序

准备启动磁盘映像

在正在运行的系统上准备启动磁盘映像,以使该映像能够在 Compute Engine 环境中正常运行。

  • 在启动磁盘上配置引导加载程序,以使该映像能够在 Compute Engine 上启动。
  • 在启动磁盘上配置 SSH 或用户登录访问权限,以便您能够在将启动磁盘导入 Compute Engine 并作为虚拟机实例启动后对其进行访问。

此过程可能会导致系统无法在 Compute Engine 以外的环境中启动,因此最佳做法是使用您要导入的启动磁盘的副本在隔离的系统上完成此步骤。

配置引导加载程序

在系统上配置引导加载程序,让系统能够在 Compute Engine 上启动。

  1. 在您要导入的启动磁盘所在的系统上连接到终端。

  2. 修改 GRUB 配置文件。此文件通常位于 /etc/default/grub,但在一些早期发行版中,它可能位于某个非标准目录中。

  3. 对 GRUB 配置文件进行以下更改:

    • 移除所有包含 splashimage= 的行。Compute Engine 不支持在启动时呈现启动画面。
    • 移除 rhgbquiet 内核命令行参数。
    • console=ttyS0,38400n8d 添加到内核命令行参数中,以便实例能够与串行控制台交互
  4. 重新生成 grub.cfg 文件。根据您的发行版使用下列其中一个命令。

    • Debian 和 Ubuntu:sudo update-grub
    • RHEL 和 CentOS:sudo grub-mkconfig -o /boot/grub/grub.cfg
    • SUSE 和 openSUSE:sudo grub2-mkconfig -o /boot/grub/grub.cfg
  5. 修改 /etc/fstab 文件,并移除对除启动磁盘本身及其分区以外的其他所有磁盘和分区的引用。/etc/fstab 中的无效条目可能会导致系统启动过程停止。

配置完引导加载程序后,请创建并压缩磁盘映像文件

配置对映像的 SSH 或用户登录访问权限

在您的映像作为虚拟机实例在 Compute Engine 中运行后,您必须能够访问该实例。您可以使用现有的 SSH 配置连接到该实例,也可以连接到串行控制台并使用用户名和密码进行登录。

创建并压缩磁盘映像文件之前,请先完成 SSH 或用户登录配置。

创建并压缩磁盘映像文件

为您要导入到 Compute Engine 中的系统创建并压缩启动磁盘映像文件。创建并压缩映像文件的过程因用于运行系统的平台而异。

通用方法

在几乎所有的系统上,您都可以执行以下过程来创建可导入到 Compute Engine 中的 RAW 映像文件。您可以在将要导入的运行中系统上完成此过程,也可以将您的启动磁盘作为辅助磁盘挂接到另一个系统上,然后从已停止运行的磁盘创建启动磁盘映像。请确保您有足够的可用存储空间,以用于临时存放磁盘映像文件。本示例会从一个正在运行的系统创建映像。

  1. 在您要导入的启动磁盘所在的系统上连接到终端。

  2. 使用 lsblk 命令确定您要从中创建映像的来源启动磁盘,以及具有足够空间以用于写入映像文件的位置。在此示例中,/dev/sda 是来源启动磁盘,/dev/sdb 是装载在 /tmp 目录的大容量辅助磁盘。虽然 /dev/sda 正在运行,但您仍然可以通过其创建映像。建议您最好在当前未在处理数据或运行应用的无提示系统上执行此操作。

    $ lsblk
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0  100G  0 disk
    ├─sda1   8:1    0   96G  0 part /
    ├─sda2   8:2    0    1K  0 part
    └─sda3   8:5    0    4G  0 part [SWAP]
    sdb      8:16   0  500G  0 disk /tmp
    sr0     11:0    1 1024M  0 rom
    
  3. 从您的启动磁盘创建映像文件。

    $ sudo dd if=/dev/sda of=/tmp/disk.raw bs=4M conv=sparse
    
  4. 切换到您写入 disk.raw 文件的目录。

    $ cd /tmp
    
  5. 将 RAW 磁盘压缩为 tar.gz 格式。此步骤会压缩映像文件,以便您更快速地将其上传到 Cloud Storage。在 OSX 上,请安装 gtar 并在此步骤中使用该格式(而不要使用 tar)。

    $ sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

AWS EC2

如果您要导入 Amazon EC2 实例,请使用 AMI 工具将 Amazon EBS 卷打包:

  1. “帐号设置”控制台上找到并记下您的 Amazon 帐号 ID

  2. 在您的 Amazon EC2 实例上,下载并安装 EC2 AMI 工具。

  3. 使用以下参数以根用户身份运行 ec2-bundle-vol,并将cert-<hash>.pempk-<hash>.pemAWS_ACCOUNT_ID 分别替换为证书文件、私钥和您的 Amazon 帐号 ID。此命令会创建 image 文件。

    ec2-bundle-vol -c /tmp/build/cert-<hash>.pem \
        -k /tmp/build/pk-<hash>.pem -u AWS_ACCOUNT_ID \
        -r x86_64 --no-filter --exclude /tmp/build \
        --grub-config /tmp/build/menu.lst \
        --fstab /tmp/build/fstab
    
  4. 将 RAW 磁盘压缩为 tar.gz 格式。此步骤会压缩映像文件,以便您更快速地将其上传到 Cloud Storage。在 OSX 上,请安装 gtar 并在此步骤中使用该格式(而不要使用 tar)。

    $ sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

VirtualBox

如果您已在 VirtualBox 环境中准备好您的系统,则可以使用 VBoxManage 工具将 .vdi.qcow2 磁盘映像转换为 disk.raw 格式。

  1. 关停您要导入的 VirtualBox 客机。您可以使用 VirtualBox 界面或使用 VBoxManage 实用程序来关停客机。

    VBoxManage controlvm [GUEST_NAME] acpipowerbutton
    

    其中,[GUEST_NAME] 是客机的名称。

  2. 使用 VBoxManage 实用程序将客机映像转换为 RAW 格式:

    VBoxManage clonemedium [GUEST_IMAGE] \
        ~/disk.raw --format RAW
    

    其中,[GUEST_IMAGE].vdi.qcow2 客机映像文件的路径。

  3. 将 RAW 磁盘压缩为 tar.gz 格式。此步骤会压缩映像文件,以便您更快速地将其上传到 Cloud Storage。在 OSX 上,请安装 gtar 并在此步骤中使用该格式(而不要使用 tar)。

    $ sudo tar --format=oldgnu -Sczf /tmp/compressed-image.tar.gz disk.raw
    

该映像文件已经过压缩且准备就绪,可上传到 Cloud Storage。

将映像导入到您的自定义映像列表中

将该文件上传到 Cloud Storage,然后将该映像导入您的自定义映像列表中。此外,您还可以在映像导入步骤中选择加密映像

通过控制台或 Cloud SDK 工具导入映像:

控制台

compressed-image.tar.gz 文件复制到本地工作站,然后使用 GCP Console 创建存储分区并上传该文件

  1. 在 GCP Console 中,转到 Cloud Storage“浏览器”页面。

    转到“浏览器”页面

  2. 在页面顶部,点击创建存储分区
  3. 指定唯一的存储分区名称、标准存储类别以及您要用来存储映像文件的位置。
  4. 点击创建以创建存储分区。“浏览器”页面随即会切换到新存储分区。
  5. 点击页面顶部的上传文件
  6. 在文件对话框中,选择您从系统下载的 compressed-image.tar.gz 文件。系统会从您的本地工作站上传该文件。此步骤可能需要几个小时才会完成,具体取决于压缩映像文件的大小和网络连接的速度。

将映像上传到 Cloud Storage 后,请将映像文件导入您的自定义映像列表。

  1. 在 GCP Console 中,转到映像页面。

    转到“映像”页面

  2. 在页面顶部,点击创建映像
  3. 名称字段中,为映像指定一个唯一的名称。
  4. (可选)为您的新映像指定映像系列,或为该映像配置特定的加密设置。
  5. 点击来源菜单并选择 Cloud Storage 文件。
  6. 输入您上传到 Cloud Storage 的 compressed-image.tar.gz 文件的路径。

    [BUCKET_NAME]/compressed-image.tar.gz
    
  7. 点击创建按钮以导入该映像。此过程可能需要几分钟才会完成,具体取决于启动磁盘映像的大小。

该映像现已包含在映像页面中,但您必须先配置引导加载程序,然后才能使用该映像来创建可正常运行的虚拟机实例。

gcloud 和 gsutil

使用 gsutil 工具和 gcloud 工具上传已压缩的启动磁盘映像文件。您可以在之前创建启动磁盘映像的系统上完成此过程,也可以将该文件复制到另一个系统中,然后在该系统上完成上传过程。

  1. 在您要从中上传 compressed-image.tar.gz 的来源系统上安装并初始化 Cloud SDK

  2. 使用 gsutil 工具创建新的 Cloud Storage 存储分区。

     $ gsutil mb gs://[BUCKET_NAME]
     

  3. compressed-image.tar.gz 文件上传到新存储分区。

     $ gsutil cp compressed-image.tar.gz gs://[BUCKET_NAME]
     

  4. 将该映像文件导入为新的自定义映像。

     $ gcloud compute images create [IMAGE_NAME] --source-uri gs://[BUCKET_NAME]/compressed-image.tar.gz
     

该映像现已包含在自定义映像页面列表中,但您必须先配置引导加载程序,然后才能使用该映像来创建可正常运行的虚拟机实例。

  $ gcloud compute images list --no-standard-images
  
  NAME                                            PROJECT                  FAMILY                    DEPRECATED  STATUS
  [IMAGE_NAME]                                    [PROJECT_ID]                                                   READY
  

测试导入的映像以确保其正常运行

确认已导入的映像是否可按预期工作。然后通过某个使用该映像的启动磁盘来创建实例。

控制台

  1. 在 GCP Console 中,转到虚拟机实例页面。

    转到“实例”页面

  2. 点击创建按钮。
  3. 启动磁盘下,点击更改以开始配置您的启动磁盘。
  4. 自定义映像标签页中,点击您之前导入的映像。
  5. 点击选择确认启动磁盘的配置。
  6. 点击创建按钮以创建该实例。

gcloud

gcloud compute instances create [INSTANCE_NAME] --zone [ZONE] --image [IMAGE_NAME]

其中:

  • [INSTANCE_NAME] 是您实例的唯一名称。
  • [ZONE] 是您之前创建独立磁盘的地区。
  • [IMAGE_NAME] 是您之前导入的映像的名称。

在您创建实例后,请确认该实例已正确启动。请检查串行端口输出:

控制台

  1. 在 GCP Console 中,转到虚拟机实例页面。

    转到“实例”页面

  2. 在实例列表中,点击您基于已导入的映像创建的实例的名称。实例详情页面会打开。
  3. 在实例详情页面的底部,点击查看串行端口以查看此实例的串行端口输出内容。

如果该实例在 Booting from Hard Disk 0... 时停止,您必须从 Compute Engine 环境内部进行问题排查,或者在原始系统上重新配置启动磁盘并重复执行导入过程。

gcloud

gcloud compute instances get-serial-port-output [INSTANCE_NAME]

如果该实例在 Booting from Hard Disk 0... 时停止,您必须从 Compute Engine 环境内部进行问题排查,或者在原始系统上重新配置启动磁盘并重复执行导入过程。

您也可以通过连接实例的方式来测试该实例。请通过以下任一方式连接到该实例:

  • SSH:如果实例具有有效的 SSH 配置,您便可以使用 SSH 和您的私钥连接到该实例。您可以在虚拟机实例页面上找到实例 IP 地址。
  • 串行控制台:如果您需要在不使用 SSH 的情况下直接登录到该实例,则可以启用串行控制台,并使用用户名和密码进行登录。

排查启动磁盘问题

如果您的实例无法启动,并且您无法连接到该实例或通过交互式串行控制台进行登录,请确定启动磁盘未能完成引导和启动过程的原因。

在确定引导和启动过程失败的位置后,您可以使用以下两种方式之一来纠正问题:

在 Compute Engine 中排查启动磁盘问题

将导入的映像装载到已挂接到临时虚拟机实例的辅助磁盘上。接着,使用 GCP Console 或 gcloud 工具从您上传的映像创建独立磁盘,并创建一个挂接该独立磁盘相的临时虚拟机。您可以使用此实例修改独立磁盘上的文件,并修复导致映像启动过程失败的各种问题。

控制台

您可以从导入的启动磁盘映像创建独立磁盘,也可以将启动磁盘与实例分离,并使用分离后的启动磁盘创建实例。

  1. 在 GCP Console 中,转到磁盘页面。

    转到“磁盘”页面

  2. 点击创建磁盘
  3. 创建新磁盘页面上,指定以下属性:
    • 地区选择离您比较近的地区。在创建临时实例时,您必须使用此相同地区。
    • 来源类型映像
    • 来源映像:指定已导入的启动磁盘映像的名称。
  4. 点击创建以创建磁盘。

创建您可以在其中挂接独立磁盘的临时实例,并将引导加载程序配置为在 GCP Console 环境中运行。

  1. 在 GCP Console 中,转到虚拟机实例页面。

    转到“实例”页面

  2. 点击创建实例按钮。
  3. 创建新实例页面上,指定实例名称以及该实例所在的地区。此地区必须与您之前创建独立磁盘的地区相同。
  4. 展开管理、安全、磁盘、网络、单独租用部分。
  5. 磁盘标签页下的额外磁盘部分,点击挂接现有磁盘。系统随即会显示一个新的部分。
  6. 磁盘部分下,从下拉列表中选择您创建的独立磁盘。 此操作会将独立磁盘连接到实例,以便您稍后可以装载该磁盘并修改其内容。
  7. 点击完成以完成挂接磁盘操作。
  8. 点击创建按钮以创建该实例。

gcloud

您可以从导入的启动磁盘映像创建独立磁盘,也可以将启动磁盘与实例分离,并使用分离后的启动磁盘创建实例。

gcloud compute disks create [DISK_NAME] --zone [ZONE] --image [IMAGE_NAME]

其中:

  • [DISK_NAME] 是新独立磁盘的名称。
  • [ZONE] 是离您比较近的地区。在创建临时实例时,您必须使用该地区。
  • [IMAGE_NAME] 是您之前导入的启动磁盘映像的名称。

创建您可以在其中挂接独立磁盘的临时实例,并将引导加载程序配置为在 GCP Console 环境中运行。

gcloud compute instances create [INSTANCE_NAME] --zone [ZONE] --disk name=[DISK_NAME]

其中:

  • [INSTANCE_NAME] 是您实例的唯一名称。
  • [ZONE] 是您之前创建独立磁盘的地区。
  • [DISK_NAME] 是您基于导入的启动磁盘映像创建的独立磁盘的名称。

在使用挂接的独立磁盘创建实例后,您将拥有一个虚拟环境,并可以在其中从原始启动磁盘映像修改引导加载程序。

连接到该实例、装载独立磁盘,并配置引导加载程序,以便该实例能够在 Compute Engine 上正常启动。

  1. 通过浏览器使用 SSH 连接到临时实例,或使用 gcloud compute ssh 命令实现此连接。
  2. 使用 blkid 命令确定您要修改的磁盘以及需要装载的分区。在此示例中,/dev/sdb 是您之前导入的磁盘。

    $ lsblk
    
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   10G  0 disk
    └─sda1   8:1    0   10G  0 part /
    sdb      8:16   0  100G  0 disk
    ├─sdb1   8:17   0   96G  0 part
    ├─sdb2   8:18   0    1K  0 part
    └─sdb5   8:21   0    4G  0 part
    
  3. 将独立磁盘的根分区装载到 /tmp 目录。在此示例中,/dev/sdb1 是根分区,而其他分区不需要任何修改。您的分区方案可能要求您必须装载多个分区才能访问所有需要更改的文件。

    $ sudo mount /dev/sdb1 /tmp
    
  4. 修改可能导致磁盘启动过程失败的文件。如需了解详情,请参阅引导加载程序配置说明

  5. 从临时实例中卸载启动磁盘。

    $ sudo umount /tmp
    

完成此磁盘的配置后,请将其分离出来并用作新实例的启动磁盘。

控制台

从临时实例中分离独立磁盘。

  1. 在 GCP Console 中,转到虚拟机实例页面。

    转到“实例”页面

  2. 在实例列表中,点击您修改了其独立启动磁盘的临时实例的名称。实例详情页面会打开。
  3. 在实例详情页面顶部,点击修改
  4. 额外磁盘部分下,点击独立磁盘旁边的 X,以指示您想要将该磁盘从临时实例中分离出来。
  5. 在实例详情页面的底部,点击保存以保存更改。

使用已分离的独立磁盘创建一个新实例。

  1. 在 GCP Console 中,转到虚拟机实例页面。

    转到“实例”页面

  2. 点击创建实例按钮。
  3. 创建新实例页面上,指定实例名称以及该实例所在的地区。此地区必须与您之前创建独立磁盘的地区相同。
  4. 启动磁盘部分,点击更改以开始配置您的启动磁盘。
  5. 现有磁盘标签页中,选择独立启动磁盘以将其用作此新实例的启动磁盘。
  6. 点击创建按钮以创建该实例。

gcloud

从临时实例中分离独立磁盘。

gcloud compute instances detach-disk [INSTANCE_NAME] --disk [DISK_NAME]

其中:

  • [INSTANCE_NAME] 是您实例的唯一名称。
  • [DISK_NAME] 是新独立磁盘的名称。

使用已分离的独立磁盘创建一个新实例。

gcloud compute instances create [INSTANCE_NAME] --zone [ZONE] --disk name=[DISK_NAME],boot=yes

其中:

  • [INSTANCE_NAME] 是您实例的唯一名称。
  • [ZONE] 是独立磁盘所在的地区。
  • [DISK_NAME] 是您基于导入的启动磁盘映像创建的独立磁盘的名称。

测试您使用修改后的启动磁盘创建的实例。如果您仍然无法连接到实例,请再次读取串行控制台输出以确定启动过程失败的位置。重复此问题排查过程,直到您纠正了启动磁盘映像的各种问题为止。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档