【轉】在RHEL5上,使用udev給SCSI裝置分配靜態裝置名
限制條件:
本文提到的udev規則只適用於紅帽企業版Linux 5。udev規則的語法在紅帽企業版Linux 5和4上稍有不同。適用於紅帽企業版Linux 4的規則可以參考 http://kbase.redhat.com/faq/FAQ_85_8082.shtm。
1. 首先是要獲得SCSI裝置的WWID。例如,要獲得/dev/sdc的WWID, 執行命令:
# scsi_id -g -u -s /block/sdc
將得到類似下面的輸出:
[root@rhel5 rules.d]# scsi_id -g -u -s /block/sdc
3600a0b800013275100000015427b625e
scsi_id命令發出一個SCSI INQUIRY指令給裝置,訪問vital product data (VPD)頁0x83的資料,那裡包含裝置的WWID和其他的資訊,或者頁0x80的資料,那裡包含單元序列號(unit serial number)。
scsi_id命令的執行結果(一長串字元)是裝置的WWID,當前對映到/dev/sdc(/sys/block/sdc)。每一條到裝置的路徑和裝置上的每一個分割槽的WWID都是相同的。裝置的WWID不會改變,即使將其他的裝置新增到系統或者從系統中刪除。但是,對映到/dev/sdc的裝置可能會改變。這就是為什麼需要建立一個靜態的裝置名。可以根據WWID建立裝置名。
2. 為命名裝置建立規則。建立檔案/etc/udev/rules.d/20-names.rules。在這個檔案裡,新增命名規則。規則的格式是:
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="WWID",
SYMLINK+="devicename%n"
這將使得系統檢查所有名字元合/dev/sd*的SCSI裝置,並且檢查指定的WWID。當發現匹配的裝置時,系統將會建立裝置節點/dev/devicename。如果裝置上有分割槽,第一個分割槽將會是/dev/devicename1,第二個分割槽是/dev/devicename2,等等。現在,將上面的WWID和devicename替換成之前獲得的真實WWID和想要的裝置名。在這個例子中,規則應該是:
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p",
RESULT=="3600a0b800013275100000015427b625e", SYMLINK+="mydevice%n"
這條規則為WWID是3600a0b800013275100000015427b625e的SCSI裝置建立裝置名(一個符號連結)/dev/mydevice。裝置上的所有分割槽名將會是/dev/mydevice1,/dev/mydevice2 等等。
3. 使用udevtest測試這條規則:
[root@rhel5 rules.d]# udevtest /block/sdc | grep mydevice udev_rules_get_name:
add symlink 'mydevice' udev_node_add: creating symlink '/dev/mydevice' to 'sdc'
如果在/dev/sdc上有分割槽,執行這條命令測試將為/dev/sdc1建立的裝置:
[root@rhel5 rules.d]# udevtest /block/sdc/sdc1 | grep mydevice udev_rules_get_name:
add symlink 'mydevice1' udev_node_add: creating symlink '/dev/mydevice1' to 'sdc1'
4. 最後,執行start_udev使得udev建立這些裝置。
start_udev
確認裝置/dev/mydevices*已經被建立,並且連結到/dev/sdc*。只要WWID是3600a0b800013275100000015427b625e的裝置被紅帽企業版Linux檢測到,那麼它將被udev固定地對應到/dev/mydevice。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14184018/viewspace-701668/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用UDEV繫結裝置名dev
- SCSI裝置在Linux上跑起來(轉)Linux
- rhel 7.x 使用 udev scsi rules 配置裸裝置dev
- 在Linux中使用UDEV繫結裝置Linuxdev
- udev 裸裝置 安裝racdev
- Orace RAC安裝-Oracle Linux 5和6 ASM的UDEV SCSI規則配置-使SCSI裝置受信OracleLinuxASMdev
- 使用 udev 高效、動態地管理 Linux 裝置檔案devLinux
- 使用udev高效、動態的管理Linux裝置檔案devLinux
- Linux使用udev繫結裸裝置Linuxdev
- 利用UDEV管理Linux塊裝置,並分配ASM使用 (文件 ID 1528148.1)devLinuxASM
- linux udev裸裝置繫結Linuxdev
- oracle靜默安裝raw裝置Oracle
- 字元裝置、塊裝置、裸裝置、RAW裝置 .字元
- 使用adb如何批量給裝置安裝apkAPK
- 字元裝置、塊裝置與裸裝置字元
- RHEL5中裸裝置的建立簡介
- Orace RAC安裝-Oracle Linux 5和6 ASM的UDEV SCSI規則配置-載入更新的塊裝置分割槽OracleLinuxASMdev
- 終端裝置上的機器學習: Android裝置上的TensorFlow [session]機器學習AndroidSession
- 在系統上檢視網路卡裝置
- AssetBundle在移動裝置上丟失
- 認識linux中的裝置名稱(轉)Linux
- 裸裝置、字元裝置、塊裝置不全面比較字元
- Redhat7 Udev繫結(DM multipath)多路徑裝置Redhatdev
- Redhat7 Udev繫結單路徑裝置方法Redhatdev
- MobileBERT:一個在資源有限裝置上使用的BERT模型模型
- Microsoft WPBT漏洞可讓黑客在Windows裝置上安裝rootkitROS黑客Windows
- 在 Android 裝置上搭建 Web 伺服器AndroidWeb伺服器
- OpenGLES API 3.0在 32bit裝置上失效API
- 用J2ME在移動裝置上實現動畫(轉)動畫
- oracle 裸裝置(轉載)Oracle
- PHP判斷使用者裝置是否是移動裝置PHP
- 乾貨 | 裝置快速上雲,輕鬆搞定裝置與雲端通訊
- 【Linux】UDEV SCSI規則在Oracle Linux上配置ASMLinuxdevOracleASM
- HTML+CSS編寫靜態網站-36 裝置適配概述HTMLCSS網站
- Linux裝置名稱的查詢Linux
- 各家儲存在OS的裝置名稱 ?
- 字元裝置與塊裝置的區別字元
- 裸裝置與塊裝置的區別