Il problema
Quando si esegue il comando systool su CentOS/RHEL 7, viene segnalato il seguente messaggio di errore:
# systool -c fc_host -v Error opening class fc_host
La soluzione
L'errore si verifica perché scsi_transport_fc modulo responsabile del popolamento dei contenuti di /sys/class/fc_host/ directory non è caricata sul sistema.
1. Carica manualmente il modulo scsi_transport_fc, quindi genera i file modules.dep e System.map.
# modprobe scsi_transport_fc # depmod
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
2. Esegui nuovamente il comando systool(1) per confermare che visualizzi l'output previsto, ad esempio:
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"
3. Ricostruisci l'immagine del disco RAM iniziale.
un. Eseguire il backup del file del disco RAM iniziale esistente per la versione del kernel attualmente in esecuzione, ad esempio:
# cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
b. Ricostruisci il file del disco RAM iniziale per la versione del kernel attualmente in esecuzione:
# dracut -f
NOTA :se stai eseguendo una versione del kernel diversa dalla versione iniziale del disco RAM che stai creando (o se stai eseguendo in modalità di ripristino di Linux), devi specificare la versione/architettura del kernel completa, ad esempio:
# dracut -f /boot/initramfs-5.4.17-2102.201.3.el7uek.x86_64.img 5.4.17-2102.201.3.el7uek.x86_64
4. Riavviare il server. Al riavvio, il sistema dovrebbe caricare automaticamente il modulo del kernel scsi_transport_fc, ad esempio:
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
5. Esegui nuovamente il comando systool(1) per confermare che visualizzi l'output previsto, ad esempio:
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"