Le problème
Lors de l'exécution de la commande systool sur CentOS/RHEL 7, le message d'erreur suivant s'affiche :
# systool -c fc_host -v Error opening class fc_host
La solution
L'erreur se produit car le scsi_transport_fc module chargé de remplir le contenu de /sys/class/fc_host/ répertoire n'est pas chargé sur le système.
1. Chargez manuellement le module scsi_transport_fc puis générez les fichiers modules.dep et System.map.
# modprobe scsi_transport_fc # depmod
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
2. Réexécutez la commande systool(1) pour confirmer qu'elle affiche la sortie attendue, par exemple :
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"
3. Reconstruisez l'image initiale du disque RAM.
un. Sauvegardez le fichier de disque RAM initial existant pour la version du noyau en cours d'exécution, par exemple :
# cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
b. Reconstruisez le fichier de disque RAM initial pour la version du noyau en cours d'exécution :
# dracut -f
REMARQUE :Si vous exécutez une version du noyau différente de la version initiale du disque RAM que vous construisez (ou si vous exécutez en mode de secours Linux), vous devez spécifier la version/l'architecture complète du noyau, par exemple :
# dracut -f /boot/initramfs-5.4.17-2102.201.3.el7uek.x86_64.img 5.4.17-2102.201.3.el7uek.x86_64
4. Redémarrez le serveur. Au redémarrage, le système devrait automatiquement charger le module du noyau scsi_transport_fc, par exemple :
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
5. Réexécutez la commande systool(1) pour confirmer qu'elle affiche la sortie attendue, par exemple :
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"