Problém
Při spuštění příkazu systool na CentOS/RHEL 7 se zobrazí následující chybová zpráva:
# systool -c fc_host -v Error opening class fc_host
Řešení
K chybě dochází, protože scsi_transport_fc modul, který je zodpovědný za naplnění obsahu /sys/class/fc_host/ adresář není načten v systému.
1. Ručně načtěte modul scsi_transport_fc a poté vygenerujte soubory modules.dep a System.map.
# modprobe scsi_transport_fc # depmod
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
2. Znovu spusťte příkaz systool(1), abyste potvrdili, že zobrazuje očekávaný výstup, např.:
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"
3. Znovu vytvořte počáteční obraz disku RAM.
A. Zálohujte stávající počáteční soubor na disku RAM pro aktuálně spuštěnou verzi jádra, např.:
# cp -p /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
b. Znovu vytvořte počáteční soubor disku RAM pro aktuálně spuštěnou verzi jádra:
# dracut -f
POZNÁMKA :Pokud používáte verzi jádra, která se liší od původní verze RAM disku, kterou vytváříte (nebo pokud běží v záchranném režimu Linux), musíte zadat plnou verzi/architekturu jádra, např.:
# dracut -f /boot/initramfs-5.4.17-2102.201.3.el7uek.x86_64.img 5.4.17-2102.201.3.el7uek.x86_64
4. Restartujte server. Po restartu by měl systém automaticky načíst modul jádra scsi_transport_fc, např.:
# lsmod | grep scsi_transport_fc scsi_transport_fc 57344 0
5. Znovu spusťte příkaz systool(1), abyste potvrdili, že zobrazuje očekávaný výstup, např.:
# systool -c fc_host Class = "fc_host" Class Device = "host2" Device = "host2" Class Device = "host3" Device = "host3"