關於RHEL 5 下scsi_id 無返回值的問題解決(1)
2014年12月11日修訂:本文釋出後有很多網友聯絡諮詢和留言,恰逢最近解決了此問題,決定另發表一篇文章繼續解析一下scsi_id無返回值的問題,這次應該是完全的解決方案了(建議按順序閱讀)。
關於RHEL 5 下scsi_id 無返回值的問題解決(2) 完全解析
http://blog.itpub.net/14184018/viewspace-1364944/
根據http://www.cn.redhat.com/kbase/0808/12118.php(連結已失效20141211)中,執行/sbin/scsi_id -g -u -s /block/sdb後會返回scsi的WWID,可以用來給udev使用。但是在實際操作中卻發現REHL5裡沒有/block目錄,嘗試把/block替換成/dev或/sys/block,執行後均無效,無任何返回值,於是google很長時間,找到問題了。
參考以下:
裝置檔案:由於本文以較通俗的方式講解 udev,所以裝置檔案是泛指在 /dev/下,可被應用程式用來和裝置驅動互動的檔案。而不會特別地區分裝置檔案、裝置節點或者裝置特殊檔案。 devfs:devfs是 Linux 早期的裝置管理工具,已經被 udev 取代。 sysfs:sysfs是 Linux 2.6 核心裡的一個虛擬檔案系統 (/sys)。它把裝置和驅動的資訊從核心的裝置模組匯出到使用者空間 (userspace)。從該檔案系統中,Linux 使用者可以獲取很多裝置的屬性。 devpath:本文的 devpath是指一個裝置在 sysfs檔案系統 (/sys)下的相對路徑,該路徑包含了該裝置的屬性檔案。udev 裡的多數命令都是針對 devpath操作的。例如:sda的 devpath是 /block/sda,sda2 的 devpath是 /block/sda/sda2。 核心裝置名稱:裝置在 sysfs裡的名稱,是 udev 預設使用的裝置檔名。
RHEL 4 . 8下 udev 的配置檔案
[root@RHEL4 dev]# cat /etc/udev/udev.conf # udev.conf # The main config file for udev # # This file can be used to override some of udev's default values # for where it looks for files, and where it places device nodes. # # WARNING: changing any value, can cause serious system breakage! # # udev_root - where in the filesystem to place the device nodes udev_root="/dev/" # udev_db - The name and location of the udev database. udev_db="/dev/.udev.tdb" # udev_rules - The name and location of the udev rules file udev_rules="/etc/udev/rules.d/" # udev_permissions - The name and location of the udev permission file udev_permissions="/etc/udev/permissions.d/" # default_mode - set the default mode for all nodes that have no # explicit match in the permissions file default_mode="0600" # default_owner - set the default owner for all nodes that have no # explicit match in the permissions file default_owner="root" # default_group - set the default group for all nodes that have no # explicit match in the permissions file default_group="root" # udev_log - set to "yes" if you want logging, else "no" udev_log="no"
|
Linux 使用者可以通過該檔案設定以下引數:
udev_root:udev 產生的裝置所存放的目錄,預設值是 /dev/。建議不要修改該引數,因為很多應用程式預設會從該目錄呼叫裝置檔案。 udev_db:udev 資訊存放的資料庫或者所在目錄,預設值是 /dev/.udev.tdb。 udev_rules:udev 規則檔案的名字或者所在目錄,預設值是 /etc/udev/rules.d/。 udev_permissions:udev 許可權檔案的名字或者所在目錄,預設值是 /etc/udev/permissions.d/。 default_mode/ default_owner/ default_group:如果裝置檔案的許可權沒有在許可權檔案裡指定,就使用該引數作為預設許可權,預設值分別是:0600/root/root。 udev_log:是否需要 syslog記錄 udev 日誌的開關,預設值是 no。
清單 4. RHEL5.3 下 udev 的配置檔案
[root@RHEL5 ~]# cat /etc/udev/udev.conf # udev.conf # The initial syslog(3) priority: "err", "info", "debug" or its # numerical equivalent. For runtime debugging, the daemons internal
# state can be changed with: "udevcontrol log_priority=
|
udev_log:syslog記錄日誌的級別,預設值是 err。如果改為 info 或者 debug 的話,會有冗長的 udev 日誌被記錄下來。
實際上在 RHEL5.3 裡,除了配置檔案裡列出的引數 udev_log外,Linux 使用者還可以修改引數 udev_root和 udev_rules( 請參考上面的“RHEL4.8 的 udev 配置檔案”),只不過這 2 個引數是不建議修改的,所以沒顯示在 udev.conf 裡。
可見該版本的 udev.conf 改動不小:syslog預設會記錄 udev 的日誌,Linux 使用者只能修改日誌的級別 (err、info、degub 等 );裝置的許可權不能在 udev.conf 裡設定,而是要在規則檔案 (*.rules) 裡設定。
所以,根據如上紅色所示部分,http://www.cn.redhat.com/kbase/0808/12118.php中的/block/sdb指的是相對路徑,直接使用就可以,據對路徑是/sys/block,推測scsi_id只支援相對路徑,直接使用絕對路徑會因為找不到裝置屬性檔案而無返回值。直接執行/sbin/scsi_id -g -u -s /block/sdb後,返回WWID。
P.S. 如本文沒有解決你的問題,請繼續閱讀:
關於RHEL 5 下scsi_id 無返回值的問題解決(2) 完全解析
http://blog.itpub.net/14184018/viewspace-1364944/
本文乃spectre2原創文章,請勿轉載。如須轉載請詳細標明轉載出處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14184018/viewspace-701675/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於RHEL 5 下scsi_id 無返回值的問題解決(2) 完全解析
- 關於listener無法啟動的問題解決
- 解決XML下無效字元的問題XML字元
- 關於Linux下Texlive無法找到已安裝字型的問題與解決Linux
- SaaS無法解決“關鍵”問題
- RHEL7對於ifconfig命令問題的解決方法
- 解決Hexo關於圖片的問題Hexo
- 關於解決問題的幾個段位
- 關於Failed to resolve的問題解決AI
- 關於網路硬體配置出現問題,無法上網問題的解決
- 怎樣成為解決問題的高手?——關於問題解決的關鍵4步驟
- 大家看看這個問題能否解決?關於無線應用
- 關於 LF will be replaced by CRLF 問題的解決方式
- 一個關於/root/.gvfs的問題解決?
- 關於EJB查詢返回值的解決方法 (轉)
- 關於xml編碼問題在VB,PHP,JAVA下的解決方案XMLPHPJava
- 關於並口,串列埠問題解決串列埠
- 關於解決博弈論問題的SG函式函式
- 關於oracle invalid components問題的解決Oracle
- 關於ORA-28031問題的解決
- 關於 PHP Session ID 改變的問題解決PHPSession
- 關於解決 Java 程式語言執行緒問題的建議(1)(轉)Java執行緒
- 關於Centos7中Vscode無響應的問題及解決方法CentOSVSCode
- 高手都進來歇歇~解決一個問題關於SE的問題
- PGI在RHEL4.0上的crtbegin問題解決(轉)
- 解決關於IIS gzip不能正常啟用的問題
- 關於input的一些問題解決方法分享
- 關於PHP程式設計師解決問題的能力PHP程式設計師
- 解決ubuntu下sublime無法輸入中文問題Ubuntu
- 【Tip】解決like中無法匹配下劃線的問題
- Oracle 解決like中無法匹配下劃線的問題Oracle
- RHEL下oracle使用者執行rman無響應的解決Oracle
- 關於JDK1.2的JDBC中文問題的解決 (轉)JDKJDBC
- 關於 VMware Workstation14 Pro 宿主機無法聯網問題解決方案
- 關於ubuntu下hosts修改的問題Ubuntu
- 解決無法使用VI的問題
- 關於ActiveMQ在MyEclipse中出現無法讀取schema文件的問題解決方法MQEclipse
- 一個關於JS解決陣列相乘問題JS陣列