使 Amazon EBS 磁碟區可供在 Linux 上使用 - Amazon Elastic Compute Cloud

使 Amazon EBS 磁碟區可供在 Linux 上使用

將 Amazon EBS 磁碟區連接到您的執行個體之後,它會公開為區塊型儲存設備。您可將此磁碟區格式化成任何檔案系統,然後掛載它。使 EBS 磁碟區可供使用之後,您可如同存取任何其他磁碟區一樣存取它。所有寫入此檔案系統的資料都會寫入此 EBS 磁碟區,並對使用此裝置的應用程式完全公開。

您可建立您 EBS 磁碟區的快照供備份之用,或做為建立其他磁碟區的基準。如需詳細資訊,請參閱 Amazon EBS 快照

如需 Windows 執行個體之磁碟區的說明,請參閱Windows 執行個體的 Amazon EC2 使用者指南中的使磁碟區可在 Windows 上使用

格式化和掛載連接的磁碟區

假設您有 EC2 執行個體 (其中包含根設備的 EBS 磁碟區)、/dev/xvda,以及您剛已使用 /dev/sdf 將空的 EBS 磁碟區連接至執行個體。請使用下列步驟讓新連接的磁碟區可供使用。

在 Linux 上格式化和掛載 EBS 磁碟區

  1. 使用 SSH 連線到您的執行個體。如需詳細資訊,請參閱連接至您的 Linux 執行個體

  2. 裝置可能可以使用和您在區塊型設備映射中指定的不同裝置名稱來連接至執行個體。如需詳細資訊,請參閱Linux 執行個體上的裝置命名方式。使用 lsblk 命令檢視您可用的磁碟裝置及其掛載點 (如適用),以利判斷要使用的正確裝置名稱。lsblk 的輸出會移除完整裝置路徑的 /dev/ 前綴。

    以下是建置在 Nitro 系統上的執行個體的範例輸出,這會將 EBS 磁碟區公開為 NVMe 區塊型儲存設備。根設備是 /dev/nvme0n1。連接的磁碟區是尚未掛載的 /dev/nvme1n1

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

    以下是 T2 執行個體的範例輸出。根設備是 /dev/xvda。連接的磁碟區是尚未掛載的 /dev/xvdf

    [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk -xvda1 202:1 0 8G 0 part / xvdf 202:80 0 10G 0 disk
  3. 判斷磁碟區上是否有檔案系統。新磁碟區是原始的區塊型儲存設備,您必須先在這些磁碟區上建立檔案系統,才能掛載和使用它們。從快照建立的磁碟區上可能已有檔案系統,如果您在現有的檔案系統上建立新的檔案系統,此操作會覆寫您的資料。

    使用 file -s 命令取得有關裝置的資訊,例如檔案系統類型。如果輸出如以下範例輸出所示,只顯示 data,則表示此裝置上沒有任何檔案系統,您必須建立一個。

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

    如果裝置有檔案系統,此命令則會顯示與檔案系統類型相關的資訊。例如,以下輸出顯示 XFS 檔案系統的根設備。

    [ec2-user ~]$ sudo file -s /dev/xvda1 /dev/xvda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
  4. (有條件) 如果您在前一個步驟中發現裝置上有檔案系統,請略過此步驟。如果您有空的磁碟區,請使用 mkfs -t 命令在磁碟區上建立檔案系統。

    警告

    如果您要掛載的磁碟區已有資料 (例如,從快照建立的磁碟區),請不要使用此命令。否則,您會格式化磁碟區並刪除現有的資料。

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

    如果發生找不到 mkfs.xfs 的錯誤,請使用下列命令來安裝 XFS 工具,然後重複上一個命令:

    [ec2-user ~]$ sudo yum install xfsprogs
  5. 使用 mkdir 命令建立磁碟區的掛載點目錄。掛載點是磁碟區在檔案系統樹狀目錄中的位置,也是您在掛載磁碟區後讀取和寫入檔案的位置。下列範例會建立名為 /data 的目錄。

    [ec2-user ~]$ sudo mkdir /data
  6. 使用下列命令將磁碟區掛載到您剛才在前一個步驟中建立的目錄。

    [ec2-user ~]$ sudo mount /dev/xvdf /data
  7. 檢閱新磁碟區掛載的檔案許可,以確定您的使用者和應用程式可寫入此磁碟區。如需檔案許可的詳細資訊,請參閱 Linux 文件專案檔案安全性

  8. 執行個體重新開機後,不會自動保留掛載點。若要在重新開機後自動掛載此 EBS 磁碟區,請參閱在重新開機後自動掛載連接的磁碟區

在重新開機後自動掛載連接的磁碟區

若要在每次系統開機時掛載連接的 EBS 磁碟區,請在 /etc/fstab 檔案中加入該裝置的資料。

您可在 /etc/fstab 中使用裝置名稱 (如 /dev/xvdf),但我們建議您改用裝置的 128 位元全域唯一識別符 (UUID)。裝置名稱可以變更,但在分割區存在期間仍會保留。使用 UUID 可降低系統在硬體重新設定後無法開機的機會。如需詳細資訊,請參閱識別 EBS 裝置

若要在重新開機後自動掛載連接的磁碟區

  1. (選用) 建立 /etc/fstab 檔案的備份,如果在編輯檔案時不小心損毀或刪除此檔案,即可使用檔案的備份。

    [ec2-user ~]$ sudo cp /etc/fstab /etc/fstab.orig
  2. 使用 blkid 命令尋找裝置的 UUID。

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

    對於 Ubuntu 18.04,請使用 lsblk 命令。

    [ec2-user ~]$ sudo lsblk -o +UUID
  3. 使用任何文字編輯器 (例如 nanovim) 開啟 /etc/fstab 檔案。

    [ec2-user ~]$ sudo vim /etc/fstab
  4. 若要於指定的掛載點上掛載裝置,請在 /etc/fstab 中加入下列項目。欄位是 blkid (或 Ubuntu 18.04 則為 lsblk) 傳回的 UUID 值、掛載點、檔案系統及建議的檔案系統掛載選項。如需詳細資訊,請參閱 fstab 的手冊頁面 (執行 man fstab)。

    UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2
    注意

    如果曾在不掛載此磁碟區的狀態下開機執行個體 (例如,在將磁碟區移至其他執行個體後),nofail 掛載選項可讓執行個體繼續開機,即使在掛載磁碟區的作業出現錯誤。包括 16.04 前之 Ubuntu 版本在內的 Debian 衍生產品,也必須新增 nobootwait 掛載選項。

  5. 若要驗證您的項目是否能夠運作,請執行下列命令來卸載裝置,然後在 /etc/fstab 中掛載所有檔案系統。如果未發生錯誤,則 /etc/fstab 檔案沒有問題,檔案系統將會在重新啟動時自動掛載。

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

    如果您收到錯誤訊息,請處理檔案中的錯誤。

    警告

    /etc/fstab 檔案中的錯誤可能會造成系統無法開機。如果是在 /etc/fstab 檔案中具有錯誤的系統,請勿將此系統關機。

    如果您不確定要如何修正 /etc/fstab 中的錯誤,且您已在此程序的第一個步驟中建立備份檔案,您可以隨時使用下列命令,從備份檔案還原。

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