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


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

事前準備

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

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    For more information, see Authenticate for using REST in the Google Cloud authentication documentation.

連線至 VM

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

    前往 VM 執行個體頁面

  2. 按一下具有新連接磁碟的執行個體旁邊的「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 檔案系統。日後您可以增加磁碟大小,而不需要修改磁碟分區。

    為獲得最高的磁碟效能,請在 -E 標記中使用建議的格式化選項。不需要為這個次要磁碟上的根目錄磁碟區保留空間,因此請指定 -m 0 以使用全部的可用磁碟空間。下列指令在格式化磁碟時會建立不含分區表的磁碟。

     $ sudo mkfs.FILE_SYSTEM_TYPE -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/DEVICE_NAME
     

    更改下列內容:

    • FILE_SYSTEM_TYPE:檔案系統類型。例如 ext2ext3ext4xfs
    • 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,defaults,MOUNT_OPTION 0 2
    

    更改下列內容:

    • UUID_VALUE:磁碟的 UUID,列於上一個步驟的輸出內容中
    • MOUNT_DIR:磁碟掛接的目錄
    • FILE_SYSTEM_TYPE:檔案系統類型。例如:ext2ext3ext4xfs
    • 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,defaults,MOUNT_OPTION 0 2
    
    

請務必讓 /etc/fstab 檔案與連結至 VM 的裝置保持同步。如果您要卸離磁碟,或為 VM 從開機磁碟建立快照,請編輯 /etc/fstab 檔案,並移除磁碟的項目。即使您將 MOUNT_OPTION 設為 nofailnobootwait,也請在建立開機磁碟快照或卸離磁碟前移除項目。

後續步驟