

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

# 在調整 Amazon EBS 磁碟區大小後擴展檔案系統
<a name="recognize-expanded-volume-linux"></a>

[增加 EBS 磁碟區的大小](requesting-ebs-volume-modifications.md)後，您必須將分割區和檔案系統擴展到新的較大大小。您可在磁碟區進入 `optimizing` 狀態後立即執行此操作。

## 開始之前
<a name="extend-file-system"></a>
+ 建立磁碟區的快照，以防您需要復原變更。如需詳細資訊，請參閱[建立 Amazon EBS 快照](ebs-creating-snapshot.md)。
+ 確認磁碟區修改成功，且已處於 `optimizing` 或者 `completed` 狀態。如需詳細資訊，請參閱[監控 Amazon EBS 磁碟區修改的進度](monitoring-volume-modifications.md)。
+ 請確保磁碟區已連接至執行個體，且已格式化並掛載。如需詳細資訊，請參閱[格式化和掛載連接的磁碟區](ebs-using-volumes.md#ebs-format-mount-volume)。
+ (*僅限 Linux 執行個體*) 如果您在 Amazon EBS 磁碟區上使用邏輯磁碟區，則必須使用邏輯磁碟區管理員 (LVM) 來擴展邏輯磁碟區。如需如何執行此操作的指示，請參閱文章中的**擴展 LV** 一節[。如何使用 LVM 在 EBS 磁碟區分割區上建立邏輯磁碟區？](https://repost.aws/knowledge-center/create-lv-on-ebs-partition)。

## Linux 執行個體
<a name="extend-linux"></a>

**注意**  
下列指示會逐步引導您擴展適用於 Linux 的 **XFS** 和 **Ext4** 檔案系統。如需延伸不同檔案系統的資訊，請參閱其文件。

在 Linux 上擴展檔案系統之前，如果您的磁碟區有分割區，則必須擴展分割區。

### 擴展 EBS 磁碟區的檔案系統
<a name="extend-file-system"></a>

請使用下列程序來擴展已調整大小之磁碟區的檔案系統。

請注意，在 Nitro 系統上建置的 Xen 執行個體和執行個體的裝置和分割區命名會有所不同。若要判斷您的執行個體是 Xen 型還是 Nitro 型，請參閱 [ Amazon EC2 Hypervisor 類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-hypervisor-type)。

**擴展 EBS 磁碟區的檔案系統**

1. [連線到您的 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。

1. 如有需要，請調整分割區的大小。若要這麼做：

   1. 檢查磁碟區是否具有分割區。使用 **lsblk** 命令。

------
#### [ Nitro instance example ]

      在下列範例輸出中，根磁碟區 (`nvme0n1`) 有兩個分割區 (`nvme0n1p1` 和 `nvme0n1p128`)，而額外的磁碟區 (`nvme1n1`) 沒有分割區。

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

------
#### [ Xen instance example ]

      在下列範例輸出中，根磁碟區 (`xvda`) 有一個分割區 (`xvda1`)，而額外的磁碟區 (`xvdf`) 沒有分割區。

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

------
      + 如果磁碟區具有分割區，請繼續下一個步驟 (2b)。
      + 如果磁碟區沒有分割區，請略過步驟 2b、2c 和 2d，並繼續步驟 3。
**疑難排解秘訣**  
如果在命令輸出中沒有看到該磁碟區，請確保該磁碟區[連接到執行個體](ebs-attaching-volume.md)，並且已[格式化和掛載](ebs-using-volumes.md#ebs-format-mount-volume)。

   1. 檢查分割區是否需要擴展。在上一步的 **lsblk** 命令輸出中，比較分割區大小和磁碟區大小。
      + 如果分割區大小小於磁碟區大小，請繼續下一個步驟 (2c)。
      + 如果分割區大小等於磁碟區大小，則不需要擴展分割區 - 略過步驟 2c 和 2d，並繼續步驟 3。
**疑難排解秘訣**  
如果磁碟區仍然反映原始大小，請[確認磁碟區修改成功](monitoring-volume-modifications.md)。

   1. 擴展分割區。使用 **growpart**命令並指定裝置名稱和分割區編號。

------
#### [ Nitro instance example ]

      分割區編號是 後面的數字`p`。例如，對於 `nvme0n1p1`，分割區編號為 `1`。對於 `nvme0n1p128`，分割區編號為 `128`。

      若要延伸名為 的分割區`nvme0n1p1`，請使用下列命令。

**重要**  
請注意，裝置名稱 (`nvme0n1`) 與分割區號碼 (`1`) 之間有一個空格。

      ```
      [ec2-user ~]$ sudo growpart /dev/nvme0n1 1
      ```

------
#### [ Xen instance example ]

      分割區編號是裝置名稱後面的數字。例如，對於 `xvda1`，分割區編號為 `1`。對於 `xvda128`，分割區編號為 `128`。

      若要延伸名為 的分割區`xvda1`，請使用下列命令。

**重要**  
請注意，裝置名稱 (`xvda`) 與分割區號碼 (`1`) 之間有一個空格。

      ```
      [ec2-user ~]$ sudo growpart /dev/xvda 1
      ```

------
**對秘訣進行故障診斷**  
`mkdir: cannot create directory ‘/tmp/growpart.31171’: No space left on device FAILED: failed to make temp dir`：表示磁碟區上沒有足夠的可用磁碟空間，growpart 無法建立執行調整大小所需的暫時目錄。請釋放一些磁碟空間，然後再試一次。
`must supply partition-number`：表示您指定了不正確的分割區。使用 **lsblk** 命令以確認分割區名稱，並確保您在裝置名稱與分割區號碼之間輸入一個空格。
`NOCHANGE: partition 1 is size 16773087. it cannot be grown`：表示分割區已經擴展到整個磁碟區，無法再進行擴展。[確認磁碟區修改成功](monitoring-volume-modifications.md)。

   1. 確認分割區已擴展。使用 **lsblk** 命令。分割區大小現在應該等於磁碟區大小。

------
#### [ Nitro instance example ]

      下列範例輸出顯示磁碟區 (`nvme0n1`) 和分割區 (`nvme0n1p1`) 大小相同 (`16 GB`)。

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

------
#### [ Xen instance example ]

      下列範例輸出顯示磁碟區 (`xvda`) 和分割區 (`xvda1`) 大小相同 (`16 GB`)。

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

------

1. 擴展檔案系統。

   1. 獲取需要擴展的檔案系統之名稱、大小、類型和掛載點。使用 **df -hT**或 **lsblk -f**命令。

------
#### [ Nitro instance example ]

      **df -hT** 命令的下列範例輸出顯示`/dev/nvme0n1p1`檔案系統大小為 8 GB，其類型為 `xfs`，其掛載點為 `/`。

      ```
      [ec2-user ~]$ df -hT
      Filesystem      Type  Size  Used Avail Use% Mounted on
      /dev/nvme0n1p1  xfs   8.0G  1.6G  6.5G  20% /
      /dev/nvme1n1    xfs   8.0G   33M  8.0G   1% /data
      ...
      ```

------
#### [ Xen instance example ]

      **df -hT** 命令的下列範例輸出顯示`/dev/xvda1`檔案系統大小為 8 GB，其類型為 `ext4`，其掛載點為 `/`。

      ```
      [ec2-user ~]$ df -hT
      Filesystem      Type   Size    Used   Avail   Use%   Mounted on
      /dev/xvda1      ext4   8.0G    1.9G   6.2G    24%    /
      /dev/xvdf1      xfs    24.0G   45M    8.0G    1%     /data
      ...
      ```

------
      + 如果檔案系統大小小於磁碟區大小，請繼續下一個步驟 (3b)。
      + 如果檔案系統大小等於磁碟區大小，則不需要擴展。在此情況下，請略過其餘步驟 - 分割區和檔案系統已擴展至新的磁碟區大小。

       

   1. 擴展檔案系統的命令會因檔案系統類型而有所不同。根據您在上一步記下的檔案系統類型，選擇下列正確命令。
      + **[XFS 檔案系統]** 使用 **xfs\$1growfs** 命令並指定您在上一步記下的檔案系統的掛載點。

------
#### [ Nitro and Xen instance example ]

        例如，要擴展在 `/` 上掛載的檔案系統，請使用下列命令。

        ```
        [ec2-user ~]$ sudo xfs_growfs -d /
        ```

------
**對秘訣進行故障診斷**  
`xfs_growfs: /data is not a mounted XFS filesystem`：表示您指定了不正確的掛載點，或者檔案系統不是 XFS。若要驗證掛載點和檔案系統類型，請使用 **df -hT** 命令。
`data size unchanged, skipping`：表示檔案系統已擴展整個磁碟區。如果磁碟區沒有分割區，請[確認磁碟區修改成功](monitoring-volume-modifications.md)。如果磁碟區有分割區，請確保分割區已依照步驟 2 所述進行擴展。
      + **[Ext4 檔案系統]** 使用 **resize2fs** 命令並指定您在上一步記下的檔案系統的名稱。

------
#### [ Nitro instance example ]

        例如，要擴展名為 `/dev/nvme0n1p1` 的已掛載的檔案系統，請使用下列命令。

        ```
        [ec2-user ~]$ sudo resize2fs /dev/nvme0n1p1
        ```

------
#### [ Xen instance example ]

        例如，要擴展名為 `/dev/xvda1` 的已掛載的檔案系統，請使用下列命令。

        ```
        [ec2-user ~]$ sudo resize2fs /dev/xvda1
        ```

------
**對秘訣進行故障診斷**  
`resize2fs: Bad magic number in super-block while trying to open /dev/xvda1`：表示檔案系統不是 Ext4。若要驗證檔案系統類型，請使用 **df -hT** 命令。
`open: No such file or directory while opening /dev/xvdb1`：表示您指定了不正確的分割區。若要驗證分割區，請使用 **df -hT** 命令。
`The filesystem is already 3932160 blocks long. Nothing to do!`：表示檔案系統已擴展整個磁碟區。如果磁碟區沒有分割區，請[確認磁碟區修改成功](monitoring-volume-modifications.md)。如果磁碟區有分割區，請確保分割區已依照步驟 2 所述進行擴展。
      + **[其他檔案系統]** 請參閱檔案系統文件以獲取說明。

   1. 驗證檔案系統已擴展。使用 **df -hT** 命令並確認檔案系統大小等於磁碟區大小。

## Windows 執行個體
<a name="extend-windows"></a>

使用下列其中一種方法來擴展 Windows 執行個體上的檔案系統。

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

**使用「磁碟管理」延伸檔案系統**

1. 最佳實務是在擴展含有寶貴資料的檔案系統之前先建立包含該檔案系統之磁碟區的快照，以免需要還原變更。如需詳細資訊，請參閱 [建立 Amazon EBS 快照](ebs-creating-snapshot.md)。

1. 使用遠端桌面登入 Windows 執行個體。

1. 在 **Run (執行)** 對話方塊中輸入 **diskmgmt.msc**，然後按 Enter 鍵。磁碟管理公用程式隨即開啟。  
![\[Windows Server 磁碟管理公用程式\]](http://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/images/Expand-Volume-Win2008-before.png)

1. 在 **Disk Management** (磁碟管理) 選單中，選擇 **Action** (動作)、**Rescan Disks** (重新掃描磁碟)。

1. 開啟擴展磁碟機的內容 (按一下右鍵) 選單，然後選擇 **Extend Volume** (擴展磁碟區)。
**注意**  
如果有下列情況，**Extend Volume** (擴展磁碟區) 可能會停用 (呈現灰色)：  
未配置空間不鄰近於磁碟機。未配置的空間必須鄰近您想要擴展的磁碟機右側。
磁碟區使用主開機記錄 (MBR) 分割區樣式，而且大小已達到 2TB。使用 MBR 的磁碟區大小不可超過 2TB。  
![\[Windows Server 磁碟管理公用程式\]](http://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/images/Expand-Volume-Win2008-before-menu.png)

1. 在 **Extend Volume (擴展磁碟區)** 精靈中，選擇 **Next (下一步)**。在 **Select the amount of space in MB** (選取空間容量，以 MB 計)，輸入 MB 單位數量以擴展磁碟區。通常，您會指定最大的可用空間。**Selected** (已選取) 底下的反白文字為新增的空間量，不是磁碟區最終的大小。完成協助程式。  
![\[Windows Server 擴展磁碟區精靈\]](http://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/images/Extend-Volume-Wizard-Win2008.png)

1. 如果在沒有 AWS NVMe 驅動程式的執行個體上增加 NVMe 磁碟區的大小，您必須重新啟動執行個體，Windows 才能檢視新的磁碟區大小。如需安裝 AWS NVMe 驅動程式的詳細資訊，請參閱 [AWS NVMe 驅動程式](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/aws-nvme-drivers.html)。

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

請使用 PowerShell來延伸 Windows 檔案系統。

**使用 PowerShell 延伸檔案系統**

1. 最佳實務是在擴展含有寶貴資料的檔案系統之前先建立包含該檔案系統之磁碟區的快照，以免需要還原變更。如需詳細資訊，請參閱 [建立 Amazon EBS 快照](ebs-creating-snapshot.md)。

1. 使用遠端桌面登入 Windows 執行個體。

1. 以系統管理員身分執行 PowerShell。

1. 執行 `Get-Partition` 命令。PowerShell 會傳回每個分割區的對應分割區編號、磁碟機代號、位移、大小和類型。請注意要延伸的分割區磁碟機代號。

1. 執行下列命令來重新掃描磁碟。

   ```
   "rescan" | diskpart
   ```

1. 執行下列命令，使用您在第 4 步中記下的磁碟機代號來取代 **<drive-letter>**。PowerShell 會傳回允許的磁碟分割區大小上限 (以位元組為單位)。

   ```
   Get-PartitionSupportedSize -DriveLetter <drive-letter>
   ```

1. 若要將磁碟分割區擴充至指定容量，請執行以下命令，輸入新的磁碟區大小以取代 **<size>**。您可以輸入以 `KB`、`MB` 和 `GB` 為單位的大小，例如 `50GB`。

   ```
   Resize-Partition -DriveLetter <drive-letter> -Size <size>
   ```

   若要將磁碟分割區擴充至可用大小上限，請執行以下命令。

   ```
   Resize-Partition -DriveLetter <drive-letter> -Size $(Get-PartitionSupportedSize -DriveLetter <drive-letter>).SizeMax
   ```

   下列 PowerShell 命令說明將檔案系統擴充至指定大小的完整命令和回應流程。  
![\[使用 PowerShell 擴充磁碟分割區 – 指定\]](http://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/images/ebs-extend-powershell-v3-specific.png)

   下列 PowerShell 命令說明將檔案系統擴充至可用大小上限的完整命令和回應流程。  
![\[使用 PowerShell 擴充磁碟分割區 - 上限\]](http://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/images/ebs-extend-powershell-v3-max.png)

------