如何解決 Linux 虛擬機磁盤設備名不一致的問題

問題描述

在 Linux 虛擬機內,將附加的多塊數據磁盤以設備名(/dev/sdxx)的方式創建文件系統,并將之寫入 /etc/fstab 文件中實現啟動自動掛載功能。但是在虛擬機重啟之后,會隨機出現設備名和實際的文件系統不一致的問題。

問題分析

由于 Azure 虛擬機在啟動過程中,隨機分配數據磁盤的 SCSI 地址,導致了數據磁盤在附加后,獲取的 SCSI 地址會隨機變化。比如原來的數據磁盤 A,初始的設備名為 /dev/sdc ,在重啟之后,會隨機的被分配為 /dev/sdd ,原來的數據磁盤 B,初始的設備名為 /dev/sdd,在重啟之后,被分配為 /dev/sdc。這樣的話,如果客戶通過設備進行自動掛載的話,那么會看到掛載點下的實際數據是不一致的。

解決方案

為了避免上述的設計導致自動掛載時出現故障,建議使用 UUID 來代替設備名。不同文件系統的 UUID 是不會隨著重啟而改變的。這樣,就可以確保每次自動掛載都能將正確的文件系統掛載到正確的掛載點。

按照以下命令獲取文件系統的 UUID :

復制

# blkid

/dev/sdb1: UUID="f788cc09-fad5-4df9-9360-ffe39d82****" TYPE="ext4"

/dev/sda1: UUID="9bb6e11f-4697-476a-9e71-0ebfff61****" TYPE="xfs"

/dev/sda2: UUID="445d96a9-aeb1-4623-a2db-be133bdf****" TYPE="xfs"

按照以下格式寫入 /etc/fstab 文件 :

復制

# cat /etc/fstab

UUID=445d96a9-aeb1-4623-a2db-be133bdf**** /? ? ? ? ? ? ? ? ? ? ? xfs? ? defaults? ? ? ? 0 0

UUID=9bb6e11f-4697-476a-9e71-0ebfff61**** /boot? ? ? ? ? ? ? ? ? xfs? ? defaults

立即訪問http://market.azure.cn

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容