分离和重新挂接启动磁盘

以前,启动磁盘会永久挂接到其虚拟机实例。现在,您可以从实例中分离启动磁盘。借助此功能,您可以在不删除原始实例的情况下将启动磁盘装载到另一个实例,从而简化了修复启动磁盘的过程。此外,您可以替换实例的启动磁盘,而不必重新创建整个虚拟机实例。

如果虚拟机实例没有启动磁盘,则尝试启动该实例会生成错误。但是,您仍然可以修改其他实例属性。

准备工作

执行此任务所需的权限

要执行此任务,您必须拥有以下权限

  • 实例上的 compute.instances.detachDisk
  • 实例上的 compute.instances.attachDisk

限制

  • 您只能为已停止的虚拟机实例挂接或分离启动磁盘。
  • 每个虚拟机实例只能挂接一个启动磁盘。
  • 如果使用 gcloud 工具或 API,则启动磁盘必须已存在,然后您才能将其挂接到实例。

分离启动磁盘

在从实例分离启动磁盘之前,必须停止实例。无需卸载磁盘。

Console

  1. 转到“虚拟机实例”页面。

    转到“虚拟机实例”页面

  2. 如果出现提示,请选择您的项目并点击继续
  3. 点击要为其分离启动磁盘的实例。
  4. 点击页面顶部的停止
  5. 然后,点击页面顶部的修改按钮。
  6. 向下滚动到启动磁盘部分,点击要分离的启动磁盘旁的 X
  7. 保存更改。

gcloud

使用 gcloud compute instances detach-disk 命令为实例分离启动磁盘:

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

其中:

  • [INSTANCE_NAME] 是实例的名称。
  • [DISK_NAME] 是要分离的磁盘的名称。磁盘名称通常与实例名称相同。

API

在 API 中,构建一个 POST 请求以分离磁盘:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/detachDisk?deviceName=[DISK_NAME]

其中:

  • [PROJECT_ID] 是项目的名称。
  • [INSTANCE_NAME] 是实例的名称。
  • [ZONE] 是您的实例所在的地区。
  • [DISK_NAME] 是要分离的磁盘的名称。磁盘名称通常与实例名称相同。

重新挂接启动磁盘

只要实例尚未挂接启动磁盘,并且启动磁盘与虚拟机实例位于同一地区,则任何磁盘都能作为启动磁盘重新挂接到该实例。如果自定义启动磁盘,则必须确保启动磁盘在挂接后正确启动。

Console

  1. 转到“虚拟机实例”页面。

    转到“虚拟机实例”页面

  2. 如果出现提示,请选择您的项目并点击继续
  3. 点击要为其挂接启动磁盘的实例。
  4. 如果虚拟机实例尚未停止,请点击页面顶部的停止
  5. 然后,点击页面顶部的修改按钮。
  6. 向下滚动到启动磁盘部分。
  7. 点击添加一项
  8. 从下拉菜单中选择启动磁盘。
  9. 保存更改。

gcloud

使用 gcloud compute instances attach-disk 将启动磁盘挂接或重新挂接到虚拟机实例。添加 --boot 标志以指示磁盘应该是实例的启动磁盘。

gcloud compute instances attach-disk [INSTANCE_NAME] --disk=[DISK_NAME] --boot

其中:

  • [INSTANCE_NAME] 是实例的名称。
  • [DISK_NAME] 是要挂接的磁盘的名称。磁盘名称可能与实例名称相同。
  • --boot 是一个可选标志,指示必须将挂接的磁盘用作实例的启动磁盘。如果没有使用此标志,则该磁盘将作为辅助磁盘挂接。

API

在 API 中,构建一个 POST 请求以附加磁盘。添加 "boot": true 参数以指示该磁盘为启动磁盘:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/attachDisk

{
 "boot": true,
 "source": "zones/[ZONE]/disks/[DISK_NAME]"
}

where:
  • "boot": true 是一个可选参数,指示必须将挂接的磁盘用作实例的启动磁盘。如果没有使用此参数,则该磁盘将作为辅助磁盘挂接。
  • [PROJECT_ID] 是您的项目 ID。
  • [ZONE] 是您的实例和新磁盘所在的地区。
  • [INSTANCE_NAME] 是您要在其中添加新永久性磁盘的实例的名称。
  • [DISK_NAME] 是新磁盘的名称。

将磁盘挂接到实例后,重新启动该实例

更新实例的启动磁盘

只有在 GCP Console 中,您才可以一步更新虚拟机的启动磁盘。具体而言,您可以通过一个操作分离现有启动磁盘并挂接新的启动磁盘。

此功能仅适用于 Console,gcloud 工具或 API 均不支持此功能。

  1. 转到“虚拟机实例”页面。

    转到“虚拟机实例”页面

  2. 如果出现提示,请选择您的项目并点击继续
  3. 点击要为其挂接启动磁盘的实例。
  4. 如果虚拟机实例尚未停止,请点击页面顶部的停止
  5. 然后,点击页面顶部的修改按钮。
  6. 向下滚动到启动磁盘部分。
  7. 点击当前启动磁盘旁的 X
  8. 点击添加一项
  9. 从下拉菜单中选择启动磁盘。
  10. 保存更改。

Console 将继续分离现有启动磁盘,并挂接您指定的新启动磁盘。 完成该过程后,重启实例

后续事项

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

发送以下问题的反馈:

此网页
Compute Engine 文档