我想調試一下我的硬件上的SSD沒有被正確的設備驅動程序檢測到的情況。應該擁有SSD的設備驅動程序是一個軟件RAID驅動程序(megasr),它將自動配置2個SSD處於鏡像模式。我很確定megasr驅動程序沒有檢測/擁有SSD,但我不確定哪個驅動程序實際檢測到它們。確定擁有磁盤的linux驅動程序
在Linux中,我可以確定哪個設備驅動程序擁有/ dev目錄中的特定磁盤。
因此,我想確定哪個驅動程序擁有設備/ dev/sda,例如。
操作系統是RHEL 6.x.
非常感謝。
我想調試一下我的硬件上的SSD沒有被正確的設備驅動程序檢測到的情況。應該擁有SSD的設備驅動程序是一個軟件RAID驅動程序(megasr),它將自動配置2個SSD處於鏡像模式。我很確定megasr驅動程序沒有檢測/擁有SSD,但我不確定哪個驅動程序實際檢測到它們。確定擁有磁盤的linux驅動程序
在Linux中,我可以確定哪個設備驅動程序擁有/ dev目錄中的特定磁盤。
因此,我想確定哪個驅動程序擁有設備/ dev/sda,例如。
操作系統是RHEL 6.x.
非常感謝。
你可以看到內核日誌
dmesg | grep sda
<...>
[ 0.618438] sd 2:0:0:0: [sda] Attached SCSI disk
<...>
日誌在談論一個SCSI磁盤,SD 2:0:0:0是生成該消息的裝置。你可以檢查sysfs的更多細節:
cd /sys/block/
cd /sys/block/sda/
在這裏你可以找到關於所有塊設備的信息。如果你看看你的特定設備的目錄,你應該看到它的信息。
這裏有關於scsi總線的信息。有兩個目錄:驅動程序和設備。
cd /sys/bus/scsi
cd /sys/bus/scsi/devices
cd /sys/bus/scsi/drivers
這裏是scsi總線上的驅動程序列表。
ls /sys/bus/scsi/drivers
sd sr
日誌說SD 2:0:0:0
cd /sys/bus/scsi/drivers/sd/2:0:0:0
這裏我的設備,所以SD是我的司機。
磁盤是塊設備,你應該看到的目錄塊
cd /sys/bus/scsi/drivers/sd/2:0:0:0/block/sda
有可能是這個自動:)
做,如果錯誤的驅動程序正在處理您的設備,你的程序可以取消綁定來自該驅動程序的設備,並且可以將其綁定到另一個設備。
ls /sys/bus/scsi/drivers/sd
2:0:0:0 bind uevent unbind
您可以在解除綁定文件上寫入設備標識符,以將該設備從驅動程序中分離出來。
echo -n "2:0:0:0" > unbind
然後你就可以將設備連接到另一個驅動程序
cd /sys/bus/scsi/drivers/<a-driver>
echo -n "2:0:0:0" > bind
顯然,(1),你不能綁定一個SCSI設備,以非SCSI驅動器。 顯然,(2),這是不是您的特定問題的答案,但它是檢索,你需要解決的問題
SCSI_IOCTL_GET_BUS_NUMBER(0x5386)
IOCTL SCSI主機ID的信息的方式。/sys/class/scsi_host/host<scsi host id>/proc_name
文件包含設備驅動程序。腳本:
#!/usr/bin/python
# Copyright 2016 Gris Ge <[email protected]>
# Licensed to the public domain.
from array import array
from fcntl import ioctl
import sys
import os
SCSI_IOCTL_GET_BUS_NUMBER = 0x5386
SYSFS_SCSI_HOST_DRV_FORMAT = "/sys/class/scsi_host/host{HOST_ID}/proc_name"
def get_scsi_host_id(path):
fd = open(path, "wb")
buff = array('i', [0])
ioctl(fd, SCSI_IOCTL_GET_BUS_NUMBER, buff, 1)
fd.close()
return int(buff[0])
def main():
scsi_host_id = get_scsi_host_id(sys.argv[1])
os.system("cat %s" %
SYSFS_SCSI_HOST_DRV_FORMAT.format(**{"HOST_ID":scsi_host_id}))
main()
例子:
[[email protected] source]$ sudo python find_driver_of_sdx.py /dev/sda
ahci
謝謝,我會盡快嘗試了這一點,看看它是否解決了我的問題。 –