
# 初始化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. 登录边缘实例。 
   登录边缘实例请参见[登录边缘实例](https://support.huaweicloud.com/usermanual-iec/iec_02_0405.html#iec_02_0405__section69261322278)。
   
   
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
      ```
      
   
   
   
   2. 开始新建分区/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"表示磁盘分区格式未知，新的数据盘还未设置分区格式。
      ![](https://support.huaweicloud.com/usermanual-iec/public_sys-resources/note_3.0-zh-cn.png)
      如果出现报错"-bash: parted: command not found"，则说明系统不识别该命令，需要执行"yum install -y parted"命令来安装该命令。安装成功后再执行上述命令。
      
   
   
   
   3. 针对分区/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)
      ```
      ![](https://support.huaweicloud.com/usermanual-iec/public_sys-resources/note_3.0-zh-cn.png)
      - 如果磁盘容量小于等于2 TiB，您想使用parted工具新建MBR分区，则此处命令为：**mklabel msdos**。
      
      - 切换云硬盘分区格式，则该云硬盘上的数据将会被清除，请您在初始化时谨慎选择云硬盘的分区格式。
      
      - **云硬盘初始化时设置的磁盘分区格式（MBR或GPT），后续在该云硬盘下创建的所有分区的格式均和首次初始化时设置的分区格式一致，因此如果您创建第2个及后续分区时，无需执行该步骤。**
        
   
   
   
   4. 针对分区/dev/vdb1设置分区名称及大小。 **mkpart /dev/vdb1 2048s** **100%**
      **p**
      ![](https://support.huaweicloud.com/usermanual-iec/public_sys-resources/note_3.0-zh-cn.png)
      - "2048s"表示磁盘起始磁柱值，"100%"为磁盘截止磁柱值，表示将磁盘100%容量给到/dev/vdb1分区。
      
      - 如果您需要将数据盘容量划分至两个及以上的分区，分区的起始磁柱值和截止磁柱值计算方法跟[7.3.2-b](https://support.huaweicloud.com/usermanual-iec/iec_02_1412.html#iec_02_1412__zh-cn_topic_0000001799003198_zh-cn_topic_0000001830700729_li156121261193)中的相同。
       
      ```
      (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**
   ![](https://support.huaweicloud.com/usermanual-iec/public_sys-resources/note_3.0-zh-cn.png)
   创建文件系统格式需要等待一段时间，请观察系统运行状态，不要退出。
   ```
   [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来设置开机自动挂载磁盘分区。 
   ![](https://support.huaweicloud.com/usermanual-iec/public_sys-resources/note_3.0-zh-cn.png)
   - 重启后，挂载会失效，因此需要设置开机自动挂载磁盘分区，即在/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。
      
   
   
   
   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. 验证自动挂载功能已生效。 
   **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)
   ```
   
   
   
 
