El problema
Al ejecutar el comando systool en CentOS/RHEL 7, aparece el siguiente mensaje de error:
# systool -c fc_host -v Error opening class fc_host
La solución
El error ocurre porque scsi_transport_fc módulo que es responsable de llenar el contenido de /sys/class/fc_host/ directorio no está cargado en el sistema.
1. Cargue manualmente el módulo scsi_transport_fc y luego genere los archivos modules.dep y System.map.
# modprobe scsi_transport_fc # depmod
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
2. Vuelva a ejecutar el comando systool(1) para confirmar que muestra el resultado esperado, por ejemplo:
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"
3. Reconstruya la imagen de disco RAM inicial.
una. Haga una copia de seguridad del archivo de disco RAM inicial existente para la versión del kernel que se está ejecutando actualmente, por ejemplo:
# cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
b. Reconstruya el archivo de disco RAM inicial para la versión del kernel que se está ejecutando actualmente:
# dracut -f
NOTA :si está ejecutando una versión del kernel que es diferente a la versión inicial del disco RAM que está creando (o si está ejecutando el modo de rescate de Linux), debe especificar la versión/arquitectura completa del kernel, por ejemplo:
# dracut -f /boot/initramfs-5.4.17-2102.201.3.el7uek.x86_64.img 5.4.17-2102.201.3.el7uek.x86_64
4. Reinicie el servidor. Al reiniciar, el sistema debería cargar automáticamente el módulo kernel scsi_transport_fc, por ejemplo:
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
5. Vuelva a ejecutar el comando systool(1) para confirmar que muestra el resultado esperado, por ejemplo:
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"