

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

# 使 Amazon EBS 卷可供使用
<a name="ebs-using-volumes"></a>

将某个 Amazon EBS 卷挂载到实例后，该卷将显示为块设备。您可以使用任何文件系统将卷格式化，然后进行挂载。在使 EBS 卷可供使用后，您可以像访问其他所有卷一样访问该卷。任何写入此文件系统的数据均写入 EBS 卷，并且对使用该设备的应用程序是透明的。

您可以制作 EBS 卷的快照以进行备份或在您创建其他卷时作为基准。有关更多信息，请参阅 [Amazon EBS 快照](ebs-snapshots.md)。

如果您准备使用的 EBS 卷大于 2TiB，则必须使用 GPT 分区方案才能访问整个卷。有关更多信息，请参阅 [Amazon EBS 卷限制](volume_constraints.md)。

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

### 格式化并挂载附加的卷
<a name="ebs-format-mount-volume"></a>

假设您的根设备 `/dev/xvda` 拥有一个具有 EBS 卷的 EC2 实例，并且您已使用 `/dev/sdf` 将一个空的 EBS 卷添加到了该实例。按照以下过程使新附加的卷可用。

**在 Linux 上格式化并挂载 EBS 卷**

1. 使用 SSH 连接到实例。有关更多信息，请参阅[连接到您的 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。

1. 设备可附加到设备名称与您在块储存设备映射中指定的设备名称不同的实例。有关更多信息，请参阅 [Linux 实例上的设备名称](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html)。使用 **lsblk** 命令可查看可用磁盘设备及其挂载点（如果适用），以帮助您确定要使用的正确设备名称。**lsblk** 的输出从完整的设备路径中去掉了 `/dev/` 前缀。

   以下是基于 [Nitro System 构建的实例的输出示例，该系统](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)将 EBS 卷作为 NVMe区块设备公开。根设备为 `/dev/nvme0n1`，它有两个名为 `nvme0n1p1` 和 `nvme0n1p128`。如果没有分区且尚未附加，则附加卷为 `/dev/nvme1n1`。

   ```
   [ec2-user ~]$ lsblk
   NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
   nvme1n1       259:0    0  10G  0 disk
   nvme0n1       259:1    0   8G  0 disk
   -nvme0n1p1    259:2    0   8G  0 part /
   -nvme0n1p128  259:3    0   1M  0 part
   ```

   以下是 T2 实例的示例输出。根设备为 `/dev/xvda`，它有名为 `xvda1` 的一个分区。如果没有分区且尚未附加，则附加卷为 `/dev/xvdf`。

   ```
   [ec2-user ~]$ lsblk
   NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
   xvda    202:0    0    8G  0 disk
   -xvda1  202:1    0    8G  0 part /
   xvdf    202:80   0   10G  0 disk
   ```

1. 确定卷上是否存在文件系统。新卷为原始的块储存设备，您必须先在这种设备上创建文件系统，然后才能够挂载并使用它们。从快照创建的卷可能已经含有文件系统；如果您在现有的文件系统上创建新的文件系统，则该操作将覆盖您的数据。

   使用以下一种或两种方法来确定卷上是否有文件系统：
   + 使用 **file -s** 命令获取有关特定设备的信息，例如其文件系统类型。如果输出仅显示 `data`（如以下示例输出所示），则说明设备上没有文件系统。

     ```
     [ec2-user ~]$ sudo file -s {{/dev/xvdf}}
     /dev/xvdf: data
     ```

     如果设备有文件系统，该命令会显示有关文件系统类型的信息。例如，以下示例输出显示具有 XFS 文件系统的根设备。

     ```
     [ec2-user ~]$ sudo file -s {{/dev/xvda1}}
     /dev/xvda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
     ```
   + 使用 **lsblk -f** 命令获取有关连接到实例的所有设备的信息。

     ```
     [ec2-user ~]$ sudo lsblk -f
     ```

     例如，以下输出显示有三个设备连接到实例 – `nvme1n1`、`nvme0n1` 和 `nvme2n1`。第一列列出了设备及其分区。`FSTYPE` 列显示每个设备的文件系统类型。如果该列对于特定设备为空，则表示该设备没有文件系统。在这种情况下，设备 `nvme1n1` 和设备 `nvme0n1` 上的分区 `nvme0n1p1` 都使用 XFS 文件系统进行格式化，而设备 `nvme2n1` 和设备 `nvme0n1` 上的分区 `nvme0n1p128` 没有文件系统。

     ```
     NAME		FSTYPE	LABEL	UUID						MOUNTPOINT
     nvme1n1	        xfs		7f939f28-6dcc-4315-8c42-6806080b94dd
     nvme0n1
     ├─nvme0n1p1	xfs	    /	90e29211-2de8-4967-b0fb-16f51a6e464c	        /
     └─nvme0n1p128
     nvme2n1
     ```

   如果这些命令的输出显示设备上没有文件系统，则必须创建一个文件系统。

1. <a name="create_file_system_step"></a>（有条件）如果您在上一步中发现设备上存在文件系统，请跳过此步骤。如果您有一个空卷，请使用 **mkfs -t** 命令在该卷上创建一个文件系统。
**警告**  
如果要挂载已具有数据的卷（例如，从快照创建的卷），请勿使用此命令。否则，您会格式化卷并删除现有数据。

   ```
   [ec2-user ~]$ sudo mkfs -t xfs {{/dev/xvdf}}
   ```

   如果出现“找不到 `mkfs.xfs`”错误，请使用以下命令安装 XFS 工具，然后重复上一命令：

   ```
   [ec2-user ~]$ sudo yum install xfsprogs
   ```

1. 使用 **mkdir** 命令创建卷的挂载点目录。挂载点是卷在文件系统树中的位置，以及您在安装卷之后读写文件的位置。下面的示例创建一个名为 `/data` 的目录。

   ```
   [ec2-user ~]$ sudo mkdir {{/data}}
   ```

1. 在您于上一步创建的挂载点目录中挂载卷或分区。

   如果该卷没有分区，请使用以下命令并指定设备名称来挂载完整的卷。

   ```
   [ec2-user ~]$ sudo mount {{/dev/xvdf}} {{/data}}
   ```

   如果该卷有分区，请使用以下命令并指定分区名称来挂载分区。

   ```
   [ec2-user ~]$ sudo mount {{/dev/xvdf1}} {{/data}}
   ```

1. 检查新卷挂载的文件权限，确保您的用户和应用程序可以向该卷写入数据。有关文件权限的更多信息，请参阅 *Linux 文档项目* [文件安全性](https://tldp.org/LDP/intro-linux/html/sect_03_04.html)。

1. 重启实例后，挂载点不会自动保留。要在重启后自动挂载此 EBS 卷，请按照下一个过程进行操作。

### 重启后自动挂载附加的卷
<a name="ebs-mount-after-reboot"></a>

要在每次系统重启时附加附加的 EBS 卷，可在 `/etc/fstab` 文件中为该设备添加一个条目。

您可以在 `/dev/xvdf` 中使用设备名称（例如 `/etc/fstab`），但建议改为使用设备的 128 位通用唯一标识符（UUID）。设备名称可以更改，但 UUID 会在整个分区的使用寿命期间保留。通过使用 UUID，您可以减少系统在硬件重新配置后无法启动的机会。有关更多信息，请参阅[将 Amazon EBS 卷映射到 NVMe 设备名称](identify-nvme-ebs-device.md)。

**重启后自动附加附加卷**

1. （可选）创建 `/etc/fstab` 文件的备份，以便在编辑时误损坏或删除此文件时使用。

   ```
   [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
   ```

1. 使用 **blkid** 命令查找设备的 UUID。记下要在重新启动后挂载的设备的 UUID。在下一步中您将需要用到它。

   例如，以下命令显示实例上装载了两台设备，并显示了这两台设备 UUIDs 的。

   ```
   [ec2-user ~]$ sudo blkid
   /dev/xvda1: LABEL="/" UUID="ca774df7-756d-4261-a3f1-76038323e572" TYPE="xfs" PARTLABEL="Linux" PARTUUID="02dcd367-e87c-4f2e-9a72-a3cf8f299c10"
   /dev/xvdf: UUID="aebf131c-6957-451e-8d34-ec978d9581ae" TYPE="xfs"
   ```

   对于 Ubuntu 18.04，请使用 lsblk 命令。

   ```
   [ec2-user ~]$ sudo lsblk -o +UUID
   ```

1. 使用任何文本编辑器（如 `/etc/fstab` 和 **nano**）打开 **vim** 文件。

   ```
   [ec2-user ~]$ sudo vim /etc/fstab
   ```

1. 将以下条目添加到 `/etc/fstab` 以在指定的挂载点挂载设备。这些字段是 **blkid**（或用于 Ubuntu 18.04 的 **lsblk**）返回的 UUID 值、挂载点、文件系统以及建议的文件系统挂载选项。有关必填字段的更多信息，请运行 `man fstab` 以打开 **fstab** 手册。

   在以下示例中，我们将 UUID 为 `aebf131c-6957-451e-8d34-ec978d9581ae` 的设备挂载到挂载点 `/data`，然后我们使用 `xfs` 文件系统。我们还使用 `defaults` 和 `nofail` 标志。我们指定 `0` 以防止文件系统被转储，并且我们指定 `2` 以指示它是非根设备。

   ```
   UUID={{aebf131c-6957-451e-8d34-ec978d9581ae}}  {{/data}}  {{xfs}}  defaults,nofail  0  2
   ```
**注意**  
如果您要在未附加此卷的情况下启动实例（例如，将卷移动到另一个实例之后），`nofail` 附加选项允许该实例即使在卷附加过程中出现错误时也可启动。Debian 衍生物（包括早于 16.04 的 Ubuntu 版本）还必须添加 `nobootwait` 挂载选项。

1. 要检查条目是否有效，请在 `/etc/fstab` 中运行以下命令以卸载设备，然后挂载所有文件系统。如果未产生错误，则说明 `/etc/fstab` 文件正常，您的文件系统会在重启后自动挂载。

   ```
   [ec2-user ~]$ sudo umount {{/data}}
   [ec2-user ~]$ sudo mount -a
   ```

   如果收到错误消息，请解决文件中的错误。
**警告**  
`/etc/fstab` 文件中的错误可能显示系统无法启动。请勿关闭 `/etc/fstab` 文件中有错误的系统。

   如果您无法确定如何更正 `/etc/fstab` 中的错误并且您在此过程的第一步中创建了一个备份文件，则可以使用以下命令从您的备份文件还原。

   ```
   [ec2-user ~]$ sudo mv /etc/fstab.orig /etc/fstab
   ```

## Windows 实例
<a name="ebs-use-win"></a>

使用以下任一方法在 Windows 实例上启用卷。

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

**使所有带有原始分区的 EBS 卷都可用于 Windows PowerShell**

1. 使用远程桌面登录 Windows 实例。有关更多信息，请参阅[连接到 Windows 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)。

1. 在任务栏上，打开 “开始” 菜单，然后选择 “**Windows PowerShell**”。

1. 在打开的 PowerShell 提示符下使用提供的一系列 Windows PowerShell 命令。此脚本会默认执行以下操作：

   1. 停止命令行管理程序HWDetection 服务。

   1. 枚举分区样式为原始的磁盘。

   1. 创建一个涵盖磁盘和分区类型将支持的最大大小的新分区。

   1. 分配一个可用的驱动器盘符。

   1. 使用指定的文件系统标注将文件系统格式化为 NTFS。

   1. 再次启动命令行管理程序HWDetection 服务。

   ```
   Stop-Service -Name ShellHWDetection
   Get-Disk | Where PartitionStyle -eq 'raw' | Initialize-Disk -PartitionStyle {{MBR}} -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "{{Volume Label}}" -Confirm:$false
   Start-Service -Name ShellHWDetection
   ```

------
#### [ DiskPart command line tool ]

**使 EBS 卷可用于 DiskPart 命令行工具**

1. 使用远程桌面登录 Windows 实例。有关更多信息，请参阅[连接到 Windows 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)。

1. 确定要开放使用的磁盘编号：

   1. 打开 “开始” 菜单，然后选择 “窗口” PowerShell。

   1. 使用 `Get-Disk` Cmdlet 来检索可用磁盘列表。

   1. 在命令输出中，记下您开放使用的磁盘对应的 **Number**（编号）。

1. 创建脚本文件来执行 DiskPart 命令：

   1. 打开 Start（开始）菜单，然后选择 **File Explorer**（文件管理器）。

   1. 导航到某个目录（例如 C:\\）以存储脚本文件。

   1. 选择或右键单击文件夹中的空白区域以打开对话框，将光标置于 **New**（新建）上方以访问上下文菜单，然后选择 **Text Document**（文本文档）。

   1. 命名文本文件 `diskpart.txt`。

1. 将下列命令添加到脚本文件中。您可能需要修改磁盘编号、分区类型、卷标和驱动器盘符。此脚本会默认执行以下操作：

   1. 选择磁盘 1 进行修改。

   1. 将卷配置为使用主引导记录（MBR）分区结构。

   1. 将卷格式化为 NTFS 卷。

   1. 设置卷标。

   1. 为卷分配一个驱动器盘符。
**警告**  
如果您挂载其中已有数据的卷，请不要格式化卷，否则会删除现有数据。

   ```
   select disk {{1}} 
   attributes disk clear readonly 
   online disk noerr
   convert {{mbr}} 
   create partition primary 
   format quick fs=ntfs label="{{volume_label}}" 
   assign letter="{{drive_letter}}"
   ```

   有关更多信息，请参阅[DiskPart 语法和参数](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc766465(v=ws.10)#diskpart-syntax-and-parameters)。

1. 打开命令提示符，导航到脚本所在的文件夹，然后运行以下命令以使该卷可用于指定的磁盘：

   ```
   C:\> diskpart /s diskpart.txt
   ```

------
#### [ Disk Management utility ]

**借助磁盘管理实用工具使 EBS 卷可供使用**

1. 使用远程桌面登录 Windows 实例。有关更多信息，请参阅[连接到 Windows 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)。

1. 开启磁盘管理实用工具。在任务栏上，打开 Windows 徽标的上下文（右键单击）菜单，然后选择**磁盘管理**。
**注意**  
在 Windows Server 2008 中，依次选择 **Start**（开始）、**Administrative Tools**（管理工具）、**Computer Management**（计算机管理）和 **Disk Management**（磁盘管理）。

1. 将卷联机。在下面的窗格中，在左侧面板中打开 EBS 卷磁盘的上下文（右键单击）菜单。选择**联机**。  
![将卷联机。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-volume-online.png)

1. （视情况而定）若未初始化磁盘，您必须初始化磁盘然后才能使用。如果磁盘已初始化，请跳过此步骤。
**警告**  
如果在挂载的卷上已包含数据（例如，公用数据集或通过快照创建的卷），请不要重新格式化卷，否则，将删除现有的数据。

   如果未初始化磁盘，请按以下方式将其初始化：

   1. 在左侧面板中打开磁盘的上下文（右键单击）菜单，然后选择**初始化磁盘**。  
![初始化卷。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-volume-initialize.png)

   1. 在 **Initialize Disk**（初始化磁盘）对话框中，选择一种分区格式，然后选择 **OK**（确定）。  
![初始化卷设置。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-volume-initialize-settings.png)

1. 在右侧面板中打开磁盘的上下文（右键单击）菜单，然后选择**新建简单卷**。  
![挂载简单卷。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume.png)

1. 在 **New Simple Volume Wizard**（新建简单卷向导）中，选择 **Next**（下一步）。  
![开始执行新建简单卷向导。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-welcome.png)

1. 如果要原定设置的最大值，请指定**Simple volume size in MB** [简单卷大小（MB）]，然后选择 **Next**（下一步）。  
![指定卷大小。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-size.png)

1. 如有必要，在 **Assign the following drive letter**（分配以下驱动器盘符）下拉菜单中指定一个您偏好的驱动器盘符，然后选择 **Next**（下一步）。  
![指定驱动器盘符。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-letter.png)

1. 指定 **Volume Label**（卷标）并根据需要调整原定设置，然后选择 **Next**（下一步）。  
![指定设置以格式化卷。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-format.png)

1. 检查设置，然后选择 **Finish**（完成）以应用修改并关闭新建简单卷向导。  
![检查设置，然后完成向导。](http://docs.aws.amazon.com/zh_cn/ebs/latest/userguide/images/windows-2016-new-simple-volume-wizard-finish.png)

------