问题现象
Linux弹性云主机在线卸载云硬盘后重新挂载云硬盘,或在线卸载云硬盘后重启弹性云主机,可能会存在挂载前后盘符发生变化的情况。这是由于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来代替代/dev/vdx设备,UUID是Linux系统为磁盘分区提供的唯一的标识字符串。
- 执行如下命令,查询磁盘分区的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。
- 执行以下命令,使用VI编辑器打开“fstab”文件。
vi /etc/fstab
- 按“i”,进入编辑模式。
- 将光标移至文件末尾,按“Enter”,添加如下内容。
UUID=b9a07b7b-9322-4e05-ab9b-14b8050cd8cc /mnt/sdc ext4 defaults 0 0
重复替换“/dev/vdc1”的UUID,再次执行以下命令查看磁盘挂载参数:
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