

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Amazon EBS 卷与 Amazon EC2 实例分离
<a name="ebs-detaching-volume"></a>

您需要将 Amazon Elastic Block Store（Amazon EBS）卷与实例分离，然后才能将其挂载到其他实例或删除该卷。分离卷不会影响卷上的数据。

**Topics**
+ [注意事项](#considerations)
+ [卸载并分离卷](#umount-detach-volume)
+ [故障排除](#detach-troubleshoot)

## 注意事项
<a name="considerations"></a>
+ 您可以明确地将 Amazon EBS 卷与实例分离，或终止实例。但是，如果实例正在运行，您首先必须从实例卸载卷。
+ 如果 EBS 卷是实例的根设备，则在分离卷之前必须停止该实例。
+ 您可以重新附加分离的卷（无需卸载），但可能不能获得相同挂载点。如果分离时正在写入卷，那么卷上的数据可能不同步。
+ 分离卷后，只要存储量超过 AWS 免费套餐的限制，您仍需要支付卷存储费用。您必须删除卷以避免产生更多费用。有关更多信息，请参阅[删除 Amazon EBS 卷](ebs-deleting-volume.md)。

## 卸载并分离卷
<a name="umount-detach-volume"></a>

使用以下程序从实例卸载并分离卷。当您需要将卷挂载到不同实例时或当您需要删除卷时，此操作非常有用。

**Topics**
+ [第 1 步：卸载卷](#unmount)
+ [第 2 步：从实例分离卷](#detach)
+ [第 3 步：（*仅限 Windows 实例*）卸载离线设备位置](#uninstall)

### 第 1 步：卸载卷
<a name="unmount"></a>

#### Linux 实例
<a name="unmount-linux"></a>

从 Linux 实例中，使用以下命令卸载 `/dev/sdh` 设备。

```
[ec2-user ~]$ sudo umount -d /dev/sdh
```

#### Windows 实例
<a name="unmount-windows"></a>

按照以下步骤从 Windows 实例中卸载卷。

1. 启动磁盘管理实用工具。
   + （Windows Server 2012 及更高版本）在任务栏上，右键单击 Windows 徽标，然后选择**磁盘管理**。
   + （Windows Server 2008）依次选择**开始**、**管理工具**、**计算机管理**和**磁盘管理**。

1. 右键单击磁盘（例如，右键单击**磁盘 1**），然后选择**脱机**。等待磁盘状态变为**脱机**，然后再打开 Amazon EC2 控制台。

### 第 2 步：从实例分离卷
<a name="detach"></a>

要将卷与实例分离，请使用以下方法之一：

------
#### [ Console ]

**分离 EBS 卷**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择 **Volumes**。

1. 选择该卷。

1. 选择**操作**、**分离卷**。

1. 当系统提示进行确认时，选择**分离**。

------
#### [ AWS CLI ]

**将 EBS 卷与实例分离**  
卸载卷之后，使用 [detach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/detach-volume.html) 命令。

```
aws ec2 detach-volume --volume-id vol-01234567890abcdef
```

------
#### [ PowerShell ]

**将 EBS 卷与实例分离**  
卸载卷后，使用 [Dismount-EC2Volume](https://docs.aws.amazon.com/powershell/latest/reference/items/Dismount-EC2Volume.html)cmdlet。

```
Dismount-EC2Volume -VolumeId vol-01234567890abcdef
```

------

### 第 3 步：（*仅限 Windows 实例*）卸载离线设备位置
<a name="uninstall"></a>

从实例卸载和分离卷时，Windows 会将该设备位置标记为脱机。重新启动后以及停止并重新启动实例后，设备位置将保持脱机状态。重启实例时，Windows 可能会将其余卷之一挂载到脱机设备位置。这会导致卷在 Windows 中不可用。为了防止这种情况发生，并确保下次启动 Windows 时所有卷都附加到在线设备位置，请执行以下步骤：

1. 在实例上，打开设备管理器。

1. 在设备管理器中，依次选择**查看**、**显示隐藏的设备**。

1. 在设备列表中，展开**存储控制器**节点。

   已分离卷挂载到的设备位置命名为 `AWS NVMe Elastic Block Storage Adapter`，且应显示为灰色。

1. 右键单击每个命名为 `AWS NVMe Elastic Block Storage Adapter` 的灰显设备位置，选择 **Uninstall device**（卸载设备），然后选择 **Uninstall**（卸载）。
**重要**  
不要选中**删除此设备的驱动程序软件**复选框。

## 故障排除
<a name="detach-troubleshoot"></a>

以下内容介绍在分离卷时遇到的常见问题并以及如何解决这些问题。

**注意**  
要防止出现数据丢失的可能性，请在尝试卸载之前为您的卷制作快照。强制分离一个状态卡住的卷可能对文件系统或其中包含的数据造成破环，或者除非重启实例，否则无法使用同样的设备名称附加新卷。
+ 如果在通过 Amazon EC2 控制台分离卷时遇到问题，您可使用 **describe-volumes** CLI 命令来诊断问题。有关更多信息，请参阅 [describe-volumes](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volumes.html)。
+ 如果您的卷处于 `detaching` 状态，您可以通过选择 **Force Detach** 强制执行分离操作。请将该选项仅用作在不得已的情况下从故障实例分离卷的方法，或是在要删除卷的情况下分离卷时使用。此实例没有机会来冲击文件系统缓存或文件系统元数据。如果您使用该选项，则必须执行文件系统检查和修复流程。
+ 如果在几分钟内多次尝试强制分离卷，并且该卷处于 `detaching` 状态，则可以向 [AWS re:Post](https://repost.aws/) 发布帮助请求。为了帮助加快解决问题，请提供卷 ID 并描述已采取的步骤。
+ 如果尝试分离仍挂载的卷，该卷可能在尝试分离时卡在 `busy` 状态。**describe-volumes** 的以下输出说明了这种情况：

  ```
  "Volumes": [
      {
          "AvailabilityZone": "us-west-2b",
          "Attachments": [
              {
                  "AttachTime": "2022-07-21T23:44:52.000Z",
                  "InstanceId": "i-1234567890abcdef0",
                  "VolumeId": "vol-01234567890abcdef",
                  "State": "busy",
                  "DeleteOnTermination": false,
                  "Device": "/dev/sdf"
              }
          ...
      }
  ]
  ```

  如果遇到这种状态，可能无限期延迟分离，直到您卸载卷，强制分离，重启实例，或者执行前述全部三项操作。