在 Linux VM 上格式化及掛接非開機磁碟

如果將新的空白磁碟連接至 VM,必須先格式化並掛接磁碟,才能使用。如果您連接的磁碟已包含資料,則必須先掛接磁碟才能使用。

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上範例的預計用途分頁:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

  • 設定預設區域和可用區。
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

連線至 VM

  1. 前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體頁面

  2. 找到已附加新磁碟的執行個體,然後點選旁邊的「SSH」SSH按鈕。瀏覽器會開啟與 VM 的終端機連線。

在 Linux VM 上格式化非開機磁碟

  1. 在終端機中,使用為連接磁碟建立的符號連結,判斷要格式化哪個裝置。

     ls -l /dev/disk/by-id/google-*
    

    未格式化的磁碟不會有名稱中含有 -partN 的額外符號連結。

     google-extra-scsi-disk -> ../../sdb
     google-instance-2 -> ../../sda
     google-instance-2-part1 -> ../../sda1
     google-instance-2-part14 -> ../../sda14
     google-instance-2-part15 -> ../../sda15
     google-local-nvme-ssd-0 -> ../../nvme0n1
     google-local-nvme-ssd-1 -> ../../nvme0n2
    

    在本範例中,新建立的永久磁碟名稱為 extra-scsi-disk。新磁碟的裝置名稱為 sdb。

  2. 使用 mkfs 工具格式化磁碟裝置。這個指令會刪除指定磁碟中的所有資料,因此請務必正確指定磁碟裝置。

    你可以使用任何需要的檔案格式,但建議使用單一 ext4 檔案系統,不要有分區資料表。您之後可以增加磁碟大小,不必修改磁碟分割區。

    如要盡量提升磁碟效能,請使用建議的格式設定選項。

    下列指令會格式化整個磁碟,且不含分割區表。

    • 如果是 ext4,則不需要在這個次要磁碟上為根磁碟區保留空間,因此請指定 -m 0,使用所有可用的磁碟空間。使用下列指令:

      $ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/DEVICE_NAME
      
    • 針對 xfs,請指定 -s size=4096,將磁區大小設為 4096 位元組,以提升效能。請使用以下指令:

      $ sudo mkfs.xfs -s size=4096 /dev/DEVICE_NAME
      

      將 DEVICE_NAME 替換為要格式化的磁碟裝置名稱。舉例來說,如果使用第一個步驟的範例輸出內容,裝置名稱會是 sdb。

掛接磁碟

  1. 在 VM 上建立目錄,做為新磁碟的掛接點。 您可以使用任何目錄。以下範例會在 /mnt/disks/ 下方建立目錄。

    $ sudo mkdir -p /mnt/disks/MOUNT_DIR
    

    將 MOUNT_DIR 替換為要掛接磁碟的目錄。

  2. 使用掛接工具將磁碟掛接至執行個體,並啟用 discard 選項:

    $ sudo mount -o discard,defaults /dev/DEVICE_NAME /mnt/disks/MOUNT_DIR
    

    更改下列內容:

    • DEVICE_NAME:要掛接的磁碟裝置名稱。
    • MOUNT_DIR:要掛接磁碟的目錄。
  3. 設定磁碟的讀取和寫入權限。以這個範例來說,就是授予所有使用者磁碟的寫入權。

    $ sudo chmod a+w /mnt/disks/MOUNT_DIR
    

    將 MOUNT_DIR 替換為掛接磁碟的目錄。

設定在 VM 重新啟動時自動掛接

將磁碟新增至 /etc/fstab 檔案,這樣 VM 重新啟動時,磁碟就會自動重新掛接。在 Linux 作業系統上,裝置名稱可能會在每次重新啟動時變更,但裝置 UUID 一律會指向相同磁碟區,即使您在系統之間移動磁碟也是如此。因此,建議您使用裝置 UUID (而非裝置名稱),設定 VM 重新啟動時自動掛接。

  1. 建立您目前 /etc/fstab 檔案的備份。

    $ sudo cp /etc/fstab /etc/fstab.backup
    
  2. 使用 blkid 指令列出磁碟的 UUID。

    $ sudo blkid /dev/DEVICE_NAME
    
    /dev/DEVICE_NAME: UUID="a9e1c14b-f06a-47eb-adb7-622226fee060" BLOCK_SIZE="4096"
    TYPE="ext4" PARTUUID="593b3b75-108f-bd41-823d-b7e87d2a04d1"
    

    更改下列內容:

    • DEVICE_NAME:要自動掛接的磁碟裝置名稱。如果您在磁碟上建立分區資料表,請在裝置名稱後方加上後置字元,指定要掛接的分區。舉例來說,如果 sdb 是磁碟的裝置名稱,sdb1 可能是分割區的名稱。
  3. 以文字編輯器開啟 /etc/fstab 檔案,並建立包含 UUID 的項目。例如:

    UUID=UUID_VALUE /mnt/disks/MOUNT_DIR FILE_SYSTEM_TYPE discard,MOUNT_OPTION 0 2
    

    更改下列內容:

    • UUID_VALUE:磁碟的 UUID,列在上一個步驟的輸出內容中
    • MOUNT_DIR:掛接磁碟的目錄
    • FILE_SYSTEM_TYPE:檔案系統類型。 例如:ext2、ext3、ext4 或 xfs。
    • MOUNT_OPTION:指定作業系統在啟動時無法掛接區域永久磁碟時的處理方式。如需有效值,請參閱 Linux fstab 說明文件中的第四個欄位。如要讓系統在磁碟無法使用時仍可啟動,請使用 nofail 掛接選項。
  4. 使用 cat 指令,確認 /etc/fstab 項目正確無誤:

    $ cat /etc/fstab
    
    UUID=6B33-A686 /boot/efi vfat defaults 0 0
    UUID=UUID_VALUE /mnt/disks/MOUNT_DIR FILE_SYSTEM_TYPE discard,MOUNT_OPTION 0 2
    
    

後續步驟