🐧 Как внести модуль ядра в blacklist в Ubuntu/Debian Linux

Мануал

Может возникнуть ситуация, когда вам потребуется запретить загрузку некоторых модулей ядра во время загрузки вашей Linux-системы.

В этом руководстве мы обсудим несколько различных способов внесения модуля в чёрный список, включая его зависимости, в Ubuntu и любых других дистрибутивах на базе Debian.

Это позволит навсегда запретить модулю загружаться во время загрузки.

Черный список модулей при загрузке

Следуйте приведенным ниже шагам, чтобы узнать, как внести модуль ядра в черный список для загрузки в вашей системе.

Начнем с перечисления всех модулей, загруженных в настоящее время в вашей системе Linux:

$ lsmod
....
ehci_hcd               40249  0 
usbcore               128741  4 ehci_hcd,ohci_hcd,usbhid
usb_common             12354  1 usbcore
e1000                  86156  0 
libata                140630  4 libahci,ahci,ata_piix,ata_generic
....

Команда lsmod выводит список всех загруженных в данный момент модулей ядра.

Приведенный выше вывод lsmod был сокращен.

Допустим, мы собираемся внести в черный список модуль usbcore.

Прежде чем выгружать или заносить в черный список какой-либо модуль, полезно посмотреть, какие другие модули зависят от него:

$ modinfo -F depends usbcore
usb-common

Из приведенного выше результата видно, что модуль usb-common зависит от usbcore.

Чтобы внести в черный список модуль без зависимостей, создадим файл /etc/modprobe.d/blacklist.conf (если он еще не существует) и добавим в него следующую строку:

blacklist usbcore

После этого обновите initramfs и перезагрузите систему:

# update-initramfs -u
# reboot

После перезагрузки используйте lsmod, чтобы проверить, загружен ли модуль в настоящее время.

Если другие модули зависят от того самого модуля, который вы пытаетесь внести в черный список, как в приведенном выше примере, вам нужно внести в черный список все зависимые модули, иначе исходный модуль, который вы внесли в черный список, все равно загрузится.

К счастью, существует трюк, позволяющий внести в черный список все модули, включая их зависимости.

Если по какой-то причине вы не можете внести в черный список модули и все их зависимости, сделайте так, чтобы модуль не загружался и тем самым заставил не загружаться все зависимые модули.

Добавьте следующую строку в /etc/modprobe.d/blacklist.conf, чтобы полностью занести usbcore в черный список, включая все его зависимые модули:

install usbcore /bin/true

Затем обновите initramfs и перезагрузитесь:

# update-initramfs -u

Для полноты картины, пожалуйста, обратите внимание, что хорошей практикой является создание отдельного файла конфигурации модуля для каждого модуля, занесенного в черный список.

Например, если вы хотите внести в черный список модуль e1000, то создайте отдельный файл /etc/modprobe.d/e1000.conf.

Заключение

В этом руководстве мы рассмотрели, как внести модуль ядра в черный список в Ubuntu и других системах Linux на базе Debian.

Это полезно, когда вам нужно предотвратить загрузку модуля, временно или постоянно, во время загрузки.

Изменение легко вернуть, удалив файл, если вам нужно разрешить модулю загружаться снова.

Эти инструкции позволяют модулю оставаться в вашей системе, просто предотвращая его автоматическую загрузку.

См. также:

 

Добавить комментарий