MODULE_LOAD_ERROR
Linux / DevOps
Траблшутинг ошибок модулей ядра Linux: modprobe, dmesg и modprobe.d/blacklist
- Ошибка
modprobe: ERROR: could not insert module: Unknown symbol in module. - Ошибка
Required key not availableпри включенном UEFI Secure Boot. - Оборудование (сеть, RAID, GPU) не инициализируется при загрузке ОС.
- Конфликты между конкурирующими модулями ядра (например, nouveau и nvidia).
1. Просмотр активных модулей и информации
lsmod | grep -E "^(igb|nouveau|kvm)"
modinfo <имя_модуля>2. Трассировка загрузки через modprobe и dmesg
modprobe -v <имя_модуля>
dmesg -T | grep -iE "module|unknown symbol|signature"3. Обновление графа зависимостей модулей
depmod -a4. Блокировка проблемного модуля
Создайте /etc/modprobe.d/blacklist-custom.conf:
blacklist nouveau
install nouveau /bin/falseПерегенерируйте Initramfs:
update-initramfs -u -k all || dracut -f -v5. Принудительная выгрузка модуля
modprobe -rv <имя_модуля>
Практический опыт инженера:
После любых изменений в /etc/modprobe.d обязательно пересобирайте initramfs (dracut / update-initramfs), иначе модули раннего этапа загрузки продолжат стартовать из старого образа.
Частые вопросы (FAQ)
Почему директивы blacklist бывает недостаточно для отключения модуля?
Если другой разрешенный модуль явно зависит от заблокированного, ядро все равно его загрузит. Директива install <модуль> /bin/false полностью предотвращает загрузку.
Как исправить ошибку 'Required key not available'?
Подпишите скомпилированный модуль ключом MOK через утилиту sign-file или отключите строгую валидацию Secure Boot через mokutil --disable-validation.