如果在建立Linux執行個體時配了資料盤,您需要先格式化資料盤並掛載檔案系統後才能正常使用資料盤。

本文描述如何用一個新的資料盤建立一個單分區資料盤並掛載檔案系統。本文僅適用於使用 fdisk 命令對一個不大於 2 TiB 的資料盤執行分區操作。如果需要分區的資料盤大於 2 TiB,請參考 分區格式化大於2 TiB雲端碟

您還可以根據業務需要,對資料盤進行多分區配置。建議使用系統自帶的工具進行分區操作。

警告
  • 磁碟分割和格式化是高風險行為,請慎重操作。本文檔描述如何處理一個新買的資料盤,如果您的資料盤上有資料,請務必對資料盤建立快照以避免可能的資料丟失。

  • Elastic Compute Service 僅支援對 資料盤 進行分區,而不支援對 系統盤 進行分區。如果您強行使用第三方工具對系統盤進行分區操作,可能引發未知風險,如系統崩潰、資料丟失等。

操作須知

單獨 購買的資料盤 需要先掛載資料盤 ,然後才能格式化。

隨執行個體一起購買的資料盤,無需掛載,直接格式化。

您需要知道掛載到執行個體的資料盤的裝置名稱:您可以通過 ECS 管理主控台 > 磁碟詳情 > 磁碟掛載資訊 查到資料盤的 裝置名稱。資料盤的裝置名稱由系統預設分配,從 /dev/xvdb 開始往後順序排列,分布範圍包括 /dev/xvdb/dev/xvdz

操作步驟

