Как черный список модулей ядра?

Сначала, извините за мой плохой английский. Во-вторых, вы можете посмотреть в своем ~ / .bashrc (или в каком-то файле, где есть ваши псевдонимы), или вы можете написать некоторые из этих команд в своей оболочке:

command -v ll # "command" is a shell built-in that display information about       
              # the command. Use the built-in "help command" to see the 
              # options.
type -p ll # "type" is another built-in that display information about how the 
           # command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your 
                      # alias. This command search recursively  under  each  
                      # folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in 
                      # the files (not folders) in your home folder

Но зачем использовать find без имени -name ". *"? Вы можете поместить это в свой .bashrc

source bash_hacks # where the file bash_hacks, in your home directory can 
                  # contain the alias ll='ls -la etc etc'.

Поскольку «ll» это псевдоним, не обязательно иметь только одно значение (ll = 'ls -alF --color), вы можете псевдоним вашего «ll», как и другой comand, как, я не знаю, «rm». Я думаю, что это скорее соглашение (продукт общего использования).

Но «ll» может быть программой, хранящейся в любой папке вашего PATH. Например, если у вас есть папка с именем «bin» в вашем доме, создайте сценарий «ll», который содержит что-то вроде

#!/bin/bash
ls -lhar

. Но что, если ваш PATH был изменен, чтобы добавить еще одну папку, которая содержит новую команду «ll»? Для получения более интересной информации вы можете обратиться к следующей ссылке к соответствующему вопросу.

https://unix.stackexchange.com/questions/85249/why-not-use-which-what-to-use -если
1
задан 24 October 2013 в 02:50

4 ответа

Вы также можете временно занести в черный список их в командной строке grub (linux line) при загрузке с синтаксисом

module_to_blacklist.blacklist=yes
24
ответ дан 25 May 2018 в 13:43
  • 1
    Как долго это «временный»? До следующей загрузки? – Seth♦ 7 July 2013 в 01:49
  • 2
    Seth, это временная только для одной загрузки, если вы редактировали во время загрузки. Если вы редактируете с помощью /etc/grub.d/ скриптов или / etc / default / grub, то он является постоянным. – Peter 14 July 2013 в 16:08
  • 3
    По-видимому, это не работает для i915: i915: unknown parameter 'blacklist' ignored. – Rafał Cieślak 3 July 2014 в 20:05
  • 4
    В чем разница между этим и modprobe.blacklist=module_to_blacklist? – Zaz 5 June 2015 в 01:20
  • 5
    или используйте параметр ядра modprobe.blacklist=module_to_blacklist (подробнее см. man modprobe) – Karl Richter 13 June 2015 в 14:29

Ни одно из этих решений не работало с 16.04 LTS для i915.ko.

Я нашел (грязное) решение переименовать

/lib/modules/4.4.0-22-generic/kernel/drivers/gpu/drm/i915/i915.ko
/usr/lib/xorg/modules/drivers/modesetting_drv.so
/usr/lib/xorg/modules/drivers/intel_drv.so

К сожалению, внешний экран VGA не признан больше: {

3
ответ дан 25 May 2018 в 13:43
  • 1
    Все, что вам нужно, это sudo update-initramfs -u после изменения файлов /etc/modprobe.d/ – Ivan Black 14 July 2016 в 01:12

Другим способом для модулей черного списка, по крайней мере, для Ubuntu 16.04 LTS, является добавление следующей строки в командную строку ядра:

modprobe.blacklist=MODULE_NAME

Использование системы / etc / modprobe - лучший способ, но это это альтернатива, которая может быть использована в сжатом виде путем редактирования вашей командной строки GRUB при загрузке.

Это также можно сделать постоянным, отредактировав / etc / default / grub и добавив к переменной GRUB_CMDLINE_LINUX_DEFAULT. Например, в моем / etc / default / grub у меня есть:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"

Затем я запускаю update-grub2, затем update-initramfs -u. После перезагрузки вы будете свободны от модуля, если ничего не загрузите после загрузки.

Этот метод также работает в вариантах EL (RHEL, CentOS, SciLinux), но вам придется используйте методы distro для обновления grub и initrd.

(Обратите внимание на тех, кто пытается выполнить черный список: не загружайте X, запустив systemctl set-default multi-user.target, иначе при запуске X он снова загрузит нуво! )

3
ответ дан 25 May 2018 в 13:43

В более поздних версиях вам необходимо использовать директиву install в вашем файле черного списка

install modulename /bin/false

Заменить «имя модуля» выше с именем модуля. Это принудительно предотвратит его загрузку.

Дополнительную информацию об директиве install в руководстве для modprobe.conf

man modprobe.conf
можно найти в руководстве по установке.
3
ответ дан 25 May 2018 в 13:43

Другие вопросы по тегам:

Похожие вопросы: