

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

# 在现有 EC2 Linux 实例上启用自动挂载
<a name="mount-fs-auto-mount-update-fstab"></a>

`/etc/fstab` 文件包含有关文件系统的信息。命令 `mount -a` 在实例启动期间运行，用于挂载 `/etc/fstab` 中列出的所有文件系统。在此过程中，您将在 Amazon EC2 Linux 实例上手动更新 `/etc/fstab`，以便该实例在实例重启时使用 EFS 挂载帮助程序自动重新挂载 EFS 文件系统。

**注意**  
EFS 文件系统不支持在运行 macOS Big Sur 或 Monterey 的 EC2 Mac 实例上使用 `/etc/fstab` 和 EFS 挂载帮助程序自动挂载。相反，可以[将 NFS 与 `/etc/fstab` 结合使用](nfs-automount-efs.md)，在运行 macOS Big Sur 和 Monterey 的 EC2 Mac 实例上自动挂载文件系统。

此方法使用 EFS 挂载帮助程序来挂载文件系统。挂载帮助程序是 `amazon-efs-utils` 工具集的一部分。

这些`amazon-efs-utils`工具可在亚马逊 Linux 和亚马逊 Linux 2 亚马逊机器映像 (AMIs) 上安装。有关 `amazon-efs-utils`的更多信息，请参阅[安装 Amazon EFS 客户端](using-amazon-efs-utils.md)。如果您正在使用其他 Linux 发行版，例如 Red Hat Enterprise Linux (RHEL)，请手动构建并安装 `amazon-efs-utils`。有关更多信息，请参阅 [在其他 Linux 发行版上安装 Amazon EFS 客户端](installing-amazon-efs-utils.md#installing-other-distro)。

## 先决条件
<a name="mount-helper-fstab-prereqs"></a>

在成功实施此过程之前，需要满足以下要求：
+ 已经创建了想要自动重新挂载的 EFS 文件系统。有关更多信息，请参阅 [使用控制台快速创建](creating-using-create-fs.md#gs-step-two-create-efs-resources)。
+ 已经创建了要配置为自动重新挂载 EFS 文件系统的 EC2 Linux 实例。
+ EFS 挂载帮助程序已安装在 EC2 Linux 实例上。有关更多信息，请参阅 [安装 Amazon EFS 客户端](using-amazon-efs-utils.md)。

## 更新 /etc/fstab 文件
<a name="update-fstab-file"></a>

执行以下步骤，更新 EC2 Linux 实例上的 /etc/fstab，以便该实例在实例重启时使用 EFS 挂载帮助程序自动重新挂载 EFS 文件系统。

**更新 EC2 实例上的 /etc/fstab 文件**

1. 连接到您的 EC2 实例。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[连接到您的 EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 在编辑器中打开 `/etc/fstab` 文件。

1. 对于使用 IAM 授权或 EFS 接入点的自动挂载：
   + 要使用 IAM 授权自动挂载到具有实例配置文件的 EC2 实例，请将以下行添加到 `/etc/fstab` 文件中。

     ```
     {{file-system-id}}:/ {{efs-mount-point}} efs _netdev,noresvport,tls,iam 0 0
     ```
   + 要使用凭证文件通过 IAM 授权自动挂载到 Linux 实例，请将以下行添加到 `/etc/fstab` 文件中。

     ```
     {{file-system-id}}:/ {{efs-mount-point}} efs _netdev,noresvport,tls,iam,awsprofile={{namedprofile}} 0 0
     ```
   + 要使用 EFS 访问点自动挂载文件系统，请将以下行添加到 `/etc/fstab` 文件中。

     ```
     {{file-system-id}}:/ {{efs-mount-point}} efs _netdev,noresvport,tls,accesspoint={{access-point-id}} 0 0
     ```
**警告**  
请在自动挂载文件系统时使用 `_netdev` 选项，它用于指定网络文件系统。如果缺少 `_netdev`，您的 EC2 实例可能会停止响应。出现该结果是因为，需要在计算实例启动其网络后初始化网络文件系统。有关更多信息，请参阅 [自动挂载失败，并且实例没有响应](troubleshooting-efs-mounting.md#automount-fails)。

   有关更多信息，请参阅[使用 IAM 授权挂载](mounting-IAM-option.md)和[使用 EFS 接入点进行挂载](mounting-access-points.md)。

1. 保存对文件所做的更改。

**注意**  
在某些情况下，无论挂载的 EFS 文件系统的状态如何，都可能需要启动您的 EC2 实例。在这些情况下，将 `nofail` 选项添加到 `/etc/fstab` 文件中的文件系统条目中。

您添加到 `/etc/fstab` 文件的代码行将执行以下操作。


| 字段 | 说明 | 
| --- | --- | 
| `{{file-system-id}}:/` | 您的 EFS 文件系统的 ID。您可以从控制台获取此 ID，也可以通过编程方式从 CLI 或 AWS SDK 中获取此 ID。 | 
| `{{efs-mount-point}}` | EFS 文件系统在 EC2 实例上的挂载点。 | 
| `efs` | 文件系统的类型。在使用挂载帮助程序时，该类型始终为 `efs`。 | 
| `mount options` | 文件系统的挂载选项。这是一个逗号分隔列表，包含以下选项：+  `_netdev` – 该选项向操作系统指示文件系统位于需要网络访问的设备上。该选项禁止实例挂载文件系统，直到在客户端上启用了网络。 <br />+  `noresvport` – 告知 NFS 客户端在重新建立网络连接时，使用新的传输控制协议（TCP）源端口。这样做有助于确保 EFS 文件系统在网络恢复事件后具有不间断的可用性。 <br />+  `tls` – 启用传输中数据加密。 <br />+ `iam` - 使用此选项可以使用 IAM 授权挂载到具有实例配置文件的 EC2 实例。使用 `iam` 挂载选项还需要使用 `tls` 选项。有关更多信息，请参阅 [使用 IAM 控制文件系统访问](iam-access-control-nfs-efs.md)。<br />+  `awsprofile={{namedprofile}}` – 将此选项与 `iam` 和 `tls` 选项结合使用，以使用凭证文件通过 IAM 授权挂载到 Linux 实例。有关 EFS 访问点的更多信息，请参阅[使用 IAM 控制文件系统访问](iam-access-control-nfs-efs.md)。 <br />+  `accesspoint={{access-point-id}}` – 将此选项与 `tls` 选项结合使用以通过 EFS 接入点进行挂载。有关 EFS 访问点的更多信息，请参阅[使用接入点工作](efs-access-points.md)。  | 
| `0` | 非零值表示应由 `dump` 备份文件系统。对于 EFS，该值应为 `0`。 | 
| `0` | `fsck` 在启动时检查文件系统的顺序。对于 EFS 文件系统，该值应为 `0`，表示 `fsck` 不应在启动时运行。 | 