調整磁碟區大小後擴展 Linux 檔案系統 - Amazon Elastic Compute Cloud

調整磁碟區大小後擴展 Linux 檔案系統

注意

下列範例會引導您完成擴展 Linux 的 XFSExt4 檔案系統的程序。如需其他檔案系統的相關資訊,請參閱其文件以獲取說明。

增加 EBS 磁碟區大小之後,您必須使用檔案系統的專用命令,將檔案系統擴展為新的更大尺寸。您可在磁碟區進入 optimizing 狀態後立即執行此操作。

若要在 Linux 上擴展檔案系統,您需要執行下列操作:

  1. 擴展分割區,如果您的磁碟區有分割區的話。

  2. 擴展檔案系統。

開始之前

擴展 EBS 磁碟區的檔案系統

請使用下列程序來擴展已調整大小之磁碟區的檔案系統。請注意,Xen 執行個體和 Nitro 執行個體的裝置和分割區命名不同。若要判斷您的執行個體是基於 Xen 還是 Nitroal,請使用下列命令:

[ec2-user ~]$ aws ec2 describe-instance-types --instance-type instance_type --query "InstanceTypes[].Hypervisor"

擴展 EBS 磁碟區的檔案系統

  1. 連線到您的 執行個體

  2. 如有需要,請調整分割區的大小。若要這麼做:

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

      Nitro instance example

      在下列範例輸出中,根磁碟區 (nvme0n1) 有兩個分割區 (nvme0n1p1nvme0n1p128),而額外的磁碟區 (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

      如果磁碟區具有分割區,則繼續下一個步驟。如果磁碟區沒有分割區,請跳至步驟 3。

      疑難排解秘訣

      如果在命令輸出中沒有看到該磁碟區,請確保該磁碟區連接到執行個體,並且已格式化和掛載

    2. 檢查分割區是否需要擴展。在上一步的 lsblk 命令輸出中,比較分割區大小和磁碟區大小。

      如果分割區大小小於磁碟區大小,請繼續執行下一個步驟。如果分割區大小等於磁碟區大小,則無法擴展分割區。

      疑難排解秘訣

      如果磁碟區仍然反映原始大小,請確認磁碟區修改成功

    3. 擴展分割區。使用 growpart 命令並指定要擴展的分割區。

      Nitro instance example

      例如,若要擴展名為 nvme0n1p1 的分割區,請使用下列命令。

      重要

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

      [ec2-user ~]$ sudo growpart /dev/nvme0n1 1
      Xen instance example

      例如,若要擴展名為 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:表示分割區已經擴展到整個磁碟區,無法再進行擴展。確認磁碟區修改成功

    4. 確認分割區已擴展。使用 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
  3. 擴展檔案系統。

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

      Nitro instance example

      下列範例輸出顯示 /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

      下列範例輸出顯示 /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 ...
    2. 擴展檔案系統的命令會因檔案系統類型而有所不同。根據您在上一步記下的檔案系統類型,選擇下列正確命令。

      • [XFS 檔案系統] 使用 xfs_growfs 命令並指定您在上一步記下的檔案系統的掛載點。

        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:表示檔案系統已擴展整個磁碟區。如果磁碟區沒有分割區,請確認磁碟區修改成功。如果磁碟區有分割區,請確保分割區已依照步驟 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!:表示檔案系統已擴展整個磁碟區。如果磁碟區沒有分割區,請確認磁碟區修改成功。如果磁碟區有分割區,請確保分割區已依照步驟 2 所述進行擴展。

      • [其他檔案系統] 請參閱檔案系統文件以獲取說明。

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