
# 初始化Linux数据盘（容量大于2TiB）
#### 操作场景
新购买的云硬盘在挂载至云服务器后，还需要进行初始化，即格式化云硬盘，之后才可以正常使用。
云硬盘容量大于2TiB时，只能使用parted工具为磁盘新建GPT分区。不同云服务器的操作系统的初始化操作可能不同，请根据您的实际环境进行操作。了解MBR和GPT分区差异参见[磁盘分区格式](https://support.huaweicloud.com/usermanual-evs/evs_01_0038.html#evs_01_0038__zh-cn_topic_0000001830820657_section216694193534)。
| 操作指导                                                                              | 分区格式 | 操作系统 | 常见文件系统                           | 初始化工具  | 配置示例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|:---|:---|
| [使用Parted工具初始化数据盘] | GPT  | 不限   | ext\*（如ext2、ext3、ext4）、xfs、btrfs | parted | - 操作系统：CentOS 7.4 64位  - 设备名：/dev/vdb  - 文件系统：ext4  - 挂载目录：/mnt/sdc  - 分区：/dev/vdb1  - 分区格式：GPT  - 容量：3TiB   |
   
#### 前提条件
云硬盘已挂载到云服务器上，挂载云硬盘参见[挂载云硬盘](https://support.huaweicloud.com/usermanual-evs/evs_01_0107.html)。
#### 约束与限制
- 基于备份、快照等数据源创建的云硬盘无需初始化。该云硬盘在初始状态就具有数据源中的数据，初始化有丢失数据的风险。如果需要重新初始化，建议先备份云硬盘中的数据：使用CBR备份请参考[备份云硬盘](https://support.huaweicloud.com/usermanual-evs/evs_01_0110.html)，使用快照备份请参考[创建云硬盘快照](https://support.huaweicloud.com/usermanual-evs/zh-cn_topic_0066615262.html)。
- 初始化云硬盘不会删除云硬盘快照，初始化后仍可以使用快照回滚数据至原云硬盘。
 
 #### 使用Parted工具初始化数据盘
初始化主要操作步骤为创建分区和文件系统，挂载分区，设置开启自动挂载。
**示例说明：使用parted工具，针对"/dev/vdb"数据盘划分1个GPT分区**。
1. 以root用户登录云服务器。 
   登录弹性云服务器请参见[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
   登录裸金属服务器请参见[登录裸金属服务器](https://support.huaweicloud.com/usermanual-bms/bms_umn_0011.html)。
   
   
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
      ```
      表示当前有两块云硬盘，"/dev/vda"是系统盘，"/dev/vdb"是新增数据盘，有3T还未分区。
      
   
   
   
   2. 开始新建分区，您需要将命令中dev/vdb替换成您的磁盘名称。 **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"表示磁盘分区格式未知，新的数据盘还未设置分区格式。
      ![](https://support.huaweicloud.com/usermanual-evs/public_sys-resources/note_3.0-zh-cn.png)
      如果出现报错"-bash: parted: command not found"，则说明系统不识别该命令，需要执行"yum install -y parted"命令来安装该命令。安装成功后再执行上述命令。
      
   
   
   
   3. 针对分区设置分区格式为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)
      ```
      ![](https://support.huaweicloud.com/usermanual-evs/public_sys-resources/note_3.0-zh-cn.png)
      - **mklabel** *磁盘分区形式* ：如果磁盘容量小于等于2 TiB，您想使用parted工具新建MBR分区，分区命令为：**mklabel msdos**。
      
      - **unit s**：设置磁盘的计量单位为磁柱
      
      - 切换云硬盘分区格式，则该云硬盘上的数据将会被清除，请您在初始化时谨慎选择云硬盘的分区格式。
      
      - **云硬盘初始化时设置的磁盘分区格式（MBR或GPT），后续在该云硬盘下创建的所有分区的格式均和首次初始化时设置的分区格式一致，因此如果您创建第2个及后续分区时，无需执行该步骤。**
        
   
   
   
   4. 设置分区名称为/dev/vdb1并且容量全都划分给该分区。 **mkpart** ***/dev/vdb1 2048s 100%***
      **p**
      ![](https://support.huaweicloud.com/usermanual-evs/public_sys-resources/note_3.0-zh-cn.png)
      - **mkpart** *磁盘分区名称 起始磁柱值* *截止磁柱* *值*："2048s"表示磁盘起始磁柱值，"100%"为磁盘截止磁柱值，表示将磁盘100%容量给到/dev/vdb1分区。
      
      - 如果您需要将数据盘容量划分至两个及以上的分区，分区的起始磁柱值和截止磁柱值计算方法跟[2](https://support.huaweicloud.com/usermanual-evs/evs_01_0033.html#evs_01_0033__zh-cn_topic_0000001830700729_li38621446105118)中的相同。
       
      ```
      (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
      ```
      
   
   5. 输入"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. 创建文件系统。 
   1. 为"/dev/vdb1"创建ext4文件系统 **mkfs -t ext4** ***/dev/vdb1***
      ![](https://support.huaweicloud.com/usermanual-evs/public_sys-resources/note_3.0-zh-cn.png)
      - **mkfs** **-t** ***文件系统格式* *磁盘分区名*** ：设置xfs格式文件系统命令为**mkfs -t xfs** **磁盘分区名** ，设置btrfs格式文件系统命令为**mkfs -t btrfs 磁盘分区名**。
      
      - 创建文件系统格式需要等待一段时间，请确保看到如下回显后，再退出。
       
      ```
      [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 ~]#
      ```
      
   
   2. 创建完成后可通过以下命令查看文件系统类型。 **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 ~]#
      ```
      File system"ext4"代表创建成功。
      输入"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来设置开机自动挂载磁盘分区。 
   UUID（universally unique identifier）是Linux系统为磁盘分区提供的唯一的标识字符串。重启后，挂载会失效，因此需要设置开机自动挂载磁盘分区，即在/etc/fstab文件中添加新建磁盘分区信息，启动开机自动挂载磁盘分区。
   ![](https://support.huaweicloud.com/usermanual-evs/public_sys-resources/note_3.0-zh-cn.png)
   - 不建议采用在"/etc/fstab"文件中直接指定设备名（比如/dev/vdb1）的方法，因为云中设备的顺序编码在关闭或者开启云服务器过程中可能发生改变（例如：/dev/vdb1可能会变成/dev/vdb2），可能会导致云服务器重启后不能正常运行。
   
   - 该操作不会影响弹性云服务器中的现有数据。
    
   1. 查询磁盘分区的UUID。 **blkid** ***/dev/vdb1***
      ```
      [root@ecs-test-0001 ~]# blkid /dev/vdb1
      /dev/vdb1: UUID="0b3040e2-1367-4abb-841d-ddb0b92693df" TYPE="ext4"
      ```
      下一步会使用查询到的UUID，请做好记录：示例磁盘分区"/dev/vdb1"的UUID：0b3040e2-1367-4abb-841d-ddb0b92693df。
      
   
   
   
   2. 设置开机自动挂载磁盘分区。 **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. （可选）验证自动挂载功能已生效。 
   您可以重启云服务器验证自动挂载功能是否生效，也可以使用以下方式模拟自动挂载。
   1. 为了验证系统是否会执行自动挂载操作，请先卸载已挂载的分区
   
   
   **umount** ***/dev/vdb1***
   2. 将"/etc/fstab"文件所有内容重新加载。"/etc/fstab"是一个静态文件系统信息表，包含了系统启动时需要自动挂载的文件系统的列表。
   
   
   **mount -a**
   3. 查询文件系统挂载信息。
   
   
   **mount** **\|** **grep** ***/mnt/sdc***
   回显类似如下信息，说明自动挂载功能生效：
   ```
   root@ecs-test-0001 ~]# mount | grep /mnt/sdc
   /dev/vdb1 on /mnt/sdc type ext4 (rw,relatime,data=ordered)
   ```
   
   
   
#### 相关文档
- [容量大于2TiB的云硬盘使用fdisk工具初始化后超过2TiB无法显示该怎么办](https://support.huaweicloud.com/evs_faq/evs_faq_0035.html)。
- [MBR和GPT分区形式有何区别](https://support.huaweicloud.com/evs_faq/evs_faq_0092.html)。
 
