
# 重启后盘符发生变化怎么办？
#### 问题现象
Linux弹性云服务器在线卸载云硬盘后重新挂载云硬盘，或在线卸载云硬盘后重启弹性云服务器，可能会存在挂载前后盘符发生变化的情况。
#### 问题原因
当Linux系统的弹性云服务器管理多块磁盘时，会按照磁盘加载顺序分配盘符，依次为磁盘命名，例如：/dev/vda1，/dev/vdb1，/dev/vdc1等。
由于Linux系统的盘符分配机制，当弹性云服务器卸载云硬盘后重新挂载，或者卸载云硬盘后重启云服务器时，可能会存在出现盘符发生变化的情况。
例如，某个云服务器有/dev/vda1，/dev/vdb1，/dev/vdc1三块磁盘，在/etc/fstab中的挂载参数如下所示：
**cat /etc/fstab**
```
UUID=b9a07b7b-9322-4e05-ab9b-14b8050bdc8a  /  ext4  defaults  0  1 
/dev/vdb1                       /data1   ext4  defaults  0  0 
/dev/vdc1                       /data2   ext4  defaults  0  0
```
当卸载原有磁盘/dev/vdb1，并重启云服务器后，原有的/dev/vdc1会变为/dev/vdb1并挂载到挂载点/data1，而挂载点/data2则无磁盘可以挂载。
磁盘盘符的变化会影响依赖盘符工作的应用程序的正常使用，为解决这个问题，建议采用UUID（universally unique identifier）来替代/dev/vdx，UUID是Linux系统为磁盘分区提供的唯一的标识字符串。
![](https://support.huaweicloud.com/ecs_faq/public_sys-resources/note_3.0-zh-cn.png)
该方案不适用于挂载共享云硬盘。直接挂载共享云硬盘会因读写冲突和数据缓存导致数据不一致。
挂载共享云硬盘的详细操作，请参见[挂载共享云硬盘](https://support.huaweicloud.com/usermanual-evs/evs_01_0010.html#section6)。
#### 处理方法
1. 登录弹性云服务器。
2. 执行以下命令，查询磁盘分区的UUID。
   **blkid** ***磁盘分区***
   以查询磁盘分区"/dev/vdb1"的UUID为例：
   **blkid /dev/vdb1**
   回显类似如下信息：
   ```
   [root@ecs-test-0001 ~]# blkid /dev/vdb1 
   /dev/vdb1: UUID="b9a07b7b-9322-4e05-ab9b-14b8050cd8cc" TYPE="ext4"
   ```
   表示"/dev/vdb1"的UUID。
   
3. 执行以下命令，使用VI编辑器打开"fstab"文件。 **vi /etc/fstab**
   
4. 按"i"，进入编辑模式。
5. 将光标移至文件末尾，按"Enter"，添加如下内容。
   ```
   UUID=b9a07b7b-9322-4e05-ab9b-14b8050cd8cc    /data1   ext4    defaults        0 0
   ```
   其中，
   - UUID=b9a07b7b-9322-4e05-ab9b-14b8050cd8cc：磁盘的分区的UUID。
   
   - /data1：磁盘分区的挂载目录，可以通过df -TH命令查询。
   
   - ext4：磁盘分区的文件系统格式， 可以通过df -TH命令查询。
   
   - defaults：磁盘分区的挂载选项，此处通常设置为defaults即可。
   
   - 0：Linux dump备份选项。
     - 0表示不使用Linux dump备份。现在通常不使用dump备份，此处设置为0即可。
     
     - 1表示使用Linux dump备份。
      
   
   - 0：fsck选项，即开机时是否使用fsck检查磁盘。
     - 0表示不检验。
     
     - 挂载点为（/）根目录的分区，此处必须填写1。 根分区设置为1，其他分区只能从2开始，系统会按照数字从小到大依次检查下去。
       
      
    
6. 重复执行步骤[2]\~步骤[5]，替换"/dev/vdc1"的UUID。
7. 再次执行以下命令，查看磁盘挂载参数： **cat /etc/fstab**
   回显信息如下所示：
   ```
   UUID=b9a07b7b-9322-4e05-ab9b-14b8050bdc8a  /  ext4  defaults  0  1 
   UUID=b9a07b7b-9322-4e05-ab9b-14b8050cd8cc   /data1   ext4  defaults  0  0 
   UUID=b9a07b7b-9322-4e05-ab9b-14b8050ab6bb   /data2   ext4  defaults  0  0
   ```
   
 