在本樣本中,我們用一個新的 20 GiB 資料盤(裝置名稱為 /dev/xvdb)建立一個單分區資料盤並掛載一個 ext3 檔案系統。使用的執行個體是 I/O 優化執行個體,作業系統為 CentOS 6.8。

  1. 遠端連線執行個體
  2. 運行 fdisk -l 命令查看執行個體是否有資料盤。如果執行命令後,沒有發現 /dev/vdb,表示您的執行個體沒有資料盤,無需格式化資料盤,請忽略本文後續內容。
    • 如果您的資料盤顯示的是 dev/xvd?,表示您使用的是非 I/O 優化執行個體。

    • 其中 ? 是 a−z 的任一個字母。

  3. 建立一個單分區資料盤,依次執行以下命令:
    1. 運行 fdisk /dev/vdb:對資料盤進行分區。
    2. 輸入 n 並按回車鍵:建立一個新分區。
    3. 輸入 p 並按回車鍵:選擇主要磁碟分割。因為建立的是一個單分區資料盤,所以只需要建立主要磁碟分割。
      说明
      如果要建立 4 個以上的分區,您應該建立至少一個擴充分區,即選擇 e
    4. 輸入分區編號並按回車鍵。因為這裡僅建立一個分區,可以輸入 1
    5. 輸入第一個可用的扇區編號:按回車鍵採用預設值 1。
    6. 輸入最後一個扇區編號:因為這裡僅建立一個分區,所以按回車鍵採用預設值。
    7. 輸入 wq 並按回車鍵,開始分區。
      
      [root@iXXXXXXX ~]# fdisk /dev/vdb
      Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
      Building a new DOS disklabel with disk identifier 0x5f46a8a2.
      Changes will remain in memory only, until you decide to write them.
      After that, of course, the previous content won't be recoverable.
      Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
      WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
      switch off the mode (command 'c') and change display units to
      sectors (command 'u').
      Command (m for help): n
      Command action
      e extended
      p primary partition (1-4)
      p
      Partition number (1-4): 1
      First cylinder (1-41610, default 1): 1
      Last cylinder, +cylinders or +size{K,M,G} (1-41610, default 41610):
      Using default value 41610
      Command (m for help): wq
      The partition table has been altered!
      Calling ioctl() to re-read partition table.
      Syncing disks.
  4. 查看新的分區:運行命令 fdisk -l。如果出現以下資訊,說明已經成功建立了新分區 /dev/vdb1。
    
    [root@iXXXXXXX ~]# fdisk -l
    Disk /dev/vda: 42.9 GB, 42949672960 bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00053156
    Device Boot Start End Blocks Id System
    /dev/vda1 * 1 5222 41942016 83 Linux
    Disk /dev/vdb: 21.5 GB, 21474836480 bytes
    16 heads, 63 sectors/track, 41610 cylinders
    Units = cylinders of 1008 * 512 = 516096 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x5f46a8a2
    Device Boot Start End Blocks Id System
    /dev/vdb1 1 41610 20971408+ 83 Linux
  5. 在新分區上建立一個檔案系統:運行命令 mkfs.ext3 /dev/vdb1
    • 本樣本要建立一個 ext3 檔案系統。您也可以根據自己的需要,選擇建立其他檔案系統,例如,如果需要在 Linux、Windows 和 Mac 系統之間共用檔案,您可以使用 mkfs.vfat 建立 VFAT 檔案系統。
    • 建立檔案系統所需時間取決於資料盤大小。
      
      [root@iXXXXXXX ~]# mkfs.ext3 /dev/vdb1
      mke2fs 1.41.12 (17-May-2010)
      Filesystem label=
      OS type: Linux
      Block size=4096 (log=2)
      Fragment size=4096 (log=2)
      Stride=0 blocks, Stripe width=0 blocks
      1310720 inodes, 5242852 blocks
      262142 blocks (5.00%) reserved for the super user
      First data block=0
      Maximum filesystem blocks=4294967296
      160 block groups
      32768 blocks per group, 32768 fragments per group
      8192 inodes per group
      Superblock backups stored on blocks:
      32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
      4096000
      Writing inode tables: done
      Creating journal (32768 blocks): done
      Writing superblocks and filesystem accounting information: done
      This filesystem will be automatically checked every 37 mounts or
      180 days, whichever comes first. Use tune2fs -c or -i to override.
  6. (建議)備份 etc/fstab:運行命令 cp /etc/fstab /etc/fstab.bak
  7. /etc/fstab 寫入新分區資訊:運行命令 echo /dev/vdb1 /mnt ext3 defaults 0 0 >> /etc/fstab
    说明
    Ubuntu 12.04 不支援 barrier,所以對該系統正確的命令是:echo '/dev/vdb1 /mnt ext3 barrier=0 0 0' >> /etc/fstab

    如果需要把資料盤單獨掛載到某個檔案夾,比如單獨用來存放網頁,請將以上命令 /mnt 替換成所需的掛載點路徑。

  8. 查看 /etc/fstab 中的新分區資訊:運行命令 cat /etc/fstab
    
    [root@iXXXXXXX ~]# cat /etc/fstab
    #
    # /etc/fstab
    # Created by anaconda on Thu Feb 23 07:28:22 2017
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=3d083579-f5d9-4df5-9347-8d27925805d4 / ext4 defaults 1 1
    tmpfs /dev/shm tmpfs defaults 0 0
    devpts /dev/pts devpts gid=5,mode=620 0 0
    sysfs /sys sysfs defaults 0 0
    proc /proc proc defaults 0 0
    /dev/vdb1 /mnt ext3 defaults 0 0
  9. 掛載檔案系統:運行命令 mount /dev/vdb1 /mnt
  10. 查看目前磁碟空間和使用方式:運行命令 df -h。如果出現新建檔案系統的資訊,說明掛載成功,可以使用新的檔案系統了。

    掛載操作完成後,不需要重啟執行個體即可開始使用新的檔案系統。

    
    [root@iXXXXXXX ~]# mount /dev/vdb1 /mnt
    [root@iXXXXXXX ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/vda1 40G 6.6G 31G 18% /
    tmpfs 499M 0 499M 0% /dev/shm
    /dev/vdb1 20G 173M 19G 1% /mnt