Linux獲取磁盤的UUID和序列號WWID的方法
前言
背景描述,在Linux系統(tǒng)中,如果添加了新的SCSI磁盤或者映射SAN存儲LUN操作,重啟操作系統(tǒng)之后會出現(xiàn)磁盤標(biāo)識符(sd*)錯亂的情況。
介紹
例如之前添加的SAN存儲LUN的磁盤標(biāo)識符為/dev/sdd,重啟之后發(fā)現(xiàn)變成/dev/sdh,特別是oracle RAC環(huán)境下我們是不希望出現(xiàn)這樣的情況的。
解決這個問題之前,需要先搞清楚Linux系統(tǒng)中的 wwid 和 uuid 號。
WWID
根據(jù)SCSI標(biāo)準,每個SCSI磁盤都有一個WWID,類似于網(wǎng)卡的MAC地址,要求是獨一無二。
通過WWID標(biāo)示SCSI磁盤就可以保證磁盤路徑永久不變,Linux系統(tǒng)上/dev/disk/by-id目錄包含每個SCSI磁盤WWID訪問路徑。
查看磁盤設(shè)備wwid方法:
Linux 6:
scsi_id -g -u /dev/sda
Linux 7/8:
/usr/lib/udev/scsi_id -g -u /dev/sda

UUID
UUID是有文件系統(tǒng)在創(chuàng)建時候生成的,用來標(biāo)記文件系統(tǒng),類似WWID一樣也是獨一無二的。
因此使用UUID來標(biāo)示SCSI磁盤,也能保證路徑是永久不變的。Linux上/dev/disk/by-uuid可以看到每個已經(jīng)創(chuàng)建文件系統(tǒng)的磁盤設(shè)備以及與/dev/sd*之間的映射關(guān)系。
自內(nèi)核 2.15.1 起,libuuid 就是 util-linux-ng 包中的一部分,它被默認安裝在 Linux 系統(tǒng)中。UUID 由該庫生成,可以合理地認為在一個系統(tǒng)中 UUID 是唯一的,并且在所有系統(tǒng)中也是唯一的。
UUID 以 32 個十六進制的數(shù)字表示,被連字符分割為 5 組顯示,總共的 36 個字符的格式為 8-4-4-4-12(32 個字母或數(shù)字和 4 個連字符)。
作為一個 Linux 系統(tǒng)管理員,你應(yīng)該知道如何去查看分區(qū)的 UUID 或文件系統(tǒng)的 UUID。因為現(xiàn)在大多數(shù)的 Linux 系統(tǒng)都使用 UUID 掛載分區(qū)。你可以在 /etc/fstab 文件中可以驗證。
有許多可用的實用程序可以查看 UUID。本文我們將會向你展示多種查看 UUID 的方法,并且你可以選擇一種適合于你的方法。
例如: d92fa769-e00f-4fd7-b6ed-ecf7224af7fa
磁盤的 UUID 是唯一且不隨主機重啟改變,因此綁定磁盤時需要用到 UUID,那么如何獲取 UUID呢?
我們可以使用下面的 7 個命令來查看。
blkid命令:定位或打印塊設(shè)備的屬性。lsblk命令:列出所有可用的或指定的塊設(shè)備的信息。hwinfo命令:硬件信息工具,是另外一個很好的實用工具,用于查詢系統(tǒng)中已存在硬件。udevadm命令:udev 管理工具tune2fs命令:調(diào)整 ext2/ext3/ext4 文件系統(tǒng)上的可調(diào)文件系統(tǒng)參數(shù)。dumpe2fs命令:查詢 ext2/ext3/ext4 文件系統(tǒng)的信息。by-uuid路徑:該目錄下包含有 UUID 和實際的塊設(shè)備文件,UUID 與實際的塊設(shè)備文件鏈接在一起。
查看磁盤設(shè)備uuid方法:
blkid
以上簡單介紹了 UUID 和 WWID 的區(qū)別,以及如何查看!
Linux6、7查詢、修改磁盤UUID
一、獲取磁盤UUID
Linux6:
#a b c 等為磁盤sda,sdb,sdc盤符 for i in a b c ; do echo "\"sd$i\" UUID= \"`/lib/udev/scsi_id -g -u -d /dev/sd$i`\"" done
Linux7:
#a b c 等為磁盤sda,sdb,sdc盤符 for i in a b c ; do echo "\"sd$i\" UUID= \"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\"" done
scsi_id --help 查看更多參數(shù)注:若是在VMware中生成的虛擬磁盤,在操作系統(tǒng)中可能查不到磁盤uuid,需要在配置文件中追加以下參數(shù):配置文件文件的路徑和名字為:" \ 虛擬機家目錄\ 虛擬機名字.vmx " 文件
#控制uuid參數(shù) disk.EnableUUID = "TRUE"
二、獲取磁盤分區(qū)或邏輯卷的 “文件系統(tǒng)類 型” 及其 “分區(qū)uuid”
獲取分區(qū)或邏輯卷信息: 1、blkid #輸出結(jié)果相對詳細 #批量查詢分區(qū)信息或邏輯卷如下: #sda1,sda2等為磁盤sda分區(qū),mapper/centos-home為磁盤邏輯卷 for i in sda1 sda2 mapper/centos-lv_data; do echo " \"`blkid /dev/$i`\"" done 2、lsscsi --scsi_id -g #顯示磁盤類型,分區(qū)等相關(guān)信息(Linux6沒有此命令) 3、ll /dev/disk/by-uuid #不好用,不推薦
注:分區(qū)或邏輯卷只有在格式化文件系統(tǒng)后才有uuid
三、修改分區(qū)UUID
1、重新生成磁盤uuid
#硬盤分區(qū)為sdc1 uuidgen | xargs tune2fs /dev/sdc1 -U
示例:
# blkid /dev/sdc1 ##查詢sdc1分區(qū)uuid /dev/sdc1: UUID="e26881ee-73ba-46b1-bcf8-94b6833b58dc" TYPE="ext4" # uuidgen | xargs tune2fs /dev/sdc1 -U ##重新生成sdc1分區(qū)uuid tune2fs 1.41.12 (17-May-2010) # blkid /dev/sdc1 ##再次查詢sdc1分區(qū)uuid /dev/sdc1: UUID="4ae4a650-0f58-4e99-8d89-4dc3332a45c6" TYPE="ext4"
2、將sdc1分區(qū)原來的uuid重新寫入分區(qū)(前提是有備份過)
tune2fs -U e26881ee-73ba-46b1-bcf8-94b6833b58dc /dev/sdc1
示例:
# blkid /dev/sdc1 ##查詢sdc1分區(qū)uuid /dev/sdc1: UUID="4ae4a650-0f58-4e99-8d89-4dc3332a45c6" TYPE="ext4" # tune2fs -U e26881ee-73ba-46b1-bcf8-94b6833b58dc /dev/sdc1 ##將sdc1分區(qū)原來的uuid重新寫入分區(qū) tune2fs 1.41.12 (17-May-2010) # blkid /dev/sdc1 ##再次查詢sdc1分區(qū)uuid /dev/sdc1: UUID="e26881ee-73ba-46b1-bcf8-94b6833b58dc" TYPE="ext4"
以上就是Linux獲取磁盤的UUID和序列號WWID的方法的詳細內(nèi)容,更多關(guān)于Linux獲取磁盤UUID和WWID的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
centos7系統(tǒng)nginx服務(wù)器下phalcon環(huán)境搭建方法詳解
這篇文章主要介紹了centos7系統(tǒng)nginx服務(wù)器下phalcon環(huán)境搭建方法,結(jié)合具體實例形式詳細分析了centos7的nginx服務(wù)器搭建phalcon的具體操作步驟與相關(guān)設(shè)置技巧,需要的朋友可以參考下2019-09-09
在 Linux 上用 DNS 實現(xiàn)簡單的負載均衡的方法
這篇文章主要介紹了在 Linux 上用 DNS 實現(xiàn)簡單的負載均衡的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
ubuntu/deepin制作快捷啟動圖標(biāo)的方法
這篇文章主要介紹了ubuntu/deepin制作快捷啟動圖標(biāo)的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法
本篇文章主要介紹了使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

