1. 程式人生 > >Linux 格式化和掛載數據盤

Linux 格式化和掛載數據盤

width 數據盤 磁盤掛載 done cto ack 磁盤空間 prev 雲服務器

如果您已經為 ECS 實例配了數據盤,您需要先格式化數據盤並掛載文件系統後才能正常使用數據盤。

註意

  • 磁盤分區和格式化是高風險行為,請慎重操作。本文檔描述如何處理一個新買的數據盤,如果您的數據盤上有數據,請務必對數據盤創建快照以避免可能的數據丟失。
  • 雲服務器 ECS 僅支持對 數據盤 進行分區,而不支持對 系統盤 進行分區。如果您強行使用第三方工具對系統盤進行分區操作,可能引發未知風險,如系統崩潰、數據丟失等

本文描述如何用一個新的數據盤創建一個單分區數據盤並掛載文件系統。

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

操作須知

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

隨實例時一起購買的數據盤,無需掛載,直接格式化。

您需要知道掛載到實例的數據盤的設備名:您可以通過 ECS 管理控制臺 > 磁盤詳情 > 磁盤掛載信息 查到數據盤的 設備名。數據盤的設備名由系統默認分配,從 /dev/xvdb 開始往後順序排列,分布範圍包括 /dev/xvdb?/dev/xvdz

操作步驟

在本示例中,我們用一個新的 20 GB 數據盤(設備名為 /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 並按回車鍵,開始分區。

        1. [[email protected] ~]# fdisk /dev/vdb
        2. Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
        3. Building a new DOS disklabel with disk identifier 0x5f46a8a2.
        4. Changes will remain in memory only, until you decide to write them.
        5. After that, of course, the previous content won‘t be recoverable.
        6. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
        7. WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to
        8. switch off the mode (command ‘c‘) and change display units to
        9. sectors (command ‘u‘).
        10. Command (m for help): n
        11. Command action
        12. e extended
        13. p primary partition (1-4)
        14. p
        15. Partition number (1-4): 1
        16. First cylinder (1-41610, default 1): 1
        17. Last cylinder, +cylinders or +size{K,M,G} (1-41610, default 41610):
        18. Using default value 41610
        19. Command (m for help): wq
        20. The partition table has been altered!
        21. Calling ioctl() to re-read partition table.
        22. Syncing disks.
    4. 查看新的分區:運行命令 fdisk -l。如果出現以下信息,說明已經成功創建了新分區 /dev/vdb1。

      1. [[email protected] ~]# fdisk -l
      2. Disk /dev/vda: 42.9 GB, 42949672960 bytes
      3. 255 heads, 63 sectors/track, 5221 cylinders
      4. Units = cylinders of 16065 * 512 = 8225280 bytes
      5. Sector size (logical/physical): 512 bytes / 512 bytes
      6. I/O size (minimum/optimal): 512 bytes / 512 bytes
      7. Disk identifier: 0x00053156
      8. Device Boot Start End Blocks Id System
      9. /dev/vda1 * 1 5222 41942016 83 Linux
      10. Disk /dev/vdb: 21.5 GB, 21474836480 bytes
      11. 16 heads, 63 sectors/track, 41610 cylinders
      12. Units = cylinders of 1008 * 512 = 516096 bytes
      13. Sector size (logical/physical): 512 bytes / 512 bytes
      14. I/O size (minimum/optimal): 512 bytes / 512 bytes
      15. Disk identifier: 0x5f46a8a2
      16. Device Boot Start End Blocks Id System
      17. /dev/vdb1 1 41610 20971408+ 83 Linux
    5. 在新分區上創建一個文件系統:運行命令 mkfs.ext3 /dev/vdb1

      本示例要創建一個 ext3 文件系統。您也可以根據自己的需要,選擇創建其他文件系統,例如,如果需要在 Linux、Windows 和 Mac 系統之間共享文件,您可以使用 mkfs.vfat 創建 VFAT 文件系統。

      創建文件系統所需時間取決於數據盤大小。

      1. [[email protected] ~]# mkfs.ext3 /dev/vdb1
      2. mke2fs 1.41.12 (17-May-2010)
      3. Filesystem label=
      4. OS type: Linux
      5. Block size=4096 (log=2)
      6. Fragment size=4096 (log=2)
      7. Stride=0 blocks, Stripe width=0 blocks
      8. 1310720 inodes, 5242852 blocks
      9. 262142 blocks (5.00%) reserved for the super user
      10. First data block=0
      11. Maximum filesystem blocks=4294967296
      12. 160 block groups
      13. 32768 blocks per group, 32768 fragments per group
      14. 8192 inodes per group
      15. Superblock backups stored on blocks:
      16. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
      17. 4096000
      18. Writing inode tables: done
      19. Creating journal (32768 blocks): done
      20. Writing superblocks and filesystem accounting information: done
      21. This filesystem will be automatically checked every 37 mounts or
      22. 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

      1. [[email protected] ~]# cat /etc/fstab
      2. #
      3. # /etc/fstab
      4. # Created by anaconda on Thu Feb 23 07:28:22 2017
      5. #
      6. # Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
      7. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
      8. #
      9. UUID=3d083579-f5d9-4df5-9347-8d27925805d4 / ext4 defaults 1 1
      10. tmpfs /dev/shm tmpfs defaults 0 0
      11. devpts /dev/pts devpts gid=5,mode=620 0 0
      12. sysfs /sys sysfs defaults 0 0
      13. proc /proc proc defaults 0 0
      14. /dev/vdb1 /mnt ext3 defaults 0 0
    9. 掛載文件系統:運行命令 mount /dev/vdb1 /mnt

    10. 查看目前磁盤空間和使用情況:運行命令 df -h。如果出現新建文件系統的信息,說明掛載成功,可以使用新的文件系統了。

      掛載操作完成後,不需要重啟實例即可開始使用新的文件系統。

      1. [[email protected] ~]# mount /dev/vdb1 /mnt
      2. [[email protected] ~]# df -h
      3. Filesystem Size Used Avail Use% Mounted on
      4. /dev/vda1 40G 6.6G 31G 18% /
      5. tmpfs 499M 0 499M 0% /dev/shm
      6. /dev/vdb1 20G 173M 19G 1% /mnt

Linux 格式化和掛載數據盤