文档首页/ 弹性云服务器 ECS/ 用户指南/ 磁盘管理/ 初始化数据盘/ 初始化Linux数据盘(容量大于2TiB)
更新时间:2024-10-31 GMT+08:00

初始化Linux数据盘(容量大于2TiB)

操作场景

云硬盘容量大于2TiB时,只能使用parted工具为磁盘新建GPT分区。不同云服务器的操作系统的初始化操作可能不同。

分区格式

操作系统

文件系统

初始化工具

配置示例

GPT

不限

ext*(如ext2、ext3、ext4)、xfs、btrfs

parted

  • 设备名:/dev/vdb
  • 文件系统:ext4
  • 挂载目录:/mnt/sdc
  • 分区:/dev/vdb1
  • 分区格式:GPT
  • 容量:3TiB

前提条件

云硬盘已挂载到云服务器上。

约束与限制

  • 从数据源创建的云硬盘无需初始化。该云硬盘在初始状态就具有数据源中的数据,初始化有丢失数据的风险。如果需要重新初始化,建议先备份云硬盘中的数据。。
  • 初始化云硬盘不会删除云硬盘快照,初始化后仍可以使用快照回滚数据至原云硬盘。

操作步骤

示例说明:使用parted工具,针对“/dev/vdb”数据盘划分1个GPT分区

  1. 登录云服务器

    登录弹性云服务器请参见登录弹性云服务器

    登录裸金属服务器请参见登录裸金属服务器

  2. 针对数据盘“/dev/vdb”划分1个分区/dev/vdb1

    1. 查看/dev/vdb数据盘容量为3TiB。
      lsblk
      [root@ecs-centos76 ~]# lsblk
      NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      vda    253:0    0  40G  0 disk
      ├vda1 253:1    0  40G  0 part /
      vdb    253:16   0   3T  0 disk
    1. 开始新建分区/dev/vdb1。

      parted /dev/vdb

      p
      [root@ecs-centos74 ~]# parted /dev/vdb
      GNU Parted 3.1
      Using /dev/vdb
      Welcome to GNU Parted! Type 'help' to view a list of commands.
      (parted) p
      Error: /dev/vdb: unrecognised disk label
      Model: Virtio Block Device (virtblk)
      Disk /dev/vdb: 3299GB
      Sector size (logical/physical): 512B/512B
      Partition Table: unknown
      Disk Flags:
      (parted)

      “Partition Table”:“unknown”表示磁盘分区格式未知,新的数据盘还未设置分区格式。

      如果出现报错“-bash: parted: command not found”,则说明系统不识别该命令,需要执行“yum install -y parted”命令来安装该命令。安装成功后再执行上述命令。

    1. 针对分区/dev/vdb1设置分区格式为GPT。

      mklabel gpt

      unit s

      p

      (parted) mklabel gpt
      (parted) unit s
      (parted) p
      Model: Virtio Block Device (virtblk)
      Disk /dev/vdb: 6442450944s
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      Disk Flags:
       
      Number  Start  End  Size  File system  Name  Flags
       
      (parted)
      • 如果磁盘容量小于等于2 TiB,您想使用parted工具新建MBR分区,则此处命令为:mklabel msdos
      • 切换云硬盘分区格式,则该云硬盘上的数据将会被清除,请您在初始化时谨慎选择云硬盘的分区格式。
      • 云硬盘初始化时设置的磁盘分区格式(MBR或GPT),后续在该云硬盘下创建的所有分区的格式均和首次初始化时设置的分区格式一致,因此如果您创建第2个及后续分区时,无需执行该步骤。
    1. 针对分区/dev/vdb1设置分区名称及大小。

      mkpart /dev/vdb1 2048s 100%

      p

      • “2048s”表示磁盘起始磁柱值,“100%”为磁盘截止磁柱值,表示将磁盘100%容量给到/dev/vdb1分区。
      • 如果您需要将数据盘容量划分至两个及以上的分区,分区的起始磁柱值和截止磁柱值计算方法跟2中的相同。
      (parted) mkpart /dev/vdb1 2048s 100%
      (parted) p
      Model: Virtio Block Device (virtblk)
      Disk /dev/vdb: 6442450944s
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      Disk Flags:
       
      Number  Start        End          Size         File system  Name          Flags
       1      2048s        6442448895s  6442446848s               /dev/vdb1

      输入“q”,按“Enter”,执行“lsblk”再次查看新建分区“/dev/vdb1”。

      [root@ecs-centos74 ~]# lsblk
      NAME     MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
      vda      253:0    0    40G  0 disk
      ├─vda1 253:1    0    40G  0 part /
      vdb      253:16   0     3T  0 disk
      └─vdb1 253:17   0     3T  0 part

  3. 为“/dev/vdb1”创建ext4文件系统。

    mkfs -t ext4 /dev/vdb1

    创建文件系统格式需要等待一段时间,请观察系统运行状态,不要退出。

    [root@ecs-test-0001 ~]# mkfs -t ext4 /dev/vdb1
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    201326592 inodes, 805305856 blocks
    40265292 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2952790016
    24576 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, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
            102400000, 214990848, 512000000, 550731776, 644972544
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    [root@ecs-test-0001 ~]#

    执行“parted /dev/vdb”命令,再输入“p”,查看分区文件系统类型。

    [root@ecs-test-0001 ~]# parted /dev/vdb
    GNU Parted 3.1
    Using /dev/vdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) p
    Model: Virtio Block Device (virtblk)
    Disk /dev/vdb: 3299GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags:
    
    Number  Start   End      Size     File system  Name        Flags
     1      1049kB  3299GB   3299GB   ext4         /dev/vdb1           
    
    (parted) q
    [root@ecs-test-0001 ~]#

    输入“q”,按“Enter”,退出parted模式。

  4. 新建目录,并将新建分区挂载至新建目录。

    mkdir -p /mnt/sdc

    mount /dev/vdb1 /mnt/sdc

    lsblk

    [root@ecs-test-0001 ~]# lsblk
    NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    vda    253:0    0  40G  0 disk
    ├vda1 253:1    0  40G  0 part /
    vdb    253:16   0   3T 0 disk
    ├vdb1 253:17   0   3T 0 part /mnt/sdc

    表示新建分区“/dev/vdb1”已挂载至“/mnt/sdc”

  5. 使用磁盘分区的UUID来设置开机自动挂载磁盘分区。

    • 重启后,挂载会失效,因此需要设置开机自动挂载磁盘分区,即在/etc/fstab文件中添加新建磁盘分区信息,启动开机自动挂载磁盘分区。
    • 不建议采用在“/etc/fstab”文件中直接指定设备名(比如/dev/vdb1)的方法,因为云中设备的顺序编码在关闭或者开启云服务器过程中可能发生改变(例如:/dev/vdb1可能会变成/dev/vdb2),可能会导致云服务器重启后不能正常运行。
    • UUID(universally unique identifier)是Linux系统为磁盘分区提供的唯一的标识字符串。
    • 该操作不会影响弹性云服务器中的现有数据。
    1. 查询磁盘分区的UUID。

      blkid /dev/vdb1

      [root@ecs-test-0001 ~]# blkid /dev/vdb1
      /dev/vdb1: UUID="0b3040e2-1367-4abb-841d-ddb0b92693df" TYPE="ext4"

      磁盘分区“/dev/vdb1”的UUID为0b3040e2-1367-4abb-841d-ddb0b92693df。

    1. 设置开机自动挂载磁盘分区。

      vi /etc/fstab

      按“i”,进入编辑模式,将光标移至文件末尾,按“Enter”,添加下行内容:

      UUID=0b3040e2-1367-4abb-841d-ddb0b92693df    /mnt/sdc     ext4    defaults     0    2

      按“ESC”后,输入“:wq”,按“Enter”,保存设置并退出编辑器。

      表1 参数说明

      参数示例

      说明

      UUID=0b3040e2-1367-4abb-841d-ddb0b92693df

      磁盘分区的UUID

      /mnt/sdc

      磁盘分区的挂载目录

      ext4

      磁盘分区的文件系统格式

      defaults

      磁盘分区的挂载选项,此处通常设置为defaults即可

      0

      • Linux dump备份选项。
        • 0表示不使用Linux dump备份。现在通常不使用dump备份,此处设置为0即可。
        • 1表示使用Linux dump备份。

      2

      • fsck选项,即开机时是否使用fsck检查磁盘。
        • 2表示从挂载点为非根目录(/)的分区开始检验。
        • 1表示从挂载点为根目录(/)的分区开始检验。
        • 0表示不检验。

  6. 验证自动挂载功能已生效。

    umount /dev/vdb1

    mount -a

    则系统会将“/etc/fstab”文件所有内容重新加载。

    查询文件系统挂载信息。

    mount | grep /mnt/sdc

    回显类似如下信息,说明自动挂载功能生效:

    root@ecs-test-0001 ~]# mount | grep /mnt/sdc
    /dev/vdb1 on /mnt/sdc type ext4 (rw,relatime,data=ordered)