問題現象
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