您可以将启动磁盘与虚拟机实例分离,并挂接新的启动磁盘。借助此功能,您可以在不删除原始实例的情况下将启动磁盘装载到另一个虚拟机,从而简化了修复启动磁盘的过程。此外,您可以替换实例的启动磁盘,而不必重新创建整个虚拟机实例。
如果虚拟机实例没有启动磁盘,则尝试启动该实例会生成错误。但是,您仍然可以修改其他实例属性。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 针对实例的
compute.instances.detachDisk
权限 - 针对实例的
compute.instances.attachDisk
权限 - 您只能为已停止的虚拟机实例挂接或分离启动磁盘。
- 每个虚拟机实例只能挂接一个启动磁盘。
- 如果使用 gcloud CLI 或 REST,您只能将现有启动磁盘挂接到虚拟机实例。
- 转到“虚拟机实例”页面。
- 如果出现提示,请选择您的项目并点击继续。
- 点击要分离其启动磁盘的实例。
- 点击页面顶部的停止。
- 点击页面顶部的修改。
- 向下滚动到启动磁盘部分,然后点击要分离的启动磁盘旁边的 X。
- 点击保存。
INSTANCE_NAME
:实例的名称。DISK_NAME
:要分离的磁盘的名称。磁盘名称通常与实例名称相同。PROJECT_ID
:您的项目的 ID。INSTANCE_NAME
:实例的名称。ZONE
:您的实例所在的可用区。DISK_NAME
:要分离的磁盘的名称。磁盘名称通常与实例名称相同。- 转到“虚拟机实例”页面。
- 如果出现提示,请选择您的项目并点击继续。
- 点击要挂接启动磁盘的实例。
- 如果虚拟机实例尚未停止,请点击页面顶部的停止。
- 点击页面顶部的修改。
- 向下滚动到启动磁盘部分。
- 点击添加项。
- 从下拉菜单中选择启动磁盘。
- 点击保存。
INSTANCE_NAME
:实例的名称。DISK_NAME
:要挂接的磁盘的名称。磁盘名称可能与实例名称相同。PROJECT_ID
:您的项目的 ID。INSTANCE_NAME
:您要挂接新的 Persistent Disk 永久性磁盘的实例的名称。ZONE
:您的实例和新磁盘所在的可用域。DISK_NAME
:新磁盘的名称。- 转到“虚拟机实例”页面。
- 如果出现提示,请选择您的项目并点击继续。
- 点击要挂接启动磁盘的实例。
- 如果虚拟机实例尚未停止,请点击页面顶部的停止。
- 点击页面顶部的修改。
- 向下滚动到启动磁盘部分。
- 点击当前启动磁盘旁边的 X。
- 点击添加项。
- 从下拉菜单中选择启动磁盘。
- 点击保存。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
限制
分离启动磁盘
在从虚拟机实例分离启动磁盘之前,必须停止实例。您不需要卸载磁盘。
控制台
gcloud
使用
gcloud compute instances detach-disk
命令从实例中分离启动磁盘。gcloud compute instances detach-disk INSTANCE_NAME \ --disk=DISK_NAME
请替换以下内容:
REST
构建
POST
请求以分离磁盘:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/detachDisk?deviceName=DISK_NAME
替换以下内容:
重新挂接启动磁盘
只要实例尚未挂接启动磁盘,并且启动磁盘与虚拟机实例位于同一地区,则任何磁盘都能作为启动磁盘重新挂接到该实例。如果自定义启动磁盘,则必须确保启动磁盘在挂接后正确启动。
现有磁盘和新磁盘要么均兼容 UEFI,要么均不兼容 UEFI。如需创建与 UEFI 兼容的磁盘,请使用
gcloud compute disk create
命令,并将--guest-os-features
标志设置为UEFI_COMPATIBLE
。控制台
gcloud
使用
gcloud compute instances attach-disk
命令将启动磁盘挂接或重新挂接到虚拟机实例。添加 标志以指示将该磁盘用作实例的启动磁盘。如果没有使用此标志,则该磁盘将作为非启动数据磁盘挂接。--boot
gcloud compute instances attach-disk INSTANCE_NAME \ --disk=DISK_NAME \ --boot
请替换以下内容:
REST
构建
POST
请求以挂接磁盘。添加可选"boot": true
参数以指示该磁盘为启动磁盘。如果没有使用此参数,则该磁盘将作为非启动数据磁盘挂接。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk { "boot": true, "source": "zones/ZONE/disks/DISK_NAME" }
替换以下内容:
将磁盘挂接到虚拟机实例后,重新启动该实例。
更新实例的启动磁盘
您只能使用 Google Cloud 控制台通过一个步骤更新虚拟机的启动磁盘。具体而言,您可以通过一个操作分离现有启动磁盘并挂接新的启动磁盘。
通过 gcloud CLI 或 REST 无法使用此功能。
Google Cloud 控制台将继续分离现有启动磁盘,并挂接您指定的新启动磁盘。此过程完成后,重启虚拟机实例。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-22。
-