Das Problem
Beim Ausführen des Befehls systool unter CentOS/RHEL 7 wird die folgende Fehlermeldung gemeldet:
# systool -c fc_host -v Error opening class fc_host
Die Lösung
Der Fehler tritt auf, weil scsi_transport_fc Modul, das für das Füllen des Inhalts von /sys/class/fc_host/ verantwortlich ist Verzeichnis ist nicht auf dem System geladen.
1. Laden Sie das Modul scsi_transport_fc manuell und generieren Sie dann die Dateien modules.dep und System.map.
# modprobe scsi_transport_fc # depmod
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
2. Führen Sie den Befehl systool(1) erneut aus, um zu bestätigen, dass er die erwartete Ausgabe anzeigt, z. B.:
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"
3. Erstellen Sie das anfängliche RAM-Disk-Image neu.
a. Sichern Sie die vorhandene anfängliche RAM-Disk-Datei für die aktuell ausgeführte Kernel-Version, z. B.:
# cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
b. Erstellen Sie die anfängliche RAM-Disk-Datei für die aktuell ausgeführte Kernel-Version neu:
# dracut -f
HINWEIS :Wenn Sie eine Kernel-Version ausführen, die sich von der anfänglichen RAM-Disk-Version unterscheidet, die Sie erstellen (oder wenn Sie im Linux-Rettungsmodus ausgeführt werden), müssen Sie die vollständige Kernel-Version/-Architektur angeben, z. B.:
# dracut -f /boot/initramfs-5.4.17-2102.201.3.el7uek.x86_64.img 5.4.17-2102.201.3.el7uek.x86_64
4. Starten Sie den Server neu. Beim Neustart sollte das System automatisch das Kernelmodul scsi_transport_fc laden, z. B.:
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
5. Führen Sie den Befehl systool(1) erneut aus, um zu bestätigen, dass er die erwartete Ausgabe anzeigt, z. B.:
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"