Подробный гайд по /etc/modprobe.d/blacklist.conf в Alt Linux
Важно:
В современных дистрибутивах Linux файл /etc/modprobe.d/blacklist.conf не рекомендуется редактировать напрямую. Он часто управляется пакетами и может быть перезаписан при обновлении.
Что такое modprobe.d и зачем нужен blacklist
modprobe — утилита управления модулями ядра Linux.
Директория /etc/modprobe.d/ содержит конфигурационные файлы с расширением .conf, которые определяют:
- Какие модули запрещать к автоматической загрузке
- Какие параметры передавать модулям
- Как переопределять зависимости или команды загрузки
blacklist нужен, чтобы ядро или udev не загружали драйверы автоматически (например, конфликтующие свободный и проприетарный драйверы, лишние устройства, проблемное оборудование).
Синтаксис и директивы
| Директива | Описание | Надёжность |
|---|---|---|
blacklist <имя> |
Запрещает автозагрузку через modprobe. Не блокирует загрузку как зависимости или через udev/firmware. |
Низкая |
install <имя> /bin/true |
Полная блокировка: даже если другой модуль потребует его, загрузка будет прервана. | Высокая |
install <имя> /bin/false |
Аналогично /bin/true, но возвращает код ошибки (удобно для отладки). |
Высокая |
options <имя> <параметры> |
Передача параметров модулю (часто используется вместе с blacklist). | Высокая |
Имена модулей указываются без расширения .ko и без путей. Пример: nouveau, btusb, pcspkr.
Правильное создание файла в Alt Linux
# 1. Создаём свой файл (имя должно оканчиваться на .conf)
sudo nano /etc/modprobe.d/01-custom-blacklist.conf
# 2. Пример содержимого
blacklist nouveau
options nouveau modeset=0
install btusb /bin/true
blacklist pcspkr
# 3. Сохраняем и выходим
Почему префикс 01-? Файлы в /etc/modprobe.d/ читаются в лексикографическом порядке. Низкие цифры = более раннее применение правил. Это гарантирует, что ваши директивы не будут переопределены файлами от пакетов (например, 50-nvidia.conf).
Применение изменений в Alt Linux
1. Если модуль загружается поздно (после монтирования корня)
Достаточно перезагрузиться или выгрузить модуль вручную:
sudo rmmod <имя_модуля> # или sudo modprobe -r <имя_модуля>
2. Если модуль загружается на раннем этапе (в initramfs)
Обязательно обновить образ начальной загрузки:
Alt Linux p10 / p11 / Sisyphus:
sudo update-initramfs -u
Alt Linux p9 и старше (если используется mkinitrd):
sudo mkinitrd -f
Проверить успешность обновления:
ls -l /boot/initrd.img-$(uname -r)
Проверка и отладка
| Задача | Команда |
|---|---|
| Проверить, загружен ли модуль | lsmod | grep <имя> |
| Увидеть, как modprobe интерпретирует правило | modprobe --show-config | grep <имя> |
| Посмотреть зависимости модуля | modprobe --show-depends <имя> |
| Проверить логи ядра | sudo dmesg | grep <имя> |
| Проверить, кто владеет файлом blacklist | rpm -qf /etc/modprobe.d/blacklist.conf |
| Принудительно загрузить модуль (игнорируя blacklist) | sudo modprobe --force <имя> |
Если blacklist не сработал:
- Модуль загружается через
udevили firmware → используйтеinstall <имя> /bin/true - Модуль вшит в ядро (
CONFIG_<NAME>=y) → blacklist бесполезен, только пересборка ядра - Правило переопределено другим
.confфайлом → проверьтеls /etc/modprobe.d/и порядок загрузки
Примеры типичных сценариев
1. Установка проприетарного драйвера NVIDIA
blacklist nouveau
blacklist nvidia_drm
blacklist nvidia_uvm
options nouveau modeset=0
install nouveau /bin/true
После:
sudo update-initramfs -u` + перезагрузка.
2. Отключение PCSpeaker (пищалка)
blacklist pcspkr
3. Блокировка USB-Bluetooth
blacklist btusb
install btusb /bin/true
4. Отключение виртуальных сетевых адаптеров (VMware/VirtualBox)
blacklist vmxnet3
blacklist e1000
blacklist vboxguest
blacklist vboxsf
Критические предупреждения
| Ошибка | Последствие | Как избежать |
|---|---|---|
Блокировка ext4, xfs, ahci, virtio_blk |
Kernel panic при загрузке | Никогда не блэклистите файловые системы и контроллеры хранения без проверки |
Блокировка usbhid, i8042, serio_raw |
Отказ клавиатуры/мыши | Тестируйте в chroot или через SSH |
| Правильный blacklist, но модуль всё равно грузится | Зависимости или udev |
Замените blacklist на install <модуль> /bin/true |
Файл без расширения .conf |
Игнорируется modprobe | Всегда используйте *.conf |
Обслуживание и обновление
- При обновлении ядра в Alt Linux
update-initramfsвызывается автоматически черезkernel-modules-скрипты. После ручного изменения blacklist рекомендуется явно выполнитьsudo update-initramfs -u. - Резервная копия перед правками:
sudo cp /etc/modprobe.d/01-custom-blacklist.conf /etc/modprobe.d/01-custom-blacklist.conf.bak - Проверка синтаксиса:
sudo modprobe -c > /dev/null(вернёт ошибку при неверном синтаксисе)
Справка и документация Alt Linux
man modprobe.d— официальный мануал по форматуman update-initramfs(Alt Linux)- База знаний Alt Linux: altlinux.org/Modprobe
- Пакеты:
kmod,initramfs-toolsилиdracut(зависит от ветки),kernel-modules-*
Чек-лист перед перезагрузкой
- [ ] Файл имеет расширение
.confи лежит в/etc/modprobe.d/ - [ ] Используется
install <модуль> /bin/trueдля критичных случаев - [ ] Выполнен
sudo update-initramfs -u(илиmkinitrd -f) - [ ] Проверено через
lsmodиdmesg - [ ] Есть доступ к консоли восстановления или SSH на случай проблем
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.