

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 掛載 EFS 檔案系統
<a name="mounting-fs"></a>

若要掛載 EFS 檔案系統，建議您使用 EFS 掛載協助程式。EFS 掛載協助程式可協助您在執行支援分佈的 EC2 Linux 和 Mac 執行個體上掛載 EFS 檔案系統。掛載協助程式是開放原始碼工具集合的一部分，這些工具會在您安裝 Amazon EFS 用戶端 () 時安裝`amazon-efs-utils`。如需 Amazon EFS 用戶端和支援分佈的詳細資訊，請參閱 [安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。

或者，您可以使用標準 Linux EFS 用戶端手動掛載 EFS 檔案系統。當您在 Amazon EC2 執行個體上掛載檔案系統時，Amazon EFS 支援網路檔案系統版本 4.0 與 4.1 (NFSv4) 通訊協定。

此外，您可以使用 EFS 掛載協助程式或 NFS 來設定 EC2 執行個體，以在執行個體啟動時自動掛載 EFS 檔案系統。

**Topics**
+ [Linux 的掛載考量](mounting-fs-mount-cmd-general.md)
+ [使用 EFS 掛載協助程式掛載 EFS 檔案系統](efs-mount-helper.md)
+ [使用網路檔案系統掛載 EFS 檔案系統](mounting-fs-old.md)
+ [自動掛載 EFS 檔案系統](mount-fs-auto-mount-onreboot.md)
+ [卸載檔案系統](unmounting-fs.md)
+ [教學課程：使用 建立 EFS 檔案系統並將其掛載到 EC2 執行個體 AWS CLI](wt1-getting-started.md)
+ [教學課程：使用內部部署 Linux 用戶端進行掛載](mounting-fs-mount-helper-direct.md)
+ [教學課程：從不同的 VPC 掛載檔案系統](efs-different-vpc.md)
+ [掛載問題疑難排解](troubleshooting-efs-mounting.md)

# Linux 的掛載考量
<a name="mounting-fs-mount-cmd-general"></a>

我們建議設定下列 Linux 掛載選項值：
+ `rsize=1048576`：NFS 用戶端為每個網路 READ 請求接收資料時，設定資料位元組上限。讀取來自 EFS 檔案系統上檔案的資料時，將會套用這個值。我們建議您使用最大的大小 (最多 `1048576`) 以避免效能降低。
+ `wsize=1048576`：NFS 用戶端為每個網路 WRITE 請求傳送資料時，設定資料位元組上限。將資料寫入至 EFS 檔案系統上的檔案時，將會套用這個值。我們建議您使用最大的大小 (最多 `1048576`) 以避免效能降低。
+ `hard`：設定 NFS 用戶端在 NFS 請求逾時的復原行為，因此 NFS 請求會重試直到伺服器回覆為止。我們建議您使用硬掛載選項 (`hard`)，以確保資料的完整性。如果您使用 `soft` 掛載，請將 `timeo` 參數設定為至少 `150` 十分之一秒 (15 秒)。這有助於降低軟掛載固有的資料損壞風險。
+ `timeo=600`：將 NFS 用戶端等待重試 NFS 請求回應的逾時值設為 600 十分之一秒 (60 秒)。如果您必須變更逾時參數 (`timeo`)，我們建議您使用至少為 `150` 的值，相當於 15 秒。這有助於避免效能降低。
+ `retrans=2`：將 NFS 用戶端在請求嘗試進一步復原動作前的重試次數設為 2。
+ `noresvport`：告知 NFS 用戶端在網路連線重新建立時，使用新的傳輸控制通訊協定 (TCP) 來源連接埠。這可讓您確保在網路復原事件後，EFS 檔案系統具有不中斷的可用性。
+ `_netdev`：在 `/etc/fstab` 中出現時，防止用戶端嘗試掛載到 EFS 檔案系統，直到網路完成啟用。

一般而言，避免設定任何與預設值不同的掛載選項，這可能導致效能降低和其他問題。如果您不使用上述的預設值，請注意下列資訊：
+ 變更讀取或寫入的緩衝大小，或停用屬性快取皆可能造成效能降低。
+ Amazon EFS 會忽略來源連接埠。如果您變更 Amazon EFS 來源連接埠，不會有任何影響。
+ Amazon EFS 不支援任何 Kerberos 安全變體。例如，下列掛載命令會失敗。

  ```
   $ mount -t nfs4 -o krb5p <DNS_NAME>:/ /efs/ 
  ```
+ 我們建議您使用檔案系統的 DNS 名稱來掛載該檔案系統。Amazon EFS 會將此名稱解析為與 Amazon EC2 執行個體位於相同可用區域中 EFS 掛載目標的 IP 地址，而無需呼叫外部資源。如果您在與您 EC2 執行個體不同的可用區域中使用掛載目標，您需要為跨可用區域傳送的資料支付標準 EC2 費用。您的檔案系統操作也可能受到延遲。
+ 如需更多掛載選項和預設值的詳細說明，請參閱 Linux 文件。

**注意**  
如果不論掛載的 EFS 檔案系統處於何種狀態，EC2 執行個體都需要啟動，請將 `nofail` 選項新增至 `/etc/fstab` 檔案中的檔案系統項目。

# 使用 EFS 掛載協助程式掛載 EFS 檔案系統
<a name="efs-mount-helper"></a>

安裝 Amazon EFS 用戶端 (`amazon-efs-utils`) 之後，您可以使用 EFS 掛載協助程式，在執行[支援分佈](using-amazon-efs-utils.md#efs-utils-supported-distros)的 EC2 Linux 和 Mac 執行個體上掛載 EFS 檔案系統。Amazon EFS 不支援從 EC2 Windows 執行個體掛載。

**重要**  
我們建議您一律使用最新版本的 `amazon-efs-utils`，以確保成功掛載。例如，2.3 `amazon-efs-utils`之前的 版本不支援掛載 IPv6 地址。

掛載檔案系統時，掛載協助程式會定義稱為 的新網路檔案系統類型`efs`，這與 Linux 中的標準`mount`命令完全相容。掛載協助程式也支援使用 EC2 Linux 執行個體上`/etc/fstab`組態檔案中的項目，在執行個體開機時間自動掛載 EFS 檔案系統。

**警告**  
使用 `_netdev` 選項，此選項用於在自動掛載檔案系統時識別網路檔案系統。若 `_netdev` 已遺失，EC2 執行個體可能會停止回應。此結果是因為網路檔案系統在運算執行個體開始聯網後需要初始化。如需詳細資訊，請參閱[自動掛載失敗且執行個體沒有回應](troubleshooting-efs-mounting.md#automount-fails)。

您可以指定下列一個屬性來掛載檔案系統：
+ **檔案系統 DNS 名稱**：如果您使用檔案系統 DNS 名稱，且掛載協助程式無法解析該名稱，例如當您在不同的 VPC 中掛載檔案系統時，該名稱將回復為使用掛載目標 IP 地址。如需詳細資訊，請參閱[從另一個 AWS 帳戶 或 VPC 掛載 EFS 檔案系統](manage-fs-access-vpc-peering.md)。
+ **檔案系統 ID**：如果您使用檔案系統 ID，則掛載協助程式會將其解析為掛載目標彈性網絡介面 (ENI) 的本機 IP 地址，而不呼叫外部資源。
+ **掛載目標 IP 地址**：您可以使用一個檔案系統掛載目標的 IP 地址。

您可以在 Amazon EFS 主控台中找到所有這些屬性的值。您可以在**連接**熒幕中找到檔案系統 DNS 名稱。

當傳輸中的資料加密宣告為 EFS 檔案系統的掛載選項時，掛載協助程式會初始化用戶端`stunnel`程序和稱為 的主管程序`amazon-efs-mount-watchdog`。此 `amazon-efs-mount-watchdog` 程序會監控 TLS 掛載的運作狀態，並在第一次透過 TLS 掛載 EFS 檔案系統時自動啟動。如果您的用戶端是在 Linux 上執行，則此程序會根據 Linux 分佈由 `upstart` 或 `systemd` 來管理。對於在支援 macOS 上執行的用戶端，由 `launchd` 管理。

`Stunnel` 是一種開放原始碼多功能網路轉送。用戶端 `stunnel` 程序會在本機連接埠上接聽傳入流量，以及掛載協助程式會將 NFS 用戶端流量重新導向到此本機連接埠。

掛載協助程式使用 TLS 版本 1.2 來與檔案系統通訊。使用 TLS 需要憑證，而且這些憑證是由信任的 Amazon 憑證授權單位所簽署。如需加密運作方式的詳細資訊，請參閱 [Amazon EFS 的資料加密](encryption.md)。

**Topics**
+ [EFS 掛載協助程式使用的掛載設定](mount-helper-setting.md)
+ [取得支援日誌](mount-helper-logs.md)
+ [使用 EFS 掛載協助程式的先決條件](mount-helper-prerequisites.md)
+ [使用 EFS 掛載協助程式在 EC2 Linux 執行個體上掛載](mounting-fs-mount-helper-ec2-linux.md)
+ [使用 EFS 掛載協助程式在 EC2 Mac 執行個體上掛載](mounting-fs-mount-helper-ec2-mac.md)
+ [從不同的 掛載 EFS 檔案系統 AWS 區域](mount-different-region.md)
+ [掛載單區域檔案系統](mounting-one-zone.md)
+ [使用 IAM 授權掛載](mounting-IAM-option.md)
+ [使用 EFS 存取點進行掛載](mounting-access-points.md)
+ [將 EFS 掛載到多個 EC2 執行個體](mount-multiple-ec2-instances.md)
+ [從另一個 AWS 帳戶 或 VPC 掛載 EFS 檔案系統](manage-fs-access-vpc-peering.md)

# EFS 掛載協助程式使用的掛載設定
<a name="mount-helper-setting"></a>

Amazon EFS 掛載協助程式用戶端使用下列 Amazon EFS 優化的掛載選項：
+ `nfsvers=4.1`：在 EC2 執行個體上掛載時使用

  `nfsvers=4.0`：在執行 macOS Big Sur、Monterey 和 Ventura 的支援 EC2 Mac 執行個體上掛載使用。
+ `rsize=1048576`：設定 NFS 用戶端為每個網路 READ 請求接收的資料位元組上限為 1048576 (最大可用值)，以避免效能降低。
+ `wsize=1048576`：設定 NFS 用戶端為每個網路 WRITE 請求發送的資料位元組上限為 `1048576` (最大可用值)，以避免效能降低。
+ `hard`：設定 NFS 用戶端在 NFS 請求逾時的復原行為，因此 NFS 請求會重試直到伺服器回覆為止，以確保資料完整。
+ `timeo=600`：將 NFS 用戶端等待重試 NFS 請求回應的逾時值設為 600 十分之一秒 (60 秒)，以避免效能降低。
+ `retrans=2`：將 NFS 用戶端在請求嘗試進一步復原動作前的重試次數設為 2。
+ `noresvport`：告知 NFS 用戶端在網路連線重新建立時，使用新的傳輸控制通訊協定 (TCP) 來源連接埠。使用 `noresvport` 選項，以確保您的 EFS 檔案系統在重新連線或網路復原事件發生後持續可用。
+ `mountport=2049`：僅在執行 macOS Big Sur、Monterey 和 Ventura 的 EC2 Mac 執行個體上掛載時使用。

# 取得支援日誌
<a name="mount-helper-logs"></a>

EFS 掛載協助程式具有 EFS 檔案系統的內建記錄。您可以與 AWS Support 共用這些日誌，以進行故障診斷。您可以使用 EFS 掛載協助程式找到儲存在 `/var/log/amazon/efs` 用戶端上的日誌。這些日誌適用於 EFS 掛載協助程式，stunnel 程序 (預設禁用) 和監控 stunnel 程序的 `amazon-efs-mount-watchdog` 程序。

**注意**  
程序`amazon-efs-mount-watchdog`可確保每個掛載的 stunnel 程序正在執行，並在卸載 EFS 檔案系統時停止 stunnel 程序。如果因為某些原因而導致 stunnel 程序意外終止，監視程式程序會將其重新啟動。

您可以在 `/etc/amazon/efs/efs-utils.conf` 中變更日誌的組態。若要使任何日誌變更生效，您需要使用 EFS 掛載協助程式卸載和重新掛載檔案系統。掛載協助程式與監視程式日誌的日誌容量限制為 20 MiB。stunnel 程序的日誌依預設是停用的。

**重要**  
您可以啟用 stunnel 程序日誌的記錄。然而，啟用 stunnel 日誌可能會在您的檔案系統佔用極大的空間。

# 使用 EFS 掛載協助程式的先決條件
<a name="mount-helper-prerequisites"></a>

您可以使用 Amazon EFS 掛載協助程式，在 Amazon EC2 執行個體上掛載 EFS 檔案系統。 Amazon EC2 若要使用掛載協助程式，您需要下列資訊：
+ **掛載的檔案系統 ID**：EFS 掛載協助程式將檔案系統 ID 解析為掛載目標彈性網絡介面 (ENI) 的本機 IP 地址，而不呼叫外部資源。
+ **EFS 掛載目標** – 您可以在虛擬私有雲端 (VPC) 中建立掛載目標。如果您使用服務建議設定在主控台中建立檔案系統，則會在 AWS 區域 檔案系統所在的每個可用區域中建立掛載目標。如需關於建立掛載目標的說明，請參閱 [管理掛載目標](accessing-fs.md)。
**注意**  
建議您在新建立的掛載目標的生命週期狀態**可用**之後等待 60 秒，然後再通過 DNS 掛載檔案系統。此等待可讓 DNS 記錄在 AWS 區域 檔案系統所在的 中完全傳播。

  如果您在與您 EC2 執行個體不同的可用區域中使用掛載目標，您需要為跨可用區域傳送的資料支付標準 EC2 費用。您的檔案系統操作也可能受到延遲。
+ 從其他可用區域掛載單區域檔案系統：
  + **檔案系統可用區域名稱**：如果您正在掛載 EFS 單區域檔案系統，且該檔案系統位於與 EC2 執行個體不同可用區域。
  + **掛載目標 DNS 名稱**：或者，您可以指定掛載目標的 DNS 名稱來替代可用區域名稱。
+ **執行其中一個支援 Linux 或 macOS 發行版本的 EC2 執行個體** – 使用掛載協助程式掛載檔案系統的支援發行版本如下：
  + Amazon Linux 2
  + Amazon Linux 2023
  + Amazon Linux 2017.09 和更新版本
  + macOS Big Sur
  + Red Hat Enterprise Linux (和例如 CentOS 之類的導數) 版本 7 和更新版本
  + Ubuntu 16.04 LTS 和更新版本
**注意**  
執行 macOS Big Sur 的 EC2 Mac 執行個體支援 NFS 4.0。
+ **EFS 掛載協助程式安裝在 EC2 執行個體上** – 掛載協助程式是公用程式`amazon-efs-utils`套件中的工具。如需安裝 的詳細資訊`amazon-efs-utils`，請參閱 [安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。
+ **在 VPC 中的 EC2 執行個體**：正在連接的 EC2 執行個體，必須位於以 Amazon VPC 服務為基礎的虛擬私有雲端 (VPC) 中。它還必須設定為使用 提供的 DNS 伺服器 AWS。如需有關 Amazon DNS 伺服器的資訊，請參閱《[Amazon VPC 使用者指南》中的 Amazon VPC 中的 DHCP 選項集](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。 **
+ **VPC 已啓用 DNS 主機名稱**：連接的 EC2 執行個體的 VPC 必須已啟用 DNS 主機名稱。如需詳細資訊，請參閱《*Amazon* [ VPC 使用者指南》中的 VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-viewing)。
+ **對於不同 中的 EC2 執行個體和檔案系統 AWS 區域** – 如果您要掛載的 EC2 執行個體和檔案系統位於不同位置 AWS 區域，您將需要編輯`efs-utils.conf`檔案中的 `region` 屬性。如需詳細資訊，請參閱[從不同的 掛載 EFS 檔案系統 AWS 區域](mount-different-region.md)。

# 使用 EFS 掛載協助程式在 EC2 Linux 執行個體上掛載
<a name="mounting-fs-mount-helper-ec2-linux"></a>

此程序需要下列項目：
+ 您已在 Amazon EC2 執行個體上安裝 `amazon-efs-utils`套件。如需詳細資訊，請參閱[手動安裝 Amazon EFS 用戶端](installing-amazon-efs-utils.md)。
+ 您已經為檔案系統建立了掛載目標。如需詳細資訊，請參閱[管理掛載目標](accessing-fs.md)。

**在 EC2 Linux 執行個體上使用掛載協助程式掛載 EFS 檔案系統**

1. 透過 Secure Shell (SSH) 打開 EC2 執行個體的終端機，並使用適當的使用者名稱登入。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 使用下列指令建立要用作檔案系統掛載點的目錄 `efs`：

   ```
   sudo mkdir efs
   ```

1. 執行下列一項命令來掛載檔案系統。
**注意**  
如果 EC2 執行個體和您要掛載的檔案系統位於不同的 AWS 區域區域，請參閱 [從不同的 掛載 EFS 檔案系統 AWS 區域](mount-different-region.md) 以編輯 `efs-utils.conf` 檔案中的 `region` 屬性。
   + 使用檔案系統 ID 掛載：

     ```
     sudo mount -t efs file-system-id efs-mount-point/
     ```

     請在 `file-system-id` 和 `efs` 中使用您正在掛載的檔案系統 ID 來取代 *efs-mount-point*。

     ```
     sudo mount -t efs fs-abcd123456789ef0 efs/
     ```

     或者，如果您想要使用傳輸中資料的加密，可以使用下列命令來掛載檔案系統。

     ```
     sudo mount -t efs -o tls fs-abcd123456789ef0:/ efs/
     ```
   + 使用檔案系統 DNS 名稱掛載：

     ```
     sudo mount -t efs -o tls file-system-dns-name efs-mount-point/
     ```

     ```
     sudo mount -t efs -o tls fs-abcd123456789ef0.efs.us-east-2.amazonaws.com efs/
     ```
   + 使用下列掛載目標 IP 地址掛載：

     ```
     sudo mount -t efs -o tls,mounttargetip=mount-target-ip file-system-id efs-mount-point/
     ```

     ```
     sudo mount -t efs -o tls,mounttargetip=192.0.2.0 fs-abcd123456789ef0 efs/
     ```

   您可以在**連接**對話方塊中檢視和複製要掛載檔案系統的確切指令。

   1. 在 Amazon EFS 主控台中，請選擇您要掛載的檔案系統，顯示其詳細資訊頁面。

   1. 若要顯示用於此檔案系統的掛載指令，請選擇右上角的**「連接」**。

      **連接**熒幕會顯示用於掛載檔案系統的確切指令，如下列方法：
      + (**通過 DNS 掛載**) 使用搭載 EFS 掛載協助程式或 NFS 用戶端的檔案系統 DNS 名稱。
      + (**通過 IP 掛載**) 在 NFS 用戶端已選「可用區」中，使用掛載目標 IP 地址來掛載。

# 使用 EFS 掛載協助程式在 EC2 Mac 執行個體上掛載
<a name="mounting-fs-mount-helper-ec2-mac"></a>

此程序需要下列項目：
+ 您已在 Amazon EC2 Mac 執行個體上安裝 `amazon-efs-utils`套件。如需詳細資訊，請參閱[執行 macOS Big Sur、macOS Monterey 或 macOS Ventura 時，將 Amazon EFS 安裝在 EC2 Mac 執行個體上。](installing-amazon-efs-utils.md#install-efs-utils-macOS)。
+ 您已經為檔案系統建立了掛載目標。您可以在建立檔案系統時建立掛載目標，並將其新增至現有檔案系統中。如需詳細資訊，請參閱[管理掛載目標](accessing-fs.md)。
+ 您正在執行 macOS Big Sur、Monterey 或 Ventura 的 EC2 Mac 執行個體上掛載檔案系統。(不支援其他 macOS 版本)。

**注意**  
僅支援執行 macOS Big Sur、Monterey 和 Ventura 的 EC2 Mac 執行個體。其他 macOS 版本不支援搭配 Amazon EFS 使用。

**在執行 EFSmacOS Big Sur、Montery 或 Ventura 的 EC2 Mac 執行個體上使用 EFS 掛載協助程式掛載 EFS 檔案系統**

1. 透過 Secure Shell (SSH) 打開 EC2 執行個體的終端機，並使用適當的使用者名稱登入。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 使用下列指令建立要用作檔案系統掛載點的目錄：

   ```
   sudo mkdir efs
   ```

1. 執行下列命令來掛載檔案系統。
**注意**  
依預設，無論您是否使用掛載命令中的 `tls` 選項，EFS 掛載協助程式在 EC2 Mac 執行個體上掛載時都會使用傳輸中加密。

   ```
   sudo mount -t efs file-system-id efs-mount-point/
   ```

   ```
   sudo mount -t efs fs-abcd123456789ef0 efs/
   ```

   您也可以在掛載時使用 `tls` 選項。

   ```
   sudo mount -t efs -o tls fs-abcd123456789ef0:/ efs
   ```

   若要在不使用傳輸中加密的情況下於 EC2 Mac 執行個體上掛載檔案系統，請使用 `notls` 選項，如下列命令所示。

   ```
   sudo mount -t efs -o notls file-system-id efs-mount-point/
   ```

   您可以在管理主控台的**連接**對話方塊中檢視和複製要掛載檔案系統的確切指令，如下所述。

   1. 在 Amazon EFS 主控台中，請選擇您要掛載的檔案系統，顯示其詳細資訊頁面。

   1. 若要顯示用於此檔案系統的掛載指令，請選擇右上角的**「連接」**。

      **連接**熒幕會顯示用於掛載檔案系統的確切指令，如下列方法：
      + (**通過 DNS 掛載**) 使用搭載 EFS 掛載協助程式或 NFS 用戶端的檔案系統 DNS 名稱。
      + (**通過 IP 掛載**) 在 NFS 用戶端已選「可用區」中，使用掛載目標 IP 地址來掛載。

# 從不同的 掛載 EFS 檔案系統 AWS 區域
<a name="mount-different-region"></a>

若要從與檔案系統 AWS 區域 不同的 EC2 執行個體掛載 EFS 檔案系統，您必須在 `efs-utils.conf` 檔案中編輯 `region` 屬性值。

**在 中編輯 `region` 屬性 `efs-utils.conf`**

1. 透過 Secure Shell (SSH) 存取 EC2 執行個體的終端機，並使用適當的使用者名稱登入。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 使用您偏好的文字編輯器開啟 `/etc/amazon/efs/efs-utils.conf` 檔案。

1. 找出下面的一行：

   ```
   #region = us-east-1
   ```

   1. 取消註解該行。

   1. 如果檔案系統不在 `us-east-1`區域中，請將 `us-east-1`取代為檔案系統所在區域的 ID。

   1. 儲存變更。

1. 新增跨區域掛載託管項目。如需如何執行此作業的資訊，請參閱 [步驟 3：新增掛載目標的主機項目](efs-different-vpc.md#wt6-efs-utils-step3)。

1. 使用 EFS 掛載協助程式為 [Linux](mounting-fs-mount-helper-ec2-linux.md) 或 [Mac](mounting-fs-mount-helper-ec2-mac.md) 執行個體掛載檔案系統。

# 掛載單區域檔案系統
<a name="mounting-one-zone"></a>

EFS 單區域檔案系統僅支援單一掛載目標，該目標位於與檔案系統相同的可用區域。您無法新增其他掛載目標。本區段描述了掛載單區域檔案系統時應考量的事項。

您可以使用與檔案系統掛載目標位於相同可用區域的 Amazon EC2 運算執行個體存取 EFS 檔案系統，以避免在可用區域間收取資料傳輸費用，並獲得更好的效能。

本節包含下列程序：
+ 您已經在 EC2 執行個體上安裝了 `amazon-efs-utils package`。如需詳細資訊，請參閱[安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。
+ 您已經為檔案系統建立了掛載目標。如需詳細資訊，請參閱[管理掛載目標](accessing-fs.md)。

## 在其他可用區域的 EC2 上掛載單區域檔案系統
<a name="mounting-one-zone-efs-util"></a>

如果您要在位於不同可用區域的 Amazon EC2 執行個體上掛載單區域檔案系統，則必須在掛載協助程式掛載命令中指定檔案系統的可用區域名稱或檔案系統掛載目標的 DNS 名稱。

使用下列指令建立要用作檔案系統掛載點的目錄 `efs`：

```
sudo mkdir efs
```

使用下列命令來通過 EFS 掛載協助程式掛載檔案系統。此命令指定檔案系統的可用區域名稱。

```
sudo mount -t efs -o az=availability-zone-name,tls file-system-id mount-point/
```

這是具有下列示例值的命令：

```
sudo mount -t efs -o az=us-east-1a,tls fs-abcd1234567890ef efs/
```

下列指令會掛載檔案系統，並指定檔案系統掛載目標的 DNS 名稱。

```
sudo mount -t efs -o tls mount-target-dns-name mount-point/
```

這是具有掛載目標 DNS 名稱範例的命令。

```
sudo mount -t efs -o tls us-east-1a.fs-abcd1234567890ef9.efs.us-east-1.amazonaws.com efs/
```

### 使用 EFS 掛載協助程式，在不同的可用區域中自動掛載單區檔案系統
<a name="automount-one-zone-efs-utils"></a>

如果您正在位於不同可用區域的 EC2 執行個體上使用 `/etc/fstab` 來掛載 EFS單區域檔案系統，則必須在 `/etc/fstab` 項目中指定檔案系統可用區域名稱或檔案系統掛載目標的 DNS 名稱。

```
availability-zone-name.file-system-id.efs.aws-region.amazonaws.com:/ efs-mount-point efs defaults,_netdev,noresvport,tls 0 0
```

```
us-east-1a.fs-abc123def456a7890.efs.us-east-1.amazonaws.com:/ efs-one-zone efs defaults,_netdev,noresvport,tls 0 0
```

### 使用 NFS 自動掛載單區域檔案系統
<a name="automnt-one-zone-nfs"></a>

如果您使用 `/etc/fstab` 在位於不同可用區域的 EC2 執行個體上使用單區域儲存來掛載 EFS 檔案系統，則必須在 `/etc/fstab`項目中使用檔案系統的 DNS 名稱來指定檔案系統的可用區域名稱。

```
availability-zone-name.file-system-id.efs.aws-region.amazonaws.com:/ efs-mount-point nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0
```

```
us-east-1a.fs-abc123def456a7890.efs.us-east-1.amazonaws.com:/ efs-one-zone nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0
```

如需關於如何編輯 `/etc/fstab` 檔案和用於此命令的值詳細資訊，請參閱 [自動掛載 EFS 檔案系統使用 NFS 在 EC2 Linux 或 Mac 執行個體上啟用自動掛載](nfs-automount-efs.md)。

## 在其他 AWS 運算執行個體上使用單區域檔案系統掛載檔案系統
<a name="mounting-one-zone-other-compute-instances"></a>

當您搭配 Amazon Elastic Container Service、Amazon Elastic Kubernetes Service 或 使用單區域檔案系統時 AWS Lambda，您需要將服務設定為使用 EFS 檔案系統所在的相同可用區域，如下所示，並如以下各節所述。

![\[AWS 運算連線至 EFS 單區域檔案系統的執行個體。\]](http://docs.aws.amazon.com/zh_tw/efs/latest/ug/images/efs-mount-onezone.png)


### 從 Amazon Elastic Container Service 処連接
<a name="mount-one-zone-ecs"></a>

您可以搭配 Amazon ECS 使用 EFS 檔案系統，在容器執行個體機群之間共用檔案系統資料，讓您的任務可以存取相同的持久性儲存體，無論其登陸的執行個體為何。若要搭配 Amazon ECS 使用 EFS One Zone 檔案系統，您應該在啟動任務時，只選擇與您檔案系統位於相同可用區域的子網路。如需詳細資訊，請參閱《Amazon Elastic Container Service 開發人員指南》中的 [Amazon EFS 磁碟區](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html)。

### 從 Amazon Elastic Kubernetes Service 処連接
<a name="mount-one-zone-eks"></a>

從 Amazon EKS 掛載單區域檔案系統時，您可以使用支援 EFS 存取點的 Amazon EFS [容器儲存介面](https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html) (CSI) 驅動程式，在 Amazon EKS 或自我管理 Kubernetes 叢集中的多個 Pod 之間共用檔案系統。Amazon EFS CSI 驅動程式安裝在 Fargate 堆疊中。搭配 EFS One Zone 檔案系統使用 Amazon EFS CSI 驅動程式時，您可以在啟動 Pod 時使用 `nodeSelector`選項，以確保它在與檔案系統相同的可用區域內排程。

### 從 連線 AWS Lambda
<a name="mount-one-zone-lambda"></a>

您可以搭配 使用 Amazon EFS AWS Lambda ，跨函數叫用共用資料、讀取大型參考資料檔案，以及將函數輸出寫入持久性和共用存放區。Lambda 會將函數執行個體安全地連接到位於相同可用區域和子網路中的 EFS 掛載目標。當您將 Lambda 與單區域檔案系統搭配使用時，請將函數設定為僅啟動調用至與檔案系統位於相同可用區域的子網路中。

# 使用 IAM 授權掛載
<a name="mounting-IAM-option"></a>

若要使用 (IAM) 授權在 Linux 執行個體上掛載 EFS 檔案系統，請使用 EFS 掛載協助程式。 AWS Identity and Access Management 如需 NFS 用戶端 IAM 授權的詳細資訊，請參閱[使用 IAM 控制檔案系統的存取](iam-access-control-nfs-efs.md)。

您需要在下列各節中建立目錄，以用作檔案系統掛載點。您可以使用以下命令建立掛載點目錄 `efs`：

```
sudo mkdir efs
```

然後，您可以使用 `efs` 取代 `efs-mount-point` 的執行個體。

## 使用 EC2 執行個體設定檔與 IAM 進行掛載
<a name="mount-iam-ec2-profile"></a>

如果您藉助 IAM 授權掛載到具有執行個體設定檔的 Amazon EC2 執行個體上，請使用 `tls` 和 `iam` 掛載選項，如下所示。

```
$ sudo mount -t efs -o tls,iam file-system-id efs-mount-point/
```

若要使用 IAM 授權自動掛載到具有執行個體描述檔的 EC2 執行個體，請將以下行新增至 EC2 執行個體上的 `/etc/fstab` 檔案。

```
file-system-id:/ efs-mount-point efs _netdev,tls,iam 0 0
```

## 使用命名描述檔與 IAM 進行掛載
<a name="mount-iam-creds-file"></a>

您可以使用登入資料檔案 中的 IAM AWS CLI 登入資料`~/.aws/credentials`或組態檔案 ，透過 AWS CLI IAM 授權進行掛載`~/.aws/config`。如果未指定 `"awsprofile"`，則會使用「預設」設定檔。

若要使用憑證檔案來掛載 IAM 授權至 Linux 執行個體，請使用 `tls`、`awsprofile` 和 `iam` 掛載選項，如下所示。

```
$ sudo mount -t efs -o tls,iam,awsprofile=namedprofile file-system-id efs-mount-point/
```

若要使用憑證檔案以 IAM 授權自動掛載至 Linux 執行個體，請將以下行新增至 EC2 執行個體上的 `/etc/fstab` 檔案。

```
file-system-id:/ efs-mount-point efs _netdev,tls,iam,awsprofile=namedprofile 0 0
```

# 使用 EFS 存取點進行掛載
<a name="mounting-access-points"></a>

您可以使用 EFS 掛載協助程式來掛載使用存取點的 EFS 檔案系統。

**注意**  
使用 EFS 存取點掛載檔案系統時，您必須為檔案系統設定一或多個掛載目標。

在使用存取點掛載檔案系統時，除了一般掛載選項以外，掛載命令還需要包含 `access-point-id` 和 `tls` 掛載選項。範例顯示如下。

```
$ sudo mount -t efs -o tls,accesspoint=access-point-id file-system-id efs-mount-point
```

若要使用存取點自動掛載檔案系統，請將下列行新增到 EC2 執行個體上的 `/etc/fstab` 檔案中。

```
file-system-id efs-mount-point efs _netdev,tls,accesspoint=access-point-id 0 0
```

如需 EFS 存取點的詳細資訊，請參閱[使用存取點](efs-access-points.md)。

# 將 EFS 掛載到多個 EC2 執行個體
<a name="mount-multiple-ec2-instances"></a>

您可以遠端安全地將 EFS 檔案系統掛載到多個 Amazon EC2 執行個體，而無需使用 AWS Systems Manager Run Command 登入執行個體。如需 AWS Systems Manager Run Command 的詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的 [AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html)。使用此方法掛載 EFS 檔案系統之前，必須具備下列先決條件：

1. EC2 執行個體會使用包含 `AmazonElasticFileSystemsUtils` 許可政策的執行個體設定檔進行啟動。如需詳細資訊，請參閱[步驟 1：使用所需許可設定 IAM 執行個體設定檔。](setting-up-aws-sys-mgr.md#configure-sys-mgr-iam-instance-profile)。

1. Amazon EFS 用戶端版本 1.28.1 版或更新版本 (amazon-efs-utils t 套件) 已安裝在 EC2 執行個體上。您可以使用 AWS Systems Manager 在執行個體上自動安裝套件。如需詳細資訊，請參閱[步驟 2：設定 State Manager 使用的關聯](setting-up-aws-sys-mgr.md#config-sys-mgr-association)。

**使用主控台將多個 EFS 檔案系統掛載到多個 EC2 執行個體上**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **執行命令**。

1. 選擇 **Run a command** (執行指令)。

1. 在**命令**搜尋欄位中輸入 **AWS-RunShellScript**。

1. 選取 **AWS-RunShellScript**。

1. 在**命令參數**中，為您想掛載的每個 EFS 檔案系統輸入要使用的掛載命令。例如：

   ```
   sudo mount -t efs -o tls fs-12345678:/ /mnt/efs
   sudo mount -t efs -o tls,accesspoint=fsap-12345678 fs-01233210 /mnt/efs
   ```

   如需關於使用 Amazon EFS 用戶端掛載 EFS 掛載命令的詳細資訊，請參閱 [使用 EFS 掛載協助程式在 EC2 Linux 執行個體上掛載](mounting-fs-mount-helper-ec2-linux.md) 或 [使用 EFS 掛載協助程式在 EC2 Mac 執行個體上掛載](mounting-fs-mount-helper-ec2-mac.md)。

1. 選取您希望命令執行的目標 AWS Systems Manager 受管 EC2 執行個體。

1. 進行任何您想要的其他設定。然後選擇**執行**以執行命令，並掛載命令中指定的 EFS 檔案系統。

   執行命令之後，您可以在命令歷程中查看其狀態。

# 從另一個 AWS 帳戶 或 VPC 掛載 EFS 檔案系統
<a name="manage-fs-access-vpc-peering"></a>

您可以使用 EFS 用戶端的 IAM 授權來掛載 EFS 檔案系統，並使用 EFS 掛載協助程式來掛載 EFS 存取點。根據預設，EFS 掛載協助程式會使用網域名稱服務 (DNS) 來解析 EFS 掛載目標的 IP 地址。如果您要從不同帳戶或虛擬私有雲端 (VPC) 掛載檔案系統，則需手動解析 EFS 掛載目標。

您可在下文中找到判斷正確 EFS 掛載目標 IP 地址以供 NFS 用戶端使用的說明。您也可以找到使用該 IP 地址設定用戶端以掛載 EFS 檔案系統的說明。

**Topics**
+ [從另一個 掛載 EFS 檔案系統 AWS 帳戶](mount-fs-diff-account-same-vpc.md)
+ [從另一個 VPC 掛載 EFS 檔案系統](mount-fs-different-vpc.md)

# 從另一個 掛載 EFS 檔案系統 AWS 帳戶
<a name="mount-fs-diff-account-same-vpc"></a>

使用共用 VPCs，您可以從 AWS 帳戶 Amazon EC2 執行個體中掛載由另一個執行個體擁有的 EFS 檔案系統 AWS 帳戶。如需設定共用 VPC 的詳細資訊，請參閱《Amazon [ VPC 對等互連指南》中的與其他帳戶共用](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html)您的 VPC。 **

在您設定 VPC 共用之後，EC2 執行個體就可以使用網域名稱系統 (DNS) 名稱解析或 EFS 掛載協助程式，掛載 EFS 檔案系統。我們建議您使用 EFS 掛載協助程式掛載 EFS 檔案系統。

# 從另一個 VPC 掛載 EFS 檔案系統
<a name="mount-fs-different-vpc"></a>

使用 VPC 對等互連或傳輸閘道來連接 VPC 時，即使 VPC 屬於不同帳戶，Amazon EC2 執行個體仍可在另一個 VPC 存取 EFS 檔案系統。

您無法將 DNS 名稱解析用於在另一個 VPC 中的 EFS 掛載點。若要掛載您的 EFS 檔案系統，請在對應的可用區域中使用掛接點的 IP 地址。

或者，您可以使用 Amazon Route 53 做為 DNS 服務。在 Route 53 中，您可以透過建立私有託管區域和資源記錄集，從另一個 VPC 解析 EFS 掛載目標 IP 地址。如需如何執行此操作的詳細資訊，請參閱《*Amazon Route 53 開發人員指南*》中的[使用私有託管區域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)。

## 先決條件
<a name="mount-fs-different-vpc-prerequisites"></a>

使用下列程序之前，請先執行以下步驟：
+ 要在掛載 EFS 檔案系統的運算執行個體上安裝 Amazon EFS 用戶端，這是公用程式 `amazon-efs-utils` 集的一部分。您可以使用包含在中 `amazon-efs-utils` 的 EFS 掛載協助程式來掛載檔案系統。如需安裝 `amazon-efs-utils` 的指示，請參閱[安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。
+ 針對您附加到執行個體的 IAM 角色，允許 IAM 政策中的 `ec2:DescribeAvailabilityZones` 動作。建議您將 AWS 受管政策連接至 `AmazonElasticFileSystemsUtils` IAM 實體，以提供實體所需的許可。
+ 從另一個 掛載時 AWS 帳戶，請更新檔案系統資源政策，以允許其他主體 ARN `elasticfilesystem:DescribeMountTarget`的動作 AWS 帳戶。例如：

  ```
  {
      "Id": "access-point-example03",
      "Statement": [
          {
              "Sid": "access-point-statement-example03",
              "Effect": "Allow",
              "Principal": {"AWS": "arn:aws:iam::555555555555:root"},
              "Action": "elasticfilesystem:DescribeMountTargets",
              "Resource": "arn:aws:elasticfilesystem:us-east-2:111122223333:file-system/fs-12345678"
          }
      ]
  }
  ```

  如需關於 EFS 檔案系統資源政策的詳細資訊，請參閱 [Amazon EFS 中的資源型政策](security_iam_service-with-iam.md#security_iam_service-with-iam-resource-based-policies)。
+ 安裝 botocore。當將檔案系統掛載到另一個 VPC 上而檔案系統 DNS 名稱無法解析時，EFS 用戶端會使用 botocore 來擷取掛載目標 IP 地址。如需詳細資訊，請參閱 `amazon-efs-utils` README 檔案中[安裝 botocore](https://github.com/aws/efs-utils#Install-botocore)。
+ 設定 VPC 對等互連或 VPC 傳輸閘道。

  您必須使用 VPC 對等連接或 VPC 傳輸閘道來連接用戶端的 VPC 和 EFS 檔案系統的 VPC。使用 VPC 對等互連或傳輸閘道來連接 VPC 時，即使 VPC 屬於不同帳戶，Amazon EC2 執行個體仍可在另一個 VPC 存取 EFS 檔案系統。

  *傳輸閘道*是網路傳輸中樞，您可以用於互相連接 VPC 和現場部署網路。如需使用 VPC 傳輸閘道的詳細資訊，請參閱《Amazon VPC 傳輸閘道指南》**中的[開始使用傳輸閘道](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-getting-started.html)。

  *VPC 對等連接*是在兩個 VPC 之間的網路連線。這種連線類型可讓您使用私有網際網路通訊協定第 4 版 (IPv4) 或網際網路通訊協定第 6 版 (IPv6) 地址，在兩者間路由流量。您可以使用 VPC 對等互連來連接相同內 AWS 區域 或之間的 VPCs AWS 區域。如需 VPC 互連的詳細資訊，請參閱《Amazon VPC 互連指南》**中的[什麼是 VPC 互連？](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)。

為確保檔案系統具備高可用性，建議您一律使用與 NFS 用戶端所在同一可用區域的 EFS 掛載目標 IP 地址。如果要掛載另一個帳戶中的 EFS 檔案系統，請確保 NFS 用戶端和 EFS 掛載目標位於相同的可用區域 ID。此要求適用的原因是，AZ 名稱在各個帳戶間可能會有不同。

**使用 IAM 或存取點掛載另一個 VPC 中的 EFS 檔案系統**

1. 連線至 EC2 執行個體。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 您可以使用下列命令來建立掛載檔案系統的目錄。

   ```
   $ sudo mkdir /mnt/efs
   ```

1. 若要透過 IAM 授權掛載檔案系統，請使用下列命令：

   ```
   $ sudo mount -t efs -o tls,iam file-system-dns-name /mnt/efs/
   ```

   如需搭配使用 IAM 授權與 EFS 的詳細資訊，請參閱[使用 IAM 控制檔案系統的存取](iam-access-control-nfs-efs.md)。

   若要透過 EFS 存取點掛載檔案系統，請使用下列命令：

   ```
   $ sudo mount -t efs -o tls,accesspoint=access-point-id file-system-dns-name /mnt/efs/
   ```

   如需 EFS 存取點的詳細資訊，請參閱[使用存取點](efs-access-points.md)。

## 從不同的 掛載 EFS 檔案系統 AWS 區域
<a name="mount-different-region-vpc"></a>

如果您要從與檔案系統 AWS 區域 不同的另一個 VPC 掛載 EFS 檔案系統，則需要編輯`efs-utils.conf`檔案。在 `/dist/efs-utils.conf` 中找出下列各行：

```
#region = us-east-1
```

取消註解行，並取代檔案系統所在區域的 ID 值 (如果檔案系統不在 `us-east-1` 中)。

# 使用網路檔案系統掛載 EFS 檔案系統
<a name="mounting-fs-old"></a>

接下來，了解如何安裝網路檔案系統 (NFS) 用戶端，以及如何在 Amazon EC2 執行個體上掛載 Amazon EFS 檔案系統。您也可以找到 `mount` 命令的解釋，以及在 `mount` 命令中指定您檔案系統的網域名稱系統 (DNS) 時可使用的選項。此外，您可以找到如何使用 `fstab` 檔案，讓檔案系統在任何系統重新啟動後自動重新掛載。

**注意**  
在此區段，您可以了解如何掛載您的 Amazon EFS 檔案系統，而且不使用 amazon-efs-utils 套件。若要在您的檔案系統使用傳輸中的資料加密，您必須使用 Transport Layer Security (TLS) 掛載您的檔案系統。若要這樣做，建議使用 amazon-efs-utils 套件。如需詳細資訊，請參閱[安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。

**Topics**
+ [先決條件](#reqs-mount-nfs)
+ [NFS 支援](#mounting-fs-nfs-info)
+ [安裝 NFS 用戶端](mounting-fs-install-nfsclient.md)
+ [建議的 NFS 掛載設定](mounting-fs-nfs-mount-settings.md)
+ [以 DNS 名稱掛載於 Amazon EC2](mounting-fs-mount-cmd-dns-name.md)
+ [以 IP 地址掛載](mounting-fs-mount-cmd-ip-addr.md)

## 先決條件
<a name="reqs-mount-nfs"></a>

在掛載檔案系統之前，請確定您符合下列要求：
+ 建立、設定和啟動您的相關 AWS 資源。如需說明，請參閱[Amazon EFS 入門](getting-started.md)。
+ 為您的 Amazon EC2 執行個體建立 VPC 安全群組，並使用必要的傳入和傳出存取掛載目標。如需詳細資訊，請參閱[使用 VPC 安全群組](network-access.md)。

## NFS 支援
<a name="mounting-fs-nfs-info"></a>

當您在 Amazon EC2 執行個體上掛載檔案系統時，Amazon EFS 支援網路檔案系統版本 4.0 與 4.1 (NFSv4) 通訊協定。雖有支援 NFSv4.0，但建議您使用 NFSv4.1。在 Amazon EC2 執行個體上掛載您的 Amazon EFS 檔案系統還需要 NFS 用戶端，此用戶端必須支援您所選擇的 NFSv4 協定。執行 macOS Big Sur 的 Amazon EC2 MacOS 執行個體僅支援 NFS v4.0。

Amazon EFS 不支援 `nconnect` 掛載選項。

**注意**  
對於 Linux 核心版本 5.4.\$1，Linux NFS 用戶端會使用 128 KB 的預設 `read_ahead_kb` 值。我們建議將此值增加到 15 MB。如需詳細資訊，請參閱 [優化 NFS read\$1ahead\$1kb 大小](performance-tips.md#efs-perf-optimize-nfs-read-ahead)。

為達到最佳化效能並避免各種已知的 NFS 用戶端錯誤，建議您使用最新的 Linux 核心。如果您使用的是企業 Linux 發行版本，我們建議下列事項：
+ Amazon Linux 2
+ Amazon Linux 2017.09 或更新版本
+ Red Hat Enterprise Linux （以及 CentOS 等衍生產品） 第 8 版及更新版本
+ Ubuntu 16.04 LTS 和更新版本
+ SLES 12 Sp2 或更新版本

如果您使用的是另一個發行版本或自訂核心，建議使用核心版本 4.3 或更新版本。若要排解使用 EC2 執行個體的 Amazon EFS 時與特定 AMI 或核心版本相關的疑難問題，請參閱 [AMI 與核心問題疑難排解](troubleshooting-efs-ami-kernel.md)。

**注意**  
不支援使用執行 Microsoft Windows 的 Amazon EC2 執行個體掛載 EFS 檔案系統。

# 安裝 NFS 用戶端
<a name="mounting-fs-install-nfsclient"></a>

若要在 Amazon EC2 執行個體上掛載 EFS 檔案系統，您必須先安裝 NFS 用戶端。若要連接到您的 EC2 執行個體並安裝 NFS 用戶端，您需要 EC2 執行個體的公有 DNS 名稱以及用於登入的使用者名稱。您執行個體的使用者名稱通常是 `ec2-user`。

**連接 EC2 執行個體並安裝 NFS 用戶端**

1. 連線至 EC2 執行個體。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

   金鑰檔案無法公開提供 SSH 檢視。您可以使用 **chmod 400 *filename*.pem** 命令來設定這些許可。如需詳細資訊，請參閱[為您的 Amazon EC2 執行個體建立金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html)。

1. (選用) 取得更新並重新啟動。

   ```
   $ sudo yum -y update 
               $  sudo reboot
   ```

1. 重新開機後，請重新連線至您的 EC2 執行個體。

1. 安裝 NFS 用戶端。

   如果您使用的是 Amazon Linux AMI 或 Red Hat Linux AMI，請使用以下命令來安裝 NFS 用戶端。

   ```
   $ sudo yum -y install nfs-utils
   ```

   如果您使用的是 Ubuntu Amazon EC2 AMI，請使用下列命令安裝 NFS 用戶端。

   ```
   $ sudo apt-get -y install nfs-common
   ```

1. 使用下列命令啟動 NFS 服務：

   ```
   $ sudo service nfs-server start
   ```

1. 確認 NFS 服務已啟動，如下所示。

   ```
   $ sudo service nfs-server status
   Redirecting to /bin/systemctl status nfs.service
   ● nfs-server.service - NFS server and services
      Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
      Active: active (exited) since Wed 2019-10-30 16:13:44 UTC; 5s ago
     Process: 29446 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
     Process: 29441 ExecStartPre=/bin/sh -c /bin/kill -HUP `cat /run/gssproxy.pid` (code=exited, status=0/SUCCESS)
     Process: 29439 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Main PID: 29446 (code=exited, status=0/SUCCESS)
      CGroup: /system.slice/nfs-server.service
   ```

如果您使用自訂核心 (亦即如果您建置自訂的 AMI)，您必須至少包含 NFSv4.1 用戶端核心模組，以及正確的 NFS4 userspace 掛載協助程式。

**注意**  
如果您在啟動 Amazon EC2 執行個體時，選擇 **Amazon Linux AMI 2016.03.0** 或 **Amazon Linux AMI 2016.09.0**，則無需安裝 `nfs-utils`，因為它預設已包含在 AMI 中。

**下一步：掛載檔案系統**  
使用下列程序之一以掛載您的檔案系統。
+ [以 DNS 名稱掛載於 Amazon EC2](mounting-fs-mount-cmd-dns-name.md)
+ [以 IP 地址掛載](mounting-fs-mount-cmd-ip-addr.md)
+ [自動掛載 EFS 檔案系統使用 NFS 在 EC2 Linux 或 Mac 執行個體上啟用自動掛載](nfs-automount-efs.md)

# 建議的 NFS 掛載設定
<a name="mounting-fs-nfs-mount-settings"></a>

我們建議設定下列 Linux 掛載選項值：
+ `noresvport`：告知 NFS 用戶端在網路連線重新建立時，使用新的傳輸控制通訊協定 (TCP) 來源連接埠。舊版 Linux 核心 (v5.4 及以下版本) 中包含的 NFS 用戶端軟體包含一種行為，即中斷連線時會引發 NFS 用戶端嘗試在相同的 TCP 來源連接埠上重新連線。此行為不符合 TCP RFC 要求，而且會阻止這些用戶端快速重新建立與 EFS 檔案系統的連線。

  使用 `noresvport` 選項有助於確保 NFS 用戶端以透明方式重新連線至 EFS 檔案系統，並在網路復原事件發生後重新連線時保持持續可用。
**重要**  
我們強烈建議您使用 `noresvport` 掛載選項，以確保您的 EFS 檔案系統在重新連線或網路復原事件發生後持續可用。  
考慮使用 [EFS 掛載協助程式](mounting-fs.md)掛載檔案系統。EFS 掛載協助程式使用適用於 Amazon EFS 檔案系統的最佳 NFS 掛載選項。
+ `rsize=1048576`：NFS 用戶端為每個網路 READ 請求接收資料時，設定資料位元組上限。讀取來自 EFS 檔案系統上檔案的資料時，將會套用這個值。我們建議您使用最大的大小 (最多 `1048576`) 以避免效能降低。
+ `wsize=1048576`：NFS 用戶端為每個網路 WRITE 請求傳送資料時，設定資料位元組上限。將資料寫入至 EFS 檔案系統上的檔案時，將會套用這個值。我們建議您使用最大的大小 (最多 `1048576`) 以避免效能降低。
+ `hard`：設定 NFS 用戶端在 NFS 請求逾時的復原行為，因此 NFS 請求會重試直到伺服器回覆為止。我們建議您使用硬掛載選項 (`hard`)，以確保資料的完整性。如果您使用 `soft` 掛載，請將 `timeo` 參數設定為至少 `150` 十分之一秒 (15 秒)。這有助於降低軟掛載固有的資料損壞風險。
+ `timeo=600`：將 NFS 用戶端等待重試 NFS 請求回應的逾時值設為 600 十分之一秒 (60 秒)。如果您必須變更逾時參數 (`timeo`)，我們建議您使用至少為 `150` 的值，相當於 15 秒。這有助於避免效能降低。
+ `retrans=2`：將 NFS 用戶端在請求嘗試進一步復原動作前的重試次數設為 2。
+ `_netdev`：在 `/etc/fstab` 中出現時，防止用戶端嘗試掛載到 EFS 檔案系統，直到網路完成啟用。
+ `nofail`：如果不論掛載的 EFS 檔案系統處於何種狀態，EC2 執行個體都需要啟動，請將 `nofail` 選項新增至 `/etc/fstab` 檔案中的檔案系統項目。

如果您不使用上述的預設值，請注意下列資訊：
+ 一般而言，避免設定任何與預設值不同的掛載選項，這可能導致效能降低和其他問題。例如，變更讀取或寫入的緩衝大小，或停用屬性快取皆可能造成效能降低。
+ Amazon EFS 會忽略來源連接埠。如果您變更 Amazon EFS 來源連接埠，不會有任何影響。
+ Amazon EFS 不支援 `nconnect` 掛載選項。
+ Amazon EFS 不支援任何 Kerberos 安全變體。例如，下列掛載命令會失敗。

  ```
   $ mount -t nfs4 -o krb5p <DNS_NAME>:/ /efs/ 
  ```
+ 我們建議您使用檔案系統的 DNS 名稱來掛載該檔案系統。系統會在與您 Amazon EC2 執行個體相同的可用區域中，將此名稱解析為 Amazon EFS 掛載目標的 IP 地址。如果您在與您 Amazon EC2 執行個體不同的可用區域中使用掛載目標，您需要為跨可用區域傳送的資料支付標準 EC2 費用。您的檔案系統操作也可能受到延遲。
+ 如需更多掛載選項和預設值的詳細說明，請參閱 Linux 文件。

# 以 DNS 名稱掛載於 Amazon EC2
<a name="mounting-fs-mount-cmd-dns-name"></a>

**注意**  
在掛載檔案系統之前，您需要將規則新增至掛載目標安全群組，以允許從 EC2 安全群組對連接埠 2049 進行傳入 NFS 存取。如需詳細資訊，請參閱[使用 VPC 安全群組](network-access.md)。
+ **檔案系統 DNS 名稱**：使用檔案系統的 DNS 名稱是最簡單的掛載選項。檔案系統的 DNS 名稱會自動解析為連接 Amazon EC2 執行個體之可用區域中掛載目標的 IP 地址。您可以從主控台取得此 DNS 名稱，或者如果您有檔案系統 ID，即可使用以下慣例來建構 DNS 名稱。

  ```
  file-system-id.efs.aws-region.amazonaws.com
  ```
**注意**  
 解析檔案系統 DNS 名稱的 DNS 時，需要 Amazon EFS 檔案系統在用戶端執行個體的相同可用區域中具有掛載目標。
  + 使用檔案系統 DNS 名稱，您可以使用以下命令將檔案系統掛載到 Amazon EC2 Linux 執行個體。

    ```
    sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.efs.aws-region.amazonaws.com:/ /efs-mount-point
    ```
  + 使用檔案系統 DNS 名稱時，您可以藉助下列命令，並在執行受支援 macOS 版本 (Big Sur、Monterey、Ventura) 的 Amazon EC2 Mac 執行個體上掛載檔案系統。

    ```
    sudo mount -t nfs -o nfsvers=4.0,rsize=65536,wsize=65536,hard,timeo=600,retrans=2,noresvport,mountport=2049 file-system-id.efs.aws-region.amazonaws.com:/ /efs
    ```
**重要**  
在執行受支援 macOS 版本的 EC2 Mac 執行個體上掛載時，您必須使用 `mountport=2049` 才能成功連線到 EFS 檔案系統。
+ **掛載目標 DNS 名稱**：在 2016 年 12 月，我們引進檔案系統 DNS 名稱。我們持續為每個可用區域掛載目標提供 DNS 名稱，以提供回溯相容性。掛載目標 DNS 名稱的一般形式如下。

  ```
  availability-zone.file-system-id.efs.aws-region.amazonaws.com
  ```
**注意**  
支援跨可用區域掛載目標 DNS 名稱解決方案。

  在某些情況下，您可能會刪除掛載目標，然後在相同的可用區域中建立新的掛載目標。在此情況下，可用區域中新掛載目標的 DNS 名稱與舊掛載目標的 DNS 名稱相同。

您可以在**附加**對話方塊中檢視和複製要掛載檔案系統的確切指令。

**檢視檔案系統的掛載指令**

1. 在 Amazon EFS 主控台中，請選擇您要掛載的檔案系統，顯示其詳細資訊頁面。

1. 若要顯示用於此檔案系統的掛載指令，請選擇右上角的**「連接」**。

   **連接**畫面會顯示用於掛載檔案系統的確切指令。

1. 當使用 EFS 掛載協助程式或 NFS 用戶端挂載時，**透過 DNS 掛載**預設試圖會使用檔案系統的 DNS 名稱來顯示挂載檔案系統的命令。

如需支援 AWS 區域 Amazon EFS 的 清單，請參閱[《》中的 Amazon Elastic File System](https://docs.aws.amazon.com/general/latest/gr/rande.html#elasticfilesystem-region) AWS 一般參考。

若要在 `mount` 命令中使用 DNS 名稱，必須符合下列條件：
+ 連接的 EC2 執行個體必須位於 VPC 中，且必須設定為使用 Amazon 提供的 DNS 伺服器。如需有關 Amazon DNS 伺服器的資訊，請參閱《[Amazon VPC 使用者指南》中的 Amazon VPC 中的 DHCP 選項集](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。 **
+ 在連接 EC2 執行個體的 VPC 上，**DNS Resolution (DNS 解析)** 和 **DNS Hostnames (DNS 主機名稱)** 必須全部啟用。如需詳細資訊，請參閱《*Amazon* [ VPC 使用者指南》中的 VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-viewing)。
+ 連接的 EC2 執行個體必須與 EFS 檔案系統位在相同的 VPC 中。如需有關存取及掛載來自其他位置或不同 VPC 之檔案系統的詳細資訊，請參閱[先決條件](mounting-fs-mount-helper-direct.md#efs-onpremises)和[教學課程：從不同的 VPC 掛載檔案系統](efs-different-vpc.md)。

**注意**  
建議您在建立掛載目標之後等待 90 秒，然後再掛載您的檔案系統。此等待可讓 DNS 記錄在檔案系統 AWS 區域 所在的 中完全傳播。

# 以 IP 地址掛載
<a name="mounting-fs-mount-cmd-ip-addr"></a>

除了以 DNS 名稱掛載 Amazon EFS 檔案系統之外，Amazon EC2 執行個體可使用掛載目標的 IP 地址來掛載檔案系統。以 IP 地址掛載的運作方式適用於 DNS 已停用的環境 (例如已停用 DNS 主機名稱的 VPC)。

您也可以使用掛載目標 IP 地址設定掛載檔案系統，做為已預設使用其 DNS 名稱掛載檔案系統之應用程式的備用選項。當連接到掛載目標 IP 地址時，EC2 執行個體應使用與連接執行個體相同之可用區域中的掛載目標 IP 地址進行掛載。

您可以在**附加**對話方塊中檢視和複製要掛載檔案系統的確切指令。

**注意**  
在掛載檔案系統之前，您需要為掛載目標安全群組新增規則，以允許從 EC2 安全群組對連接埠 2049 進行傳入 NFS 存取。如需詳細資訊，請參閱[使用 VPC 安全群組](network-access.md)。

**若想使用掛載目標的 IP 地址來檢視並複製掛載 EFS 檔案系統的確切命令**

1. 前往 [https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/) 開啟 Amazon Elastic File System 主控台。

1. 在 Amazon EFS 主控台中，請選擇您要掛載的檔案系統，顯示其詳細資訊頁面。

1. 若要顯示用於此檔案系統的掛載指令，請選擇右上角的**「連接」**。

1. **連接**畫面會顯示用於掛載檔案系統的確切指令。

   在 NFS 用戶端的已選可用區域中，選擇**透過 IP 掛載**，即可顯示使用掛載目標的 IP 地址來掛載檔案系統的命令。
+ 使用 `mount` 命令中的掛載目標 IP 地址時，您可以藉助下列命令在 Amazon EC2 Linux 執行個體上掛載檔案系統。

  ```
  sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/   /efs 
  ```
+ 使用 `mount` 命令中的挂載目標 IP 地址時，您可以藉助下列命令在 Amazon EC2 Mac 執行個體上掛載檔案系統、執行 macOS Big Sur。

  ```
  sudo mount -t nfs -o nfsvers=4.0,rsize=65536,wsize=65536,hard,timeo=600,retrans=2,noresvport,mountport=2049 mount-target-IP:/ /efs
  ```
**重要**  
在執行 macOS Big Sur的 EC2 Mac 執行個體上掛載時，您必須使用 `mountport=2049` 才能成功連線到 EFS 檔案系統。

## 在 中使用 IP 地址進行掛載 AWS CloudFormation
<a name="mount-fs-ip-addr-cloudformation"></a>

您也可以使用 CloudFormation 範本中的 IP 地址來掛載檔案系統。如需詳細資訊，請參閱 [storage-efs-mountfilesystem-ip-addr.config](https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/community-provided/instance-configuration/storage-efs-mountfilesystem-ip-addr.config)，它位於 GitHub 中用於存放社群提供之設定檔案的 **awsdocs/elastic-beanstalk-samples** 儲存庫。

# 自動掛載 EFS 檔案系統
<a name="mount-fs-auto-mount-onreboot"></a>

您可以使用 EFS 掛載協助程式或 NFS 來設定 Amazon EC2 執行個體，以在執行個體啟動時自動掛載 EFS 檔案系統。
+ 使用 EFS 掛載協助程式：
  + 當您使用 EC2 啟動執行個體精靈建立新的 EC2 Linux 執行個體時，連接 EFS 檔案系統。 EC2 
  + 使用 EFS 檔案系統的項目來更新 EC2 `/etc/fstab` 檔案。
+ [在沒有 EFS 掛載協助程式的情況下使用 NFS](https://docs.aws.amazon.com/efs/latest/ug/nfs-automount-efs.html) 來更新 EC2 `/etc/fstab` 檔案，適用於 EC2 Linux 和 Mac 執行個體。

**注意**  
EFS 掛載協助程式不支援在執行 macOS Big Sur 或 Monterey 的 EC2 Mac 執行個體上自動掛載。反之，您可以使用 [NFS 在 EC2 Mac 執行個體上設定 /etc/fstab 檔案](nfs-automount-efs.md)，以自動掛載 EFS 檔案系統。

**Topics**
+ [在新的 EC2 Linux 執行個體上啟用自動掛載](mount-fs-auto-mount-on-creation.md)
+ [在現有的 EC2 Linux 執行個體上啟用自動掛載](mount-fs-auto-mount-update-fstab.md)
+ [使用 NFS 在 EC2 Linux 或 Mac 執行個體上啟用自動掛載](nfs-automount-efs.md)

# 在新的 EC2 Linux 執行個體上啟用自動掛載
<a name="mount-fs-auto-mount-on-creation"></a>

當您使用 Amazon EC2 啟動執行個體精靈建立新的 EC2 Linux 執行個體時，您可以將其設定為自動掛載 Amazon EFS 檔案系統。 Amazon EC2 如此一來，在執行個體初次啟動和重新啟動時，EC2 執行個體就會自動掛載檔案系統。

此方法使用 EFS 掛載協助程式來掛載檔案系統，並更新 EC2 執行個體上的 /etc/fstab 檔案。掛載協助程式是 [`amazon-efs-utils`](using-amazon-efs-utils.md) 工具組的一部分。

**注意**  
EFS 檔案系統不支援在執行個體啟動時掛載在執行 macOS Big Sur 或 Monterey 的 EC2 Mac 執行個體上。

**注意**  
您無法將 Amazon EFS 與 Microsoft Windows 型 EC2 執行個體搭配使用。

您必須先建立金鑰對，才能啟動並連線至 EC2 執行個體。如需詳細資訊，請參閱[《Amazon EC2 使用者指南》中的 Amazon EC2 金鑰對和 Amazon EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)，以建立金鑰對。 *Amazon EC2 * 

**設定 EC2 執行個體在啟動時自動掛載 EFS 檔案系統**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 選擇**啟動執行個體**。

1. 在 **Step 1: Choose an Amazon Machine Image (AMI) (步驟 1：選擇 Amazon Machine Image (AMI))** 的清單最上方尋找 Amazon Linux AMI，然後選擇 **Select (選取)**。

1. 在**步驟 2：選擇執行個體類型**中，選擇**下一步：設定執行個體詳細資訊**。

1. 在**步驟 3：設定執行個體詳細資訊** 中，提供下列資訊：
   + 針對**網路**選擇與您掛載的 EFS 檔案系統相同的 VPC 項目。
   + 針對 **Subnet (子網路)** 選擇任何可用區域中的預設子網路。
   + 針對**檔案系統**選擇您要掛載的 EFS 檔案系統。檔案系統 ID 旁顯示的路徑是 EC2 執行個體將使用的掛載點，您可以加以變更。
   + 在**進階詳細資料**中，**使用者資料**會自動產生，而其中會包含將您所指定 EFS 檔案系統掛載至**檔案系統**時的必要命令。

1. 選擇 **Next: Add Storage (下一步：新增儲存體)**。

1. 選擇 **Next: Add Tags (下一步：新增標籤)**。

1. 為執行個體命名，並選擇**下一步：設定安全群組**。

1. 在**步驟 6：設定安全群組**中，將**指派安全群組)**設定為**選取現有安全群組**。選擇預設安全群組，以確保它可以存取您的 EFS 檔案系統。

   您無法使用此安全群組透過 Secure Shell (SSH) 存取您的 EC2 執行個體。若要透過 SSH 存取，您可以編輯預設安全性並新增規則，以允許 SSH 或允許 SSH 的新安全群組。您可以使用以下設定：
   + **Type (類型)**：SSH
   + **Protocol (通訊協定)**：TCP
   + **Port Range (連接埠範圍)**：22
   + **Source (來源)**：Anywhere (任何位置) 0.0.0.0/0

1. 選擇 **Review and Launch** (檢閱和啟動)。

1. 選擇**啟動**。

1. 選取您建立的金鑰對核取方塊，然後選擇 **Launch Instances (啟動執行個體)**。

您的 EC2 執行個體現在已設定為在啟動時和重新啟動時掛載 EFS 檔案系統。

# 在現有的 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 掛載協助程式自動掛載。反之，EC2 Mac 執行個體在執行 macOS Big Sur 或 Monterey 時，您可以使用[帶有 `/etc/fstab` 的 NFS](nfs-automount-efs.md) 來將檔案系統自動掛載在此執行個體上。

這種方法都會使用 EFS 掛載協助程式來掛載檔案系統。掛載協助程式是 `amazon-efs-utils` 工具組的一部分。

`amazon-efs-utils` 工具可以安裝在 Amazon Linux 和 Amazon Linux 2 Amazon Machine Image (AMI) 上。如需 `amazon-efs-utils` 的相關資訊，請參閱 [安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。如果您使用的是 Red Hat Enterprise Linux (RHEL) 等其他 Linux 發行版本，則需手動建置並安裝 `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 User Guide* 中的 [Connect to your EC2 instance](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` 檔案的程式碼行會執行下列動作。


| 欄位 | Description | 
| --- | --- | 
|  `file-system-id:/`  |  EFS 檔案系統的 ID。您可以從主控台或以程式設計方式從 CLI 或 AWS SDK 取得此 ID。  | 
|  `efs-mount-point`  |  EFS 檔案系統在 EC2 執行個體上的掛載點。  | 
|  `efs`  |  檔案系統類型。您使用掛載協助程式時，此類型一律為 `efs`。  | 
|  `mount options`  |  檔案系統的掛載選項。這是以逗號分隔的下列選項清單： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/efs/latest/ug/mount-fs-auto-mount-update-fstab.html)  | 
|  `0`  |  非零值表示檔案系統應該由 `dump` 進行備份。對於 EFS，這個值應為 `0`。  | 
|  `0`  |  `fsck` 在開機時檢查檔案系統的順序。對於 EFS 檔案系統，這個值應為 `0`，以表示 `fsck` 不應在啟動時執行。  | 

# 使用 NFS 在 EC2 Linux 或 Mac 執行個體上啟用自動掛載
<a name="nfs-automount-efs"></a>

在沒有 EFS 掛載協助程式的情況下使用 NFS 來更新 EC2 Linux 和 Mac 執行個體的 Amazon EC2 `/etc/fstab` 檔案。

**更新 EC2 執行個體上的 `/etc/fstab` 檔案**

1. 連線至 EC2 執行個體。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 在編輯器中開啟 `/etc/fstab` 檔案。

1. 若要使用代替 EFS 掛載協助程式的 EFS 存取點自動掛載檔案系統，請將下行新增至 `/etc/fstab` 檔案。
   + 以您正在掛載的檔案系統 ID 取代 *file\$1system\$1id*。
   + 將 *aws-region* 取代 AWS 區域 為檔案系統所在的 ，例如 `us-east-1`。
   + 以檔案系統的掛載點取代 *mount\$1point*。

   ```
   file_system_id.efs.aws-region.amazonaws.com:/ mount_point nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0
   ```

您新增至 `/etc/fstab` 檔案的程式碼行會執行下列動作。


| 欄位 | Description | 
| --- | --- | 
|  `file-system-id:/`  |  EFS 檔案系統的 ID。您可以從主控台或以程式設計方式從 CLI 或 AWS SDK 取得此 ID。  | 
|  `efs-mount-point`  |  EFS 檔案系統在 EC2 執行個體上的掛載點。  | 
|  `nfs4`  |  指定檔案系統類型。  | 
|  `mount options`  |  以逗號分隔的檔案系統掛載選項清單： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/efs/latest/ug/nfs-automount-efs.html)  | 
|  `0`  |  指定 `dump` 值；`0` 告知 `dump` 公用程式不必備份檔案系統。  | 
|  `0`  |  告知 `fsck` 公用程式不要在啟動時執行。  | 

# 卸載檔案系統
<a name="unmounting-fs"></a>

在刪除檔案系統之前，我們建議您將其從每個連接至的 Amazon EC2 執行個體上卸載。您可以在 Amazon EC2 執行個體上執行 `umount` 命令來卸載執行個體上的檔案系統。您無法透過 AWS CLI、 AWS 管理主控台或任何 AWS SDKs 卸載 EFS 檔案系統。若要卸載連線至執行 Linux 之 EC2 執行個體的 EFS 檔案系統，請使用 `umount`命令，如下所示：

```
umount /mnt/efs 
```

我們建議您不要指定任何其他 `umount` 選項。請避免設定任何其他與預設值不同的 `umount` 選項。

您可以執行 `df`命令來驗證 EFS 檔案系統是否已卸載。此命令會顯示目前掛載於 Linux 型 Amazon EC2 執行個體上的檔案系統磁碟用量統計資料。如果您想要卸載的 EFS 檔案系統未列在`df`命令輸出中，這表示檔案系統已卸載。

**Example – 識別 EFS 檔案系統的掛載狀態並卸載**  

```
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on 
/dev/sda1 ext4 8123812 1138920 6884644 15% / 
availability-zone.file-system-id.efs.aws-region.amazonaws.com :/ nfs4 9007199254740992 0 9007199254740992 0% /mnt/efs
```

```
$ umount /mnt/efs
```

```
$ df -T 
```

```
Filesystem Type 1K-blocks Used Available Use% Mounted on 
/dev/sda1 ext4 8123812 1138920 6884644 15% /
```

# 教學課程：使用 建立 EFS 檔案系統並將其掛載到 EC2 執行個體 AWS CLI
<a name="wt1-getting-started"></a>

建立加密的 EFS 檔案系統，將其掛載在 VPC 中的 EC2 執行個體上，並使用 測試設定 AWS CLI。

**注意**  
在[開始使用](getting-started.md)教學課程中，您可以使用 主控台來建立 Amazon EC2 和 EFS 資源。在本教學課程中，您會使用 AWS CLI 執行相同操作，主要是熟悉 Amazon EFS API。

在本教學課程中，您會在帳戶中建立下列 AWS 資源：
+ Amazon EC2 資源：
  + 兩個安全群組 （適用於您的 EC2 執行個體和 EFS 檔案系統）。

    您對安全群組新增規則以授予適當傳入/傳出存取權。這樣做可讓您的 EC2instance使用標準 NFSv4.1 TCP 連接埠，透過掛載目標連線至檔案系統。
  + VPC 中的 EC2 執行個體。
+ Amazon EFS 資源：
  + 一個檔案系統。
  + 適用您檔案系統的掛載目標。

    若要在 EC2 執行個體上掛載檔案系統，您需要在 VPC 中建立掛載目標。您可在 VPC 中的每個可用區域建立一個掛載目標。如需詳細資訊，請參閱[Amazon EFS 的運作方式](how-it-works.md)。

然後，您將在 EC2 執行個體上測試檔案系統。教學課程結尾的清除步驟提供移除這些資源的資訊。

本教學課程在美國西部 （奧勒岡） 區域 () 建立所有這些資源`us-west-2`。無論您 AWS 區域 使用哪種，請務必一致地使用它。您的所有資源—VPC、EC2 資源和 EFS 資源—都必須位於相同的 中 AWS 區域。

**Topics**
+ [先決條件](#wt1-prepare)
+ [設定 AWS CLI](#wt1-setup-awscli)
+ [步驟 1：建立 EC2 資源](#wt1-create-ec2-resources)
+ [步驟 2：建立 EFS 資源](#wt1-create-efs-resources)
+ [步驟 3：在 EC2 執行個體上掛載檔案系統並進行測試](#wt1-test)
+ [步驟 4：清理](#wt1-clean-up)

## 先決條件
<a name="wt1-prepare"></a>
+ 您可以使用 的根登入 AWS 帳戶 資料來登入 主控台，並嘗試入門練習。不過， AWS Identity and Access Management (IAM) 建議您不要使用 的根登入資料 AWS 帳戶。反之，在帳戶中建立一個管理員使用者並使用這些憑證來管理帳戶中的資源。如需詳細資訊，請參閱《 *AWS IAM Identity Center 使用者指南*》中的[為 IAM Identity Center 使用者指派 AWS 帳戶 存取權](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-assign-account-access-user.html)。
+ 您可以使用預設 VPC 或在帳戶中建立的自訂 VPC。預設的 VPC 設定適用於此逐步解說。不過，如果您使用的是自訂 VPC，請檢查下列各項：
  + DNS 主機名稱已啟用。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)。
  + 該網際網路閘道已連接至您的 VPC。如需詳細資訊，請參閱「Amazon VPC 使用者指南」**中的[使用網際網路閘道連接至網際網路](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。
  + 該 VPC 子網路已設定為 VPC 子網路啟動的執行個體申請公有 IP 地址。如需詳細資訊，請參閱《Amazon [ VPCs 使用者指南》中的 VPC 和子網路的 IP 定址](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html)。 **
  + 該 VPC 路由表包含傳送所有網際網路綁定型流量到網際網路閘道的規則。
+ 您需要設定 AWS CLI 並新增管理員使用者設定檔。

## 設定 AWS CLI
<a name="wt1-setup-awscli"></a>

使用下列指示來設定 AWS CLI 和 使用者設定檔。

**若要設定 AWS CLI**

1. 下載和設定 AWS CLI。如需說明，請參閱*AWS Command Line Interface 《 使用者指南*》中的 [ 入門 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)。

1. 設定設定檔。

   您可以將使用者登入資料存放在 AWS CLI `config`檔案中。本教學課程中的範例 CLI 命令會指定 adminuser 設定檔。在 `config` 檔案中建立 adminuser 設定檔。您也可以在 `config` 檔案中將管理員使用者描述檔設為預設，如下所示。

   ```
   [profile adminuser]
   aws_access_key_id = admin user access key ID
   aws_secret_access_key = admin user secret access key
   region = us-west-2
   
   [default]
   aws_access_key_id = admin user access key ID
   aws_secret_access_key = admin user secret access key
   region = us-west-2
   ```

   上述描述檔也會設定預設值 AWS 區域。如果您未在 CLI 命令中指定區域，則會假設 us-west-2 區域。

1. 在命令提示字元中輸入下列命令，以驗證設定。這些命令均不會明確提供登入資料，因此會使用預設描述檔的登入資料。
   + 嘗試 help 命令。

     您也可以透過新增 `--profile` 參數明確指定使用者描述檔。

     ```
     aws help
     ```

     ```
     aws help \
     --profile adminuser
     ```

## 步驟 1：建立 EC2 資源
<a name="wt1-create-ec2-resources"></a>

請於本步驟執行以下操作：
+ 建立兩個安全群組。
+ 對安全群組新增規則以授予其他存取權。
+ 啟動 EC2 執行個體。您可以在下一個步驟中在此執行個體上建立和掛載 EFS 檔案系統。

### 步驟 1.1：建立兩個安全群組
<a name="wt1-create-sg"></a>

在本節中，您會在 VPC 中為 EC2 執行個體和 EFS 掛載目標建立安全群組。在教學課程稍後，您會將這些安全群組指派給 EC2 執行個體和 EFS 掛載目標。如需安全群組的資訊，請參閱 [Linux 執行個體的 Amazon EC2 安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html#vpc-security-groups)。

**建立安全群組**

1. 使用 `create-security-group` CLI 命令建立兩個安全群組：

   1. 為您的 EC2 執行個體建立安全群組 (`efs-walkthrough1-ec2-sg`)，並提供您的 VPC ID。

      ```
      $ aws ec2 create-security-group \
      --region us-west-2 \
      --group-name efs-walkthrough1-ec2-sg \
      --description "Amazon EFS walkthrough 1, SG for EC2 instance" \
      --vpc-id vpc-id-in-us-west-2 \
      --profile adminuser
      ```

      記下該安全群組 ID。以下是回應範例。

      ```
      {
          "GroupId": "sg-aexample"
      }
      ```

      您可使用下列命令來找到 VPC ID。

      ```
      $ aws  ec2 describe-vpcs    
      ```

      

   1. 為您的 EFS 掛載目標建立安全群組 (`efs-walkthrough1-mt-sg`)。您需提供您的 VPC ID。

      ```
      $ aws ec2 create-security-group \
      --region us-west-2 \
      --group-name efs-walkthrough1-mt-sg \
      --description "Amazon EFS walkthrough 1, SG for mount target" \
      --vpc-id vpc-id-in-us-west-2 \
      --profile adminuser
      ```

      記下該安全群組 ID。以下是回應範例。

      ```
      {
          "GroupId": "sg-aexample"
      }
      ```

1. 確認安全群組。

   ```
   aws ec2 describe-security-groups \
   --group-ids list of security group IDs separated by space \
   --profile adminuser \
   --region us-west-2
   ```

   均應該只有一個讓所有流量離開的傳出規則。

   在下一區段中，您將授權啟用下列項目的其他存取權：
   + 讓您連接至您的 EC2 執行個體。
   + 啟用 EC2 執行個體與 EFS 掛載目標之間的流量 （您會在本教學稍後將這些安全群組建立關聯）。

### 步驟 1.2：對安全群組新增規則以授予傳入/傳出存取權
<a name="wt1-update-sg"></a>

在此步驟中，您將對安全群組新增規則以授予傳入/傳出存取權。

**新增規則**

1. 為您的 EC2 執行個體 (`efs-walkthrough1-ec2-sg`) 授予對安全群組傳入 Secure Shell (SSH) 連接的權限，如此您便可從任何主機使用 SSH 連接到您的 EC2 執行個體。

   ```
   $ aws ec2 authorize-security-group-ingress \
   --group-id id of the security group created for EC2 instance \
   --protocol tcp \
   --port 22 \
   --cidr 0.0.0.0/0 \
   --profile adminuser \
   --region us-west-2
   ```

   驗證該安全群組已有您新增的傳入和傳出規則。

   ```
   aws ec2 describe-security-groups \
   --region us-west-2 \
   --profile adminuser \
   --group-id security-group-id
   ```

1. 授權 EFS 掛載目標 () 安全群組的傳入存取權`efs-walkthrough1-mt-sg`。

   在命令提示字元中，使用 adminuser 設定檔執行下列 AWS CLI `authorize-security-group-ingress`命令來新增傳入規則。

   ```
   $ aws ec2 authorize-security-group-ingress \
   --group-id ID of the security group created for Amazon EFS mount target \
   --protocol tcp \
   --port 2049 \
   --source-group ID of the security group created for EC2 instance \
   --profile adminuser \
   --region us-west-2
   ```

1. 驗證現在兩個安全群組皆授權傳入存取權。

   ```
   aws ec2 describe-security-groups \
   --group-names efs-walkthrough1-ec2-sg   efs-walkthrough1-mt-sg \
   --profile adminuser \
   --region us-west-2
   ```

### 步驟 1.3：啟動 EC2 執行個體
<a name="wt1-create-ec2-instance"></a>

在此步驟中，您將啟動一個 EC2 執行個體。

**啟動 EC2 執行個體**

1. 收集以下所需資訊，以在啟動 EC2 執行個體時使用：
   + 金鑰對名稱. 如需建立金鑰對的指示，請參閱《[Amazon EC2 使用者指南》中的為您的 Amazon EC2 執行個體建立金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html)。 *Amazon EC2 *
   + 您要啟動之 Amazon Machine Image (AMI) 的 ID。

     您用來啟動 EC2 執行個體的 AWS CLI 命令需要您要部署為參數的 Amazon Machine Image (AMI) ID。本練習使用 Amazon Linux HVM AMI。
**注意**  
您可以使用用途最廣泛、以 Linux 為基礎的 AMI。如果您使用其他 Linux AMI，請確保您是使用分發的套件管理員，在執行個體上安裝 NFS 用戶端。此外，您可能要視情況新增套裝軟體。

     對於 Amazon Linux HVM AMI，您可以在 [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/) 找到最新的 ID。您將從 Amazon Linux AMI ID 表格選擇 ID 值，如下所示：
     + 選擇 **US West Oregon (美國西部奧勒岡)** 區域。此逐步解說假設您正在美國西部 (奧勒岡) (us-west-2) 中建立所有資源。
     + 選擇 **EBS-backed HVM 64-bit (EBS 後端 HVM 64 位元)** 類型 (因為在 CLI 命令中，您將指定不支援執行個體存放區的 `t2.micro` 執行個體類型)。

     
   + 為 EC2 執行個體建立的安全群組 ID。
   + AWS 區域。此逐步解說使用了 us-west-2 區域。
   + 您想啟動執行個體的 VPC 子網路 ID。您可以使用 `describe-subnets` 命令取得子網路清單。

     ```
     $ aws ec2 describe-subnets \
     --region us-west-2 \
     --filters "Name=vpc-id,Values=vpc-id" \
     --profile adminuser
     ```

     在您選擇子網路 ID 後，從 `describe-subnets` 結果中記下以下值：
     + **子網路 ID**：在建立掛載目標時，您會需要這個值。在本練習中，您會在啟動 EC2 執行個體的相同子網路中建立一個掛載目標。
     + **子網路的可用區域**：您需要此值來建構掛載目標 DNS 名稱，該名稱用於在 EC2 執行個體上掛載檔案系統。

1. 執行下列 AWS CLI `run-instances`命令來啟動 EC2 執行個體。

   ```
   $ aws ec2 run-instances \
   --image-id AMI ID \
   --count 1 \
   --instance-type t2.micro \
   --associate-public-ip-address \
   --key-name key-pair-name \
   --security-group-ids ID of the security group created for EC2 instance \
   --subnet-id VPC subnet ID \
   --region us-west-2 \
   --profile adminuser
   ```

1. 記下由 `run-instances` 命令傳回的執行個體 ID。

1. 您建立的 EC2 執行個體必須擁有公有 DNS 名稱，該名稱是用以連接並掛載檔案系統至 EC2 執行個體。公有 DNS 名稱為下列形式：

   ```
   ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
   ```

   執行以下 CLI 命令並記下公有 DNS 名稱。

   ```
   aws ec2 describe-instances \
   --instance-ids EC2 instance ID \
   --region us-west-2 \ 
   --profile adminuser
   ```

   如果您不尋找公有 DNS 名稱，請在您啟動 EC2 執行個體的 VPC 中檢查 VPC 組態。如需詳細資訊，請參閱[先決條件](#wt1-prepare)。

1. (選用) 將名稱指派給您建立的 EC2 執行個體。若要這樣做，新增具有金鑰名稱的標籤，並且將值設為您想要指派給執行個體的名稱。您可以執行下列 AWS CLI `create-tags`命令來執行此操作。

   ```
   $  aws ec2 create-tags \
   --resources  EC2-instance-ID \
   --tags Key=Name,Value=Provide-instance-name  \
   --region us-west-2 \
   --profile adminuser
   ```

## 步驟 2：建立 EFS 資源
<a name="wt1-create-efs-resources"></a>

請於本步驟執行以下操作：
+ 建立加密的 EFS 檔案系統。
+ 啟用生命週期管理。
+ 在啟動 EFS 執行個體的可用區域中建立掛載目標。

### 步驟 2.1：建立 EFS 檔案系統
<a name="wt1-create-file-system"></a>

在此步驟中，您會建立 EFS 檔案系統。請記下 `FileSystemId`，以在下一步驟供檔案系統建立掛載目標時使用。

**建立檔案系統**
+ 搭配可選的 `Name` 標籤，建立檔案系統。

  1. 在命令提示字元中，執行下列 CLI AWS `create-file-system`命令。

     ```
     $  aws efs create-file-system \
     --encrypted \
     --creation-token FileSystemForWalkthrough1 \
     --tags Key=Name,Value=SomeExampleNameValue \
     --region us-west-2 \
     --profile adminuser
     ```

     您會收到以下回應。

     ```
     {
         "OwnerId": "111122223333",
         "CreationToken": "FileSystemForWalkthrough1",
         "FileSystemId": "fs-c657c8bf",
         "CreationTime": 1548950706.0,
         "LifeCycleState": "creating",
         "NumberOfMountTargets": 0,
         "SizeInBytes": {
             "Value": 0,
             "ValueInIA": 0,
             "ValueInStandard": 0
         },
         "PerformanceMode": "generalPurpose",
         "Encrypted": true,
         "KmsKeyId": "arn:aws:kms:us-west-2:111122223333:a5c11222-7a99-43c8-9dcc-abcdef123456",
         "ThroughputMode": "bursting",
         "Tags": [
             {
                 "Key": "Name",
                 "Value": "SomeExampleNameValue"
             }
         ]
     }
     ```

  1. 請記下 `FileSystemId` 值。在[步驟 2.3：建立掛載目標](#wt1-create-mount-target)中，當您建立此檔案系統的掛載目標時，您將需要此值。

### 步驟 2.2：啟用生命週期管理
<a name="wt1-lifecycle-management"></a>

在此步驟中，您會在檔案系統上啟用生命週期管理，以便使用 EFS 不常存取 (IA) 儲存類別。如需了解詳細資訊，請參閱 [管理儲存生命週期](lifecycle-management-efs.md) 和 [EFS 儲存類別](features.md#storage-classes)。

**啟用生命週期管理**
+ 在命令提示字元中，執行下列 AWS CLI `put-lifecycle-configuration`命令。

  ```
  $  aws efs put-lifecycle-configuration \
  --file-system-id fs-c657c8bf \
  --lifecycle-policies TransitionToIA=AFTER_30_DAYS \
  --region us-west-2 \
  --profile adminuser
  ```

  您會收到以下回應。

  ```
  {
    "LifecyclePolicies": [
      {
          "TransitionToIA": "AFTER_30_DAYS"
      }
    ]
  }
  ```

### 步驟 2.3：建立掛載目標
<a name="wt1-create-mount-target"></a>

在此步驟中，您將在啟動 EC2 執行個體的可用區域中，為您的檔案系統建立掛載目標。

1. 請務必備妥下列資訊：
   + 您欲建立掛載目標的檔案系統 ID (例如，`fs-example`)。
   + 您在 中啟動 EC2 執行個體的 VPC 子網路 ID[步驟 1：建立 EC2 資源](#wt1-create-ec2-resources)。

     在本教學課程中，您會在啟動 EC2 執行個體的相同子網路中建立掛載目標，因此您需要子網路 ID （例如 `subnet-example`)。
   + 您在之前步驟中為掛載目標所建立的安全群組 ID。

1. 在命令提示字元中，執行下列 AWS CLI `create-mount-target`命令。

   ```
   $ aws efs create-mount-target \
   --file-system-id file-system-id \
   --subnet-id  subnet-id \
   --security-group ID-of-the security-group-created-for-mount-target \
   --region us-west-2 \
   --profile adminuser
   ```

   您會收到以下回應。

   ```
   {
       "MountTargetId": "fsmt-example",
       "NetworkInterfaceId": "eni-example",
       "FileSystemId": "fs-example",
       "PerformanceMode" : "generalPurpose",
       "LifeCycleState": "available",
       "SubnetId": "fs-subnet-example",
       "OwnerId": "account-id",
       "IpAddress": "xxx.xx.xx.xxx"
   }
   ```

1. 您也可以使用 `describe-mount-targets` 命令來取得您在檔案系統上建立的掛載目標說明。

   ```
   $ aws efs describe-mount-targets \
   --file-system-id file-system-id \
   --region us-west-2 \
   --profile adminuser
   ```

## 步驟 3：在 EC2 執行個體上掛載檔案系統並進行測試
<a name="wt1-test"></a>

請於本步驟執行以下操作：
+ 收集必要資訊。
+ 在您的 EC2 執行個體上安裝 NFS 用戶端。
+ 將檔案系統掛載到您的 EC2 執行個體並測試。

**Topics**
+ [步驟 3.1：收集資訊](#wt1-connect-test-gather-info)
+ [步驟 3.2：在您的 EC2 執行個體上安裝 NFS 用戶端](#wt1-connect-install-nfs-client)
+ [步驟 3.3：在您的 EC2 執行個體上掛載檔案系統並進行測試](#wt1-mount-fs-and-test)

### 步驟 3.1：收集資訊
<a name="wt1-connect-test-gather-info"></a>

在您遵照本區段中的步驟時，請確定您有下列資訊：
+ 您 EC2 執行個體的公有 DNS 名稱格式如下：

  ```
  ec2-xx-xxx-xxx-xx.aws-region.compute.amazonaws.com 
  ```
+ 您檔案系統的 DNS 名稱。您可以使用以下一般表單建構此 DNS 名稱：

  ```
  file-system-id.efs.aws-region.amazonaws.com
  ```

  使用該掛載目標來掛載檔案系統的 EC2 執行個體，可以解析檔案系統的 DNS 名稱至掛載目標的 IP 地址。

**注意**  
Amazon EFS 不需要您的 EC2 執行個體具有公有 IP 地址或公有 DNS 名稱。先前列出的要求僅適用於此逐步解說範例，以確保您能從 VPC 外部使用 SSH 連接到執行個體。

### 步驟 3.2：在您的 EC2 執行個體上安裝 NFS 用戶端
<a name="wt1-connect-install-nfs-client"></a>

您可以從執行 Windows、Linux、macOS X 或任何其他 Unix 變體版本的電腦連接到 EC2 執行個體。

**安裝 NFS 用戶端**

1. 連線至 EC2 執行個體。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 使用 SSH 工作階段在 EC2 執行個體上執行以下命令：

   1. (選用) 取得更新並重新啟動。

      ```
      $  sudo yum -y update  
      $  sudo reboot
      ```

      重新開機後，請重新連線至您的 EC2 執行個體。

   1. 安裝 NFS 用戶端。

      ```
      $ sudo yum -y install nfs-utils
      ```
**注意**  
如果您在啟動 EC2**2 執行個體時選擇 Amazon Linux AMI 2016.03.0** Amazon Linux AMI，則不需要安裝 ，`nfs-utils`因為它預設已包含在 AMI 中。

### 步驟 3.3：在您的 EC2 執行個體上掛載檔案系統並進行測試
<a name="wt1-mount-fs-and-test"></a>

現在，您將在您的 EC2 執行個體上掛載檔案系統。

1. 建立目錄 (「efs-mount-point」)。

   ```
   $ mkdir ~/efs-mount-point 
   ```

1. 掛載 EFS 檔案系統。

   ```
   $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-DNS:/   ~/efs-mount-point  
   ```

   該 EC2 執行個體可解析掛載目標 DNS 名稱至 IP 地址。您可以選擇性的直接指定掛載目標 IP 地址。

   ```
   $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/  ~/efs-mount-point
   ```

1. 現在您已在 EC2 執行個體上安裝 EFS 檔案系統，您可以建立檔案。

   1. 變更該目錄。

      ```
      $ cd ~/efs-mount-point  
      ```

   1. 列出該目錄內容。

      ```
      $ ls -al
      ```

      其應該保留為空。

      ```
      drwxr-xr-x 2 root     root     4096 Dec 29 22:33 .
      drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..
      ```

      

   1. 檔案系統根目錄在建立時是屬於根使用者，且根使用者擁有寫入權限，因此您需要變更權限以新增檔案。

      ```
      $ sudo chmod go+rw .
      ```

      現在，如果您嘗試 `ls -al` 命令，您將看到權限已遭變更。

      ```
      drwxrwxrwx 2 root     root     4096 Dec 29 22:33 .
      drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..
      ```

   1. 建立 文字檔案。

      ```
      $ touch test-file.txt 
      ```

   1. 列出目錄內容。

      ```
      $ ls -l
      ```

您現在已在 VPC 的 EC2 執行個體上成功建立並掛載 EFS 檔案系統。

您掛載的檔案系統在重新啟動期間將不會保留。若要自動重新掛載目錄，您可以使用 `fstab` 檔案。如果您正在使用 Auto Scaling 群組來啟動 EC2 執行個體，您也可以在啟動組態中設定指令碼。

## 步驟 4：清理
<a name="wt1-clean-up"></a>

如果您不再需要您建立的資源，您應該予以移除。您可利用 CLI 實現此功能。
+ 移除 EC2 資源 (EC2 執行個體和兩個安全群組)。當您刪除掛載目標時，Amazon EFS 會刪除網路介面。
+ 移除 EFS 資源 （檔案系統、掛載目標）。

**刪除在此逐步解說中建立 AWS 的資源**

1. 終止您為此教學課程建立的 EC2 執行個體。

   ```
   $ aws ec2 terminate-instances \
   --instance-ids instance-id \
   --profile adminuser
   ```

   您也可以使用主控台刪除 EC2 資源。如需說明，請參閱[終止執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console)。

1. 刪除該掛載目標。

   在刪除檔案系統前，您必須刪除為該檔案系統建立的掛載目標。您可以使用 `describe-mount-targets` CLI 命令取得掛載目標清單。

   ```
   $  aws efs describe-mount-targets \
   --file-system-id file-system-ID \
   --profile adminuser \
   --region aws-region
   ```

   然後使用 `delete-mount-target` CLI 命令來刪除掛載目標。

   ```
   $ aws efs delete-mount-target \
   --mount-target-id ID-of-mount-target-to-delete \
   --profile adminuser \
   --region aws-region
   ```

1. (選用) 刪除您建立的兩個安全群組。您不需支付建立安全群組的費用。

   您必須先刪除掛載目標的安全群組，才能刪除 EC2 執行個體的安全群組。掛載目標的安全群組規則是參考自 EC2 安全群組。因此，您無法先刪除 EC2 執行個體的安全群組。

   如需說明，請參閱《*Amazon EC2 使用者指南*》中的[刪除安全群組](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-sg.html#deleting-a-security-group)。

1. 使用 `delete-file-system` CLI 命令刪除檔案系統。您可以使用 `describe-file-systems` CLI 命令取得檔案系統清單。您可以自回應取得檔案系統 ID。

   ```
   aws efs describe-file-systems \
   --profile adminuser \
   --region aws-region
   ```

   提供檔案系統 ID 以刪除檔案系統。

   ```
   $ aws efs delete-file-system \
   --file-system-id ID-of-file-system-to-delete \
   --region aws-region \
   --profile adminuser
   ```

# 教學課程：使用內部部署 Linux 用戶端進行掛載
<a name="mounting-fs-mount-helper-direct"></a>

使用 Direct Connect 或 VPN 連線至 Amazon VPC 時，您可以在內部部署資料中心伺服器上掛載 EFS 檔案系統。下圖顯示從內部部署掛載 EFS 檔案系統 AWS 服務 所需的高階示意圖。

![\[使用 時，在內部部署用戶端上掛載 EFS 檔案系統 Direct Connect。\]](http://docs.aws.amazon.com/zh_tw/efs/latest/ug/images/efs-directconnect-how-it-works.png)


**注意**  
不支援使用 Amazon EFS 搭配以 Microsoft Windows 爲基礎的用戶端。

**Topics**
+ [先決條件](#efs-onpremises)
+ [步驟 1：建立您的 EFS 資源](#wt5-step1-efs)
+ [步驟 2：安裝 NFS 用戶端](#wt5-step4-install-nfs)
+ [步驟 3：在您的內部部署用戶端上掛載 EFS 檔案系統](#wt5-step3-connect)
+ [步驟 4：清除資源並保護 AWS 您的帳戶](#wt5-step4-cleanup)
+ [選用：加密傳輸中的資料](#wt5-step2-get-efs-utils)

## 先決條件
<a name="efs-onpremises"></a>

請確定您已有 Direct Connect 或 VPN 連線。如需 Direct Connect的詳細資訊，請參閱《Direct Connect 使用者指南》[https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)。如需設定 VPN 連線的詳細資訊，請參閱《*Amazon* [VPC 使用者指南》中的使用 將 VPC 連線至遠端網路 AWS Virtual Private Network](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)。

建立 Direct Connect 或 VPN 連線後，請在 Amazon VPC 中建立 EFS 檔案系統和掛載目標。之後，您就可以下載並安裝 amazon-efs-utils 工具。然後，您從現場部署用戶端中測試檔案系統。最後，逐步解說最後的清理步驟將為您提供移除這些資源的資訊。

本逐步解說會在美國西部 (奧勒岡) 區域 (`us-west-2`) 中建立所有這些資源。無論您 AWS 區域 使用哪種，請務必一致地使用它。您的所有資源—您的 VPC、掛載目標和 EFS 檔案系統—都必須位於相同的 中 AWS 區域，如下圖所示。

![\[使用 時，在內部部署用戶端上掛載 EFS 檔案系統 Direct Connect。\]](http://docs.aws.amazon.com/zh_tw/efs/latest/ug/images/efs-directconnect-how-it-works.png)


**注意**  
在某些情況下，本機應用程式可能需要知道該 EFS 檔案系統是否提供使用。在這些情況下，如果第一個掛載點暫時無法使用，則您的應用程式應該能夠指向不同的掛載點 IP 地址。在這個案例中，我們建議您將兩個現場部署用戶端連接到在不同可用區域 (AZ) 的檔案系統以獲得更高的可用性。

您可以使用 的根登入 AWS 帳戶 資料來登入 主控台，並嘗試此練習。不過， AWS Identity and Access Management (IAM) 最佳實務建議您不要使用 的根登入資料 AWS 帳戶。反之，在帳戶中建立一個管理員使用者並使用這些憑證來管理帳戶中的資源。如需詳細資訊，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[單一登入存取 AWS 帳戶](https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html)。

您可以使用預設 VPC 或在帳戶中建立的自訂 VPC。預設的 VPC 設定適用於此逐步解說。不過，如果您使用的是自訂 VPC，請檢查下列各項：
+ 該網際網路閘道已連接至您的 VPC。如需詳細資訊，請參閱[《Amazon VPC 使用者指南》中的使用網際網路閘道啟用 VPC 的網際網路存取](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。 **
+ 該 VPC 路由表包含傳送所有網際網路綁定型流量到網際網路閘道的規則。

## 步驟 1：建立您的 EFS 資源
<a name="wt5-step1-efs"></a>

在此步驟中，您會建立 EFS 檔案系統和掛載目標。

**建立 EFS 檔案系統**

1. 開啟 Amazon Elastic File System 主控台，網址為 [https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/)。

1. 選擇 **Create File System (建立檔案系統)**。

1. 從 **VPC (VPC)** 清單中選擇預設 VPC。

1. 選取所有可用區域的核取方塊。確保它們已選擇預設子網路、自動 IP 地址和預設安全群組。這些是您的掛載目標。如需詳細資訊，請參閱[管理掛載目標](accessing-fs.md)。

1. 選擇 **Next Step (後續步驟)**。

1. 為您的檔案系統命名，將 **general purpose (一般用途)** 選擇為您的預設效能模式，然後選擇 **Next Step (下一步)**。

1. 選擇 **Create File System (建立檔案系統)**。

1. 從清單中選擇您的檔案系統，並記下 **Security group (安全群組)** 值。您在下一個步驟中需要使用到此數值。

您剛建立的檔案系統已有掛載目標。每個掛載目標都有一個關聯的安全群組。做為虛擬防火牆的安全群組會控制網路流量。如果您在建立掛載目標未提供安全群組，Amazon EFS 會將 VPC 的預設安全群組與其相關聯。如果您完全依照上述步驟，則掛載目標使用的是預設安全群組。

接著，您將規則新增至掛載目標的安全群組，以允許對網路檔案系統 (NFS) 連接埠 (2049) 的傳入流量。您可以使用 AWS 管理主控台 將規則新增至掛載目標 VPC 中的安全群組。

**允許對 NFS 連接埠的傳入流量**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

1. 在**網路與安全性**下，選擇**安全群組**。

1. 選擇與您檔案系統關聯的安全群組。您在 [步驟 1：建立您的 EFS 資源](#wt5-step1-efs) 結尾時記下此資訊。

1. 在安全群組清單下方顯示的標籤窗格中，選擇**傳入** 索引標籤。

1. 選擇**編輯**。

1. 選擇 **Add Rule (新增規則)**，然後選擇以下其中一種類型的規則：
   + **類型** – **NFS (NFS)**
   + **來源** – **Anywhere (隨處)**

   我們建議您只使用 **Anywhere (隨處)** 來源進行測試。您可以建立設為在現場部署用戶端之 IP 地址的自訂來源，或從用戶端本身使用主控台，然後選擇 **My IP (我的 IP)**。
**注意**  
您不需要新增傳出規則，因為預設的傳出規則可讓所有流量離開。如果您沒有此預設傳出規則，請新增傳出規則以在 NFS 連接埠 2049 上開啟 TCP 連線，將掛載目標安全群組識別為目的地。

## 步驟 2：安裝 NFS 用戶端
<a name="wt5-step4-install-nfs"></a>

在此步驟中，您將安裝 NFS 用戶端。

**將 NFS 用戶端安裝在您的現場部署伺服器**
**注意**  
如果您需要加密傳輸中的資料，請使用 Amazon EFS 掛載協助程式 `amazon-efs-utils`，而不要使用 NFS 用戶端。如需安裝 amazon-efs-utils 的詳細資訊，請參閱 *選用：對傳輸中資料進行加密*一節。

1. 存取現場部署用戶端的終端機。

1. 安裝 NFS。

   如果您使用的是 Red Hat Linux，請使用下列命令來安裝 NFS。

   ```
   $ sudo yum -y install nfs-utils
   ```

   如果您使用的是 Ubuntu，請使用下列命令來安裝 NFS。

   ```
   $ sudo apt-get -y install nfs-common
   ```

## 步驟 3：在您的內部部署用戶端上掛載 EFS 檔案系統
<a name="wt5-step3-connect"></a>

**建立掛載目錄**

1.  使用以下命令建立掛載點的目錄。  
**Example**  

   ```
   mkdir ~/efs
   ```

1. 選擇可用區域中掛載目標的慣用 IP 地址。您可以透過現場部署 Linux 用戶端測量延遲。若要這樣做，請對在不同可用區域的 EC2 執行個體之 IP 地址使用以終端機為基礎的工具 (例如 `ping`)，以尋找具最低延遲的 IP 地址。
+ 執行掛載命令，並使用掛載目標的 IP 地址進行檔案系統掛載。

  ```
  $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/   ~/efs
  ```

現在您已掛載 EFS 檔案系統，您可以使用下列程序進行測試。

**測試 EFS 檔案系統連線**

1. 使用下列命令，將目錄變更為您建立的新目錄。

   ```
   $ cd ~/efs
   ```

1. 建立子目錄，並將子目錄的擁有權變更為 EC2 執行個體使用者。接著，使用下列命令導覽至新目錄。

   ```
   $ sudo mkdir getting-started
   $ sudo chown ec2-user getting-started
   $ cd getting-started
   ```

1. 透過下列命令建立文字檔。

   ```
   $ touch test-file.txt
   ```

1. 透過以下命令列出目錄內容。

   ```
   $ ls -al
   ```

因此，會建立以下檔案。

```
-rw-rw-r-- 1 username username 0 Nov 15 15:32 test-file.txt
```

**警告**  
使用 `_netdev` 選項，此選項用於在自動掛載檔案系統時識別網路檔案系統。若 `_netdev` 已遺失，EC2 執行個體可能會停止回應。此結果是因為網路檔案系統在運算執行個體開始聯網後需要初始化。如需詳細資訊，請參閱[自動掛載失敗且執行個體沒有回應](troubleshooting-efs-mounting.md#automount-fails)。

## 步驟 4：清除資源並保護 AWS 您的帳戶
<a name="wt5-step4-cleanup"></a>

在完成此逐步解說後，或者，如果您不想探索逐步解說，您應該遵循這些步驟以清除資源並保護 AWS 帳戶。

**清除資源並保護您的 AWS 帳戶**

1. 使用下列命令卸載 EFS 檔案系統。

   ```
   $ sudo umount ~/efs
   ```

1. 在 Amazon EFS 主控台開啟 [Amazon EFS 主控台](https://console.aws.amazon.com/efs/)。

1. 選擇您要從檔案系統清單刪除的 EFS 檔案系統。

1. 針對 **Actions (動作)**，選擇 **Delete file system (刪除檔案系統)**。

1. 在**永久刪除檔案系統**對話方塊中，輸入要刪除 EFS 檔案系統的檔案系統 ID，然後選擇**刪除檔案系統**。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**安全群組**。

1. 選取您在此逐步解說中將規則新增至其中的安全群組名稱。
**警告**  
無法刪除 VPC 的預設安全群組。

1. 在 **Actions (動作)** 中，選擇 **Edit inbound rules (編輯傳入規則)**。

1. 選擇在您新增之傳入規則結尾的 X 並選擇 **Save (儲存)**。

## 選用：加密傳輸中的資料
<a name="wt5-step2-get-efs-utils"></a>

若要加密傳輸中的資料，請使用 Amazon EFS 掛載協助程式 amazon-efs-utils，而不要使用 NFS 用戶端。

*amazon-efs-utils* 套件是 Amazon EFS 工具的開放原始碼集合。amazon-efs-utils 集合隨附掛載協助程式和工具，可讓您更輕鬆地對 Amazon EFS 的傳輸中的資料進行加密。如需此套件的詳細資訊，請參閱[安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。此套裝提供免費下載，您可以從 GitHub 取得透過複製套件的儲存庫。

**從 GitHub 複製 amazon-efs-utils**

1. 存取現場部署用戶端的終端機。

1. 透過終端機，使用下列命令從 GitHub 將 amazon-efs-utils 工具複製到您選擇的目錄。

   ```
   git clone https://github.com/aws/efs-utils
   ```

現在您已有套件，即可進行安裝。根據現場部署用戶端的 Linux 發行版本，此安裝的處理方式會有所不同。支援以下發行版本：
+ Amazon Linux 2
+ Amazon Linux
+ Red Hat Enterprise Linux （以及 CentOS 等衍生產品） 第 8 版及更新版本
+ Ubuntu 16.04 LTS 和更新版本

**建置和安裝 amazon-efs-utils 做為 RPM 套件**

1. 在用戶端開啟終端機並導覽至已從 GitHub 複製 amazon-efs-utils 套件的目錄。

1. 使用以下命令建置套件。

   ```
   make rpm
   ```
**注意**  
如果您尚未這麼做，則請使用下列命令安裝 rpm-builder 套件。  

   ```
   sudo yum -y install rpm-build
   ```

1. 使用下列命令安裝 套件。

   ```
   sudo yum -y install build/amazon-efs-utils*rpm
   ```

**建置和安裝 amazon-efs-utils 做為 deb 套件**

1. 在用戶端開啟終端機並導覽至已從 GitHub 複製 amazon-efs-utils 套件的目錄。

1. 使用以下命令建置套件。

   ```
   ./build-deb.sh
   ```

1. 使用下列命令安裝 套件。

   ```
   sudo apt-get install build/amazon-efs-utils*deb
   ```

安裝套件後，請設定 amazon-efs-utils 以在 AWS 區域 搭配 Direct Connect 或 VPN 使用。

**設定 amazon-efs-utils 以用於您的 AWS 區域**

1. 透過 Secure Shell (SSH) 存取 EC2 執行個體的終端機，並使用適當的使用者名稱登入。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 使用您選擇的文字編輯器，開啟 `/etc/amazon/efs/efs-utils.conf` 檔案。

1. 尋找行 `“dns_name_format = {fs_id}.efs.{region}.amazonaws.com”`。

1. 使用 AWS 區域的 ID (例如 `us-west-2`) 變更 `{region}`。

若要將 EFS 檔案系統掛載在內部部署用戶端上，請先開啟在內部部署 Linux 用戶端上的終端機。若要掛載系統，您需要檔案系統 ID、其中一個掛載目標的掛載目標 IP 地址，以及檔案系統的 AWS 區域。如果您建立多個檔案系統的掛載目標，則可以選擇任何其中一個。

當您擁有該資訊時，您可以使用三個步驟來掛載檔案系統：

**建立掛載目錄**

1.  使用以下命令建立掛載點的目錄。  
**Example**  

   ```
   mkdir ~/efs
   ```

1. 選擇可用區域中掛載目標的慣用 IP 地址。您可以透過現場部署 Linux 用戶端測量延遲。若要這樣做，請對在不同可用區域的 EC2 執行個體之 IP 地址使用以終端機為基礎的工具 (例如 `ping`)，以尋找具最低延遲的 IP 地址。

**更新 `/etc/hosts`**
+ 使用以下格式透過檔案系統 ID 和掛載目標 IP 地址，將項目新增到本機 `/etc/hosts` 檔案。

  ```
  mount-target-IP-Address file-system-ID.efs.region.amazonaws.com
  ```  
**Example**  

  ```
  192.0.2.0 fs-12345678.efs.us-west-2.amazonaws.com
  ```

**建立掛載目錄**

1.  使用以下命令建立掛載點的目錄。  
**Example**  

   ```
   mkdir ~/efs
   ```

1. 執行掛載命令來掛載檔案系統。  
**Example**  

   ```
   sudo mount -t efs fs-12345678 ~/efs
   ```

   如果您想要使用傳輸中的資料加密，掛載命令看起來如下所示。  
**Example**  

   ```
   sudo mount -t efs -o tls fs-12345678 ~/efs
   ```

# 教學課程：從不同的 VPC 掛載檔案系統
<a name="efs-different-vpc"></a>

在本教學課程中，您會設定 EC2 執行個體來掛載位於不同虛擬私有雲端 (VPC) 中的 EFS 檔案系統。您可以使用 EFS 掛載協助程式來執行此操作。掛載協助程式是 `amazon-efs-utils` 工具組的一部分。如需 `amazon-efs-utils` 的相關資訊，請參閱 [安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。

請務必使用 VPC 對等連接或 VPC 傳輸閘道來連接用戶端的 VPC 和 EFS 檔案系統的 VPC。當您使用 VPC 對等互連或傳輸閘道來連接 VPCs 時，一個 VPC 中的 EC2 執行個體可以存取另一個 VPC 中的 EFS 檔案系統，即使 VPCs屬於不同的帳戶。

**注意**  
不支援使用 Amazon EFS 搭配以 Microsoft Windows 爲基礎的用戶端。

**Topics**
+ [先決條件](#wt6-prepare)
+ [步驟 1：判斷掛載目標可用區域的 ID](#wt6-efs-utils-step1)
+ [步驟 2：判斷掛載目標 IP 地址](#wt6-efs-utils-step2)
+ [步驟 3：新增掛載目標的主機項目](#wt6-efs-utils-step3)
+ [步驟 4：使用 EFS 掛載協助程式掛載檔案系統](#wt6-efs-utils-step4)
+ [步驟 5：清理資源並保護您的 AWS 帳戶](#wt6-step5-cleanup)

## 先決條件
<a name="wt6-prepare"></a>

若要完成本教學課程，您必須具備下列項目：
+ 使用此程序之前，EC2 執行個體上已安裝 `amazon-efs-utils` 工具組。如需安裝 `amazon-efs-utils` 的指示，請參閱[安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。
+ 下列其中一項：
  + EFS 檔案系統所在的 VPC 與 EC2 執行個體所在的 VPC 之間的 VPC 對等連接。*VPC 對等連接*是在兩個 VPC 之間的網路連線。這種連線類型可讓您使用私有網際網路通訊協定第 4 版 (IPv4) 或網際網路通訊協定第 6 版 (IPv6) 地址，在兩者間路由流量。您可以使用 VPC 對等互連來連接相同 AWS 區域 或之間的 VPCs AWS 區域。如需詳細資訊，請參閱《Amazon VPC 對等互連指南》**中的[建立和接受 Amazon VPC 對等互連連線](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html)。
  + EFS 檔案系統所在的 VPC 與 EC2 執行個體所在之 VPC 之間的傳輸閘道連接。*傳輸閘道*是網路傳輸中樞，您可以用於互相連接 VPC 和現場部署網路。如需詳細資訊，請參閱《[Amazon VPC Transit Gateways 指南》中的使用 Amazon VPC Transit Gateways 的入門](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-getting-started.html)。 **

## 步驟 1：判斷掛載目標可用區域的 ID
<a name="wt6-efs-utils-step1"></a>

為了確保檔案系統的高可用性，我們建議您一律使用與 NFS 用戶端位於相同可用區域的 EC2 掛載目標 IP 地址。如果要掛載另一個帳戶中的 EFS 檔案系統，請確保 NFS 用戶端和 EFS 掛載目標位於相同的可用區域 ID。此要求適用的原因是，可用區域名稱在各個帳戶間可能會有不同。

**決定 EC2 執行個體的可用區域。**

1. 連線至 EC2 執行個體。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 您可以使用 `describe-availability-zones` CLI 命令來判斷 EC2 執行個體所在的可用區域ID，如下所示。

   ```
   [ec2-user@ip-10.0.0.1] $ aws ec2 describe-availability-zones --zone-name
   {
       "AvailabilityZones": [
           {
               "State": "available", 
               "ZoneName": "us-east-2b", 
               "Messages": [], 
               "ZoneId": "use2-az2", 
               "RegionName": "us-east-2"
           }
       ]
   }
   ```

   可用區域 ID 會在 `ZoneId` 屬性 `use2-az2` 中傳回。

## 步驟 2：判斷掛載目標 IP 地址
<a name="wt6-efs-utils-step2"></a>

既然您已知道 EC2 執行個體的可用區域ID，就可以開始擷取位於相同可用區域ID 的掛載目標 IP 地址。

**判斷同一個可用區域ID 中的掛載目標 IP 地址**
+ 您可以使用 `describe-mount-targets` CLI 命令來擷取 `use2-az2` AZ ID 中的檔案系統掛載目標 IP 地址，如下所示。

  ```
  $ aws efs describe-mount-targets --file-system-id file_system_id
  {
      "MountTargets": [
          {
              "OwnerId": "111122223333",
              "MountTargetId": "fsmt-11223344", 
    =====>    "AvailabilityZoneId": "use2-az2",
              "NetworkInterfaceId": "eni-048c09a306023eeec", 
              "AvailabilityZoneName": "us-east-2b", 
              "FileSystemId": "fs-01234567", 
              "LifeCycleState": "available", 
              "SubnetId": "subnet-06eb0da37ee82a64f", 
              "OwnerId": "958322738406", 
    =====>    "IpAddress": "10.0.2.153"
          }, 
  ...
          {
              "OwnerId": "111122223333",
              "MountTargetId": "fsmt-667788aa", 
              "AvailabilityZoneId": "use2-az3", 
              "NetworkInterfaceId": "eni-0edb579d21ed39261", 
              "AvailabilityZoneName": "us-east-2c", 
              "FileSystemId": "fs-01234567", 
              "LifeCycleState": "available", 
              "SubnetId": "subnet-0ee85556822c441af", 
              "OwnerId": "958322738406", 
              "IpAddress": "10.0.3.107"
          }
      ]
  }
  ```

  `use2-az2`可用區域ID 中的掛載目標 IP 地址為 10.0.2.153。

## 步驟 3：新增掛載目標的主機項目
<a name="wt6-efs-utils-step3"></a>

您現在可以在 EC2 執行個體的 `/etc/hosts` 檔案中建立一個項目，以便將掛載目標 IP 地址對應至 EFS 檔案系統的主機名稱。

**新增掛載目標的主機項目**

1. 請在 EC2 執行個體的 `/etc/hosts` 檔案中新增一行掛載目標 IP 地址。該項目使用的格式為 `mount-target-IP-Address file-system-ID.efs.region.amazonaws.com`。您可以利用下列命令來將該行新增至檔案。

   ```
   echo "10.0.2.153 fs-01234567.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
   ```

1. 請確定 EC2 執行個體和掛載目標的 VPC 安全群組具有允許視需要存取 EFS 檔案系統的規則。如需詳細資訊，請參閱[使用 VPC 安全群組](network-access.md)。

## 步驟 4：使用 EFS 掛載協助程式掛載檔案系統
<a name="wt6-efs-utils-step4"></a>

若要掛載 EFS 檔案系統，首先您必須在 EC2 執行個體上建立掛載目錄。然後，使用 EFS 掛載協助程式，您可以使用 AWS Identity and Access Management (IAM) 授權或 EFS 存取點掛載檔案系統。如需詳細資訊，請參閱[使用 IAM 控制檔案系統的存取](iam-access-control-nfs-efs.md)及[使用存取點](efs-access-points.md)。

**建立掛載目錄**
+ 您可以使用下列命令來建立掛載檔案系統的目錄。

  ```
  $ sudo mkdir /mnt/efs/
  ```

**使用 IAM 授權掛載檔案系統**
+ 您可以使用下列命令來透過 IAM 授權掛載檔案系統。

  ```
  $ sudo mount -t efs -o tls,iam file-system-id /mnt/efs/
  ```

**使用 EFS 存取點掛載檔案系統**
+ 您可以使用下列命令來透過 EFS 存取點掛載檔案系統。

  ```
  $ sudo mount -t efs -o tls,accesspoint=access-point-id file-system-id /mnt/efs/
  ```

現在您已掛載 EFS 檔案系統，您可以使用下列程序進行測試。

**測試 EFS 檔案系統連線**

1. 使用下列命令，將目錄變更為您建立的新目錄。

   ```
   $ cd ~/mnt/efs
   ```

1. 建立子目錄，並將子目錄的擁有權變更為 EC2 執行個體使用者。接著，使用下列命令導覽至新目錄。

   ```
   $ sudo mkdir getting-started
   $ sudo chown ec2-user getting-started
   $ cd getting-started
   ```

1. 透過下列命令建立文字檔。

   ```
   $ touch test-file.txt
   ```

1. 透過以下命令列出目錄內容。

   ```
   $ ls -al
   ```

因此，會建立以下檔案。

```
-rw-rw-r-- 1 username username 0 Nov 15 15:32 test-file.txt
```

您也可以透過將項目新增至 `/etc/fstab` 檔案以自動掛載檔案系統。如需詳細資訊，請參閱[在現有的 EC2 Linux 執行個體上啟用自動掛載](mount-fs-auto-mount-update-fstab.md)。

**警告**  
使用 `_netdev` 選項，此選項用於在自動掛載檔案系統時識別網路檔案系統。若 `_netdev` 已遺失，EC2 執行個體可能會停止回應。此結果是因為網路檔案系統在運算執行個體開始聯網後需要初始化。如需詳細資訊，請參閱[自動掛載失敗且執行個體沒有回應](troubleshooting-efs-mounting.md#automount-fails)。

## 步驟 5：清理資源並保護您的 AWS 帳戶
<a name="wt6-step5-cleanup"></a>

完成本教學課程後，請執行下列步驟來清理您的 資源並保護您的 AWS 帳戶。

**清除資源並保護您的 AWS 帳戶**

1. 使用下列命令卸載 EFS 檔案系統。

   ```
   $ sudo umount ~/efs
   ```

1. 前往 [https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/) 開啟 Amazon Elastic File System 主控台。

1. 選擇您要從檔案系統清單刪除的 EFS 檔案系統。

1. 針對 **Actions (動作)**，選擇 **Delete file system (刪除檔案系統)**。

1. 在**永久刪除檔案系統**對話方塊中，輸入要刪除 EFS 檔案系統的檔案系統 ID，然後選擇**刪除檔案系統**。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**安全群組**。

1. 選取您在此教學課程中新增規則的安全群組名稱。
**警告**  
無法刪除 VPC 的預設安全群組。

1. 在 **Actions (動作)** 中，選擇 **Edit inbound rules (編輯傳入規則)**。

1. 選擇在您新增之傳入規則結尾的 X 並選擇 **Save (儲存)**。

# 掛載問題疑難排解
<a name="troubleshooting-efs-mounting"></a>

您可以在下面找到 EFS 檔案系統掛載問題疑難排解的相關資訊。

## 在 Windows 執行個體上掛載檔案系統失敗
<a name="mount-windows-instance-fails"></a>

在 Microsoft Windows 上的 Amazon EC2 執行個體掛載檔案系統失敗。

**採取動作**  
不要使用不支援的 Windows EC2 執行個體的 Amazon EFS。

## 伺服器已拒絕存取
<a name="mount-fail-access-denied-by-server"></a>

檔案系統掛載失敗，並顯示下列訊息：

```
/efs mount.nfs4: access denied by server while mounting 127.0.0.1:/
```

如果 NFS 用戶端沒有檔案系統的掛載許可，就會發生這個問題。

**採取動作**  
如果您嘗試使用 IAM 掛載檔案系統，請確定您在掛載命令中使用 `-o iam`或 -o tls 選項。這會告訴 EFS 掛載協助程式，將您的憑證傳遞到 EFS 掛載目標。如果您仍然不具備存取權，請檢查檔案系統政策和身分政策，以確定沒有適用於連線的 DENY 子句，而且至少有一個適用於連線的 ALLOW 子句。如需詳細資訊，請參閱[使用 IAM 控制檔案系統的存取](iam-access-control-nfs-efs.md)及[建立檔案系統政策](create-file-system-policy.md)。

## 自動掛載失敗且執行個體沒有回應
<a name="automount-fails"></a>

如果檔案系統已自動掛載於執行個體上且沒有宣告 `_netdev` 選項，則可能發生此問題。若 `_netdev` 已遺失，EC2 執行個體可能會停止回應。此結果是因為網路檔案系統在運算執行個體開始聯網後需要初始化。

**採取動作**  
如果發生此問題，請聯絡 AWS Support。

## 在 /etc/fstab 中掛載多個 Amazon EFS 檔案系統失敗
<a name="automount-fix-multiple-fs"></a>

對於在 `/etc/fstab` 擁有兩個或以上 Amazon EFS 項目，並使用 systemd init 系統的執行個體而言，可能有些時候不會掛載這些部分或全部的項目。在這種情況下，`dmesg` 輸出會顯示一或多個類似以下的行。

```
NFS: nfs4_discover_server_trunking unhandled error -512. Exiting with error EIO
```

**採取動作**  
在這種情況下，我們建議您在 `/etc/systemd/system/mount-nfs-sequentially.service` 建立新的 systemd 服務檔案。在檔案中需要插入代碼，代碼内容取決于您是通過手動掛載檔案系統還是使用 Amazon EFS 掛載協助程式。
+ 如果您要手動掛載檔案系統，則 `ExecStart` 指令必須指向網路檔案系統 (NFS4)。在檔案中插入下列代碼：

  ```
  [Unit]
  Description=Workaround for mounting NFS file systems sequentially at boot time
  After=remote-fs.target
  
  [Service]
  Type=oneshot
  ExecStart=/bin/mount -avt nfs4
  RemainAfterExit=yes
  
  [Install]
  WantedBy=multi-user.target
  ```
+ 如果您使用的是 Amazon EFS 掛載協助程式，則 `ExecStart` 命令必須指向 EFS 而非 NFS4，才能使用 Transport Layer Security (TLS)。在檔案中插入下列代碼：

  ```
  [Unit]
  Description=Workaround for mounting NFS file systems sequentially at boot time
  After=remote-fs.target
  
  [Service]
  Type=oneshot
  ExecStart=/bin/mount -avt efs
  RemainAfterExit=yes
  
  [Install]
  WantedBy=multi-user.target
  ```

建立檔案后，請執行以下兩個命令：

1. `sudo systemctl daemon-reload`

1. `sudo systemctl enable mount-nfs-sequentially.service`

然後重新啟動您的 Amazon EC2 執行個體。檔案系統為隨需掛載，通常可在一秒內完成。

## 出現「錯誤 fs 類型」錯誤訊息的掛載命令失敗
<a name="mount-error-wrong-fs"></a>

出現以下錯誤訊息的掛載命令失敗。

```
mount: wrong fs type, bad option, bad superblock on 10.1.25.30:/, 
missing codepage or helper program, or other error (for several filesystems 
(e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try dmesg | tail or so.
```

**採取動作**  
如果您收到此訊息，請安裝 `nfs-utils` (或 Ubuntu 的 `nfs-common`) 套件。如需詳細資訊，請參閱[安裝 NFS 用戶端](mounting-fs-install-nfsclient.md)。

## 出現「錯誤的掛載選項」錯誤訊息的掛載命令失敗
<a name="mount-error-incorrect-mount"></a>

出現以下錯誤訊息的掛載命令失敗。

```
mount.nfs: an incorrect mount option was specified
```

**採取動作**  
此錯誤訊息最可能表示您的 Linux 發行版本不支援 4.0 和 4.1 版本的網路檔案系統 (NFSv4)。您可以執行以下命令以確認是否為此情況。

```
$ grep CONFIG_NFS_V4_1 /boot/config*
```

如果上述命令傳回 `# CONFIG_NFS_V4_1 is not set`，則您的 Linux 發行版本不支援 NFSv4.1。如需適用於 Amazon Elastic Compute Cloud (Amazon EC2) 且支援 NFSv4.1 的 Amazon Machine Image (AMI) 詳細資訊，請參閱 [NFS 支援](mounting-fs-old.md#mounting-fs-nfs-info)。

## 使用存取點掛載失敗
<a name="mount-error-no-such-file"></a>

使用存取點進行掛載時，掛載命令會失敗，並顯示下列錯誤訊息：

```
mount.nfs4: mounting access_point failed, reason given by server: No such file or directory
```

**採取動作**  
此錯誤訊息指出指定的 EFS 路徑不存在。請確定您已提供存取點根目錄的擁有權和權限。EFS 不使用這項資訊將不能建立根目錄。如需詳細資訊，請參閱[使用存取點](efs-access-points.md)。

如果您未指定任何根目錄擁有權和權限，且根目錄尚未存在，EFS 將不會建立根目錄。如果出現以上情況，那麽嘗試使用存取點掛載檔案系統將會失敗。

## 在檔案系統建立後立即發生檔案系統掛載失敗
<a name="mount-fails-propegation"></a>

建立網域名稱服務 (DNS) 記錄的掛載目標後，最多可能需要 90 秒才能在 AWS 區域區域中完全傳播。

**採取動作**  
如果您以程式設計方式建立和掛載檔案系統，例如使用 CloudFormation 範本，我們建議您實作等待條件。

## 檔案系統掛載停止回應，然後因逾時錯誤而失敗
<a name="mount-hangs-fails-timeout"></a>

檔案系統掛載命令停止回應一至兩分鐘，然後因逾時錯誤而失敗。下列代碼顯示了範例。

```
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/ mnt

[2+ minute wait here]
mount.nfs: Connection timed out
$Â 
```

**採取動作**

當 Amazon EC2 執行個體或掛載目標安全群組未正確設定時，則可能發生此錯誤。請確定掛載目標安全群組具有傳入規則，允許從 EC2 安全群組對連接埠 2049 進行 NFS 存取。如需詳細資訊，請參閱[使用 VPC 安全群組](network-access.md)。

確認您指定的掛載目標 IP 地址為有效。如果您指定了錯誤的 IP 地址，且在該 IP 地址沒有其他內容可拒絕掛載，則您可能會遇到這個問題。

## 使用 DNS 名稱進行 NFS 掛載檔案系統失敗
<a name="mount-fails-dns-name"></a>

嘗試使用 NFS 用戶端 (不使用 `amazon-efs-utils` 用戶端) 掛載檔案系統，而掛載目標通過檔案系統的 DNS 名稱來標識，結果失敗，如下列範例所示：

```
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.efs.aws-region.amazonaws.com:/ mnt   
mount.nfs: Failed to resolve server file-system-id.efs.aws-region.amazonaws.com: 
  Name or service not known.   

$ 
```

**採取動作**

檢查 VPC 組態。如果您使用的是自訂 VPC，請確保 DNS 設定已啟用。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。此外，檔案系統和掛載目標 DNS 名稱無法從其所在的 VPC 外部進行解析。

在 `mount`命令中使用檔案系統的 DNS 名稱來掛載檔案系統之前，您必須執行下列動作：
+ 請確認相同可用區域中有做為 Amazon EC2 執行個體的 Amazon EFS 掛載目標。
+ 請確認有掛載目標位於 Amazon EC2 執行個體所在的同一 VPC。否則，您無法將 DNS 名稱解析用於在另一個 VPC 中的 EFS 掛載目標。如需詳細資訊，請參閱[從另一個 AWS 帳戶 或 VPC 掛載 EFS 檔案系統](manage-fs-access-vpc-peering.md)。
+ 在 Amazon VPC 中連線您的 Amazon EC2 執行個體，並設為使用 Amazon 提供的 DNS 伺服器。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [Amazon VPC 中的 DHCP 選項集](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。
+ 確認連線 Amazon EC2 執行個體的 Amazon VPC 擁有已啟用的 DNS 主機名稱。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)。

## 出現「nfs 未回應」的檔案系統掛載失敗
<a name="tcp-reconnect-nfs-not-responding"></a>

出現 `"nfs: server_name still not responding"` 傳輸控制通訊協定 (TCP) 重新連線事件，Amazon EFS 檔案系統掛載失敗。

**採取動作**

使用 `noresvport` 掛載選項，確定 NFS 用戶端會在網路連線重新建立時使用新的 (TCP) 來源連接埠。這可讓您確保網路復原事件後的不中斷可用性。

## 掛載目標生命週期狀態已停滯
<a name="mount-target-lifecycle-stuck"></a>

該掛載目標生命週期狀態停滯在**建立**或**刪除**狀態。

**採取動作**  
重試 `CreateMountTarget` 或 `DeleteMountTarget` 呼叫。

## 掛載目標生命週期狀態顯示錯誤
<a name="mount-target-dns-error"></a>

掛載目標生命週期狀態顯示**錯誤**。

**採取動作**

 如果虛擬私有雲端 (VPC) 的託管區域有衝突，Amazon EFS 將無法為新檔案系統掛載目標建立必要的網域名稱系統 (DNS) 記錄。Amazon EFS 無法在客戶擁有的託管區域內建立新記錄。如果您需要維護具有衝突 `efs.<region>.amazonaws.com` DNS 範圍的託管區域，請在單獨的 VPC 中建立託管區域。如需關於在 VPC中考量 DNS 的詳細資訊，請參閱[ VPC 中的 DNS 屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。

若要解決此問題，請從 VPC 刪除有衝突的 `efs.<region>.amazonaws.com` 託管，然後再次建立掛載目標。如需建立掛載目標的詳細資訊，請參閱 [管理掛載目標](accessing-fs.md)。

## 掛載未回應
<a name="mount-unresponsive"></a>

Amazon EFS 掛載沒有回應。例如，`ls` 命令停止回應。

**採取動作**

如果另一個應用程式正在寫入大量資料到檔案系統，則可能發生此錯誤。對寫入操作尚未完成前的檔案進行存取可能會被拒。一般而言，對正在被寫入的檔案嘗試任何存取的命令或應用程式都可能造成停止回應。例如，當 `ls` 命令遇到被寫入的檔案時，可能會停止回應。這是因為一些 Linux 發行版本設定了 `ls` 命令別名，因此除了列出目錄內容外，它也會擷取檔案屬性。

若要解決這個問題，請確認另一個應用程式正在寫入檔案至 Amazon EFS 掛載，並處於 `Uninterruptible sleep` (`D`) 狀態，如以下範例所示：

```
$ ps aux | grep large_io.py 
root 33253 0.5 0.0 126652 5020 pts/3 D+ 18:22 0:00 python large_io.py /efs/large_file
```

在您已確認是這種情況後，您可以等待其他寫入操作完成，或實施解決方法來處理此問題。在 `ls` 範例中，您可以直接使用 `/bin/ls` 命令，而不要使用別名。如此可讓命令繼續執行，而不會因正在寫入的檔案而停止回應。一般而言，如果應用程式的資料寫入可以強制定期排清資料 (或許使用 `fsync(2)`)，如此一來可協助其他應用程式改善您的檔案系統回應能力。不過，這項改善措施可能會犧牲應用程式寫入資料時的效能。

## 掛載的客戶端中斷連線
<a name="client-disconnected"></a>

客戶端掛載到 Amazon EFS 檔案系統后，偶爾會因爲各種原因中斷連線。發生中斷時，將 NFS 用戶端設計為自動連線，盡量減少日常中斷對應用程式效能和可用性的影響。在大多數情況下，用戶端會在數秒內透明地重新連線。

然而，舊版 Linux 核心 (v5.4 及以下版本) 中包含的 NFS 用戶端軟體存在一種行為，即中斷連線時會引發 NFS 用戶端嘗試在相同的 TCP 來源連接埠上重新連線。此行為不符合 TCP RFC 要求，而且會阻止這些用戶端無法快速重新建立與 EFS 伺服器 (在此情況下為 EFS 檔案系統) 的連線。

若要解決此問題，強烈建議您使用 Amazon EFS 掛載協助程式掛載 EFS 檔案系統。EFS 掛載協助程式使用適用於 Amazon EFS 檔案系統的最佳掛載設定。如需關於 EFS 客戶端和掛載協助程式的詳細資訊，請參閱 [安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。

如果您無法使用 EFS 掛載協助程式，強烈建議您使用 `noresvport` NFS 掛載選項，此選項會指示 NFS 用戶端使用新的 TCP 來源連接埠重新建立連線，以避免無法使用的問題。如需詳細資訊，請參閱[建議的 NFS 掛載設定](mounting-fs-nfs-mount-settings.md)。

## 新掛載的檔案系統操作傳回「錯誤的檔案處理」錯誤
<a name="operations-return-bad-file-handle"></a>

新掛載檔案系統執行的操作傳回了 `bad file handle` 錯誤。

如果 Amazon EC2 執行個體已透過特定 IP 地址連接到一個檔案系統和一個掛載目標，而該檔案系統與掛載目標已被刪除，則可能出現此錯誤。如果您使用相同掛載目標 IP 地址建立了新的檔案系統與掛載目標以連接到 Amazon EC2 執行個體，則可能發生此問題。

**採取動作**  
您可以透過卸載檔案系統來解決此錯誤，然後重新掛載該檔案系統至 Amazon EC2 執行個體。如需卸載 Amazon EFS 檔案系統的詳細資訊，請參閱 [卸載檔案系統](unmounting-fs.md)。

## 卸載檔案系統失敗
<a name="troubleshooting-unmounting"></a>

如果您的檔案系統正在忙碌中，則無法將其卸載。

**採取動作**  
您可以透過下列方式來解決問題：
+ 使用延遲卸載，**umount -l**在執行時將檔案系統與檔案系統階層分離，然後在檔案系統不再忙碌時立即清除所有對檔案系統的參考。
+ 等待所有讀取和寫入操作完成，然後再次嘗試 **umount** 命令。
+ 使用 **umount -f** 指令強制卸載。
**警告**  
強制卸載會中斷目前在該檔案系統中進行的任何資料讀取或寫入操作。使用此選項時，請參閱 [umount 命令手冊頁](https://man7.org/linux/man-pages/man8/umount.8.html)，獲取詳細咨詢和指導方針。