Загрузка и выгрузка модулей в Linux

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

Сначала переключимся на root пользователя если не под ним, например в Ubuntu это можно сделать так:

sudo -i

Посмотрим список загруженных модулей:

lsmod

Посмотреть загружен ли конкретный модуль можно так (где NAME — имя модуля):

lsmod | grep NAME

Для загрузки/выгрузки модуля используются команды:

modprobe NAME
modprobe -r NAME

Когда выполняется команда загрузки модуля, modprobe ищет его в директории:

/lib/modules/$(uname -r)

Можно посмотреть какие есть например так:

ls /lib/modules/$(uname -r)
ls /lib/modules/$(uname -r)/kernel/net/netfilter/

Для загрузки/выгрузки модуля из другой директории можно выполнить команды:

insmod /path/to/module/name.ko
rmmod /path/to/module/name.ko

Посмотреть информацию о модуле и возможные параметры запуска можно так:

modinfo NAME

Можно посмотреть конкретную информацию о модуле, например где он находится:

modinfo --filename NAME

Чтобы модули запускались в самом начале запуска системы, то их нужно прописать в файл /etc/modules.conf, а чтобы запускались в последнюю очередь после запуска всех служб, то в файл /etc/rc.local.
Помимо файла /etc/modules.conf есть также директория /etc/modprobe.d/, где находятся подобные файлы с расширением .conf.

Например в rc.local модули прописываются так:

/sbin/modprobe NAME

В файле modules.conf прописываются так:

nf_nat_ftp

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

blacklist NAME

Обновление ядра Linux на серверах Hetzner

Понадобилось однажды обновить ядро CentOS на сервере в Hetzner который проработал без перезагрузки около 2 лет.

Посмотрел различную информацию о системе, версиях установленных ядрах и запущенном ядре:

lsb_release -a
uname -r
uname -a
cat /proc/version
sudo rpm -q kernel
ls /boot | grep vmlinuz

Обновил ядро:

yum -y update

Перезагрузил сервер используя ссылку в cPanel https://example.com:2087/scripts/dialog?dialog=reboot

Можно также командой:

reboot

После ухода на перезагрузку сервер не запустился, я сразу же сделал заявку в техническую поддержку через панель https://robot.your-server.de.
Техническая поддержка отреагировала в течении двух минут, как они сообщили, сервер не отвечал на нажатия клавиш, был черный экран, после физического выключения и включения он успешно запустился.
Вот такие бывают случаи перезагрузки, нужно быть готовым ко всему.
При следующих перезагрузках зависание больше не повторялось.

Решение ошибки «nf_conntrack: table full, dropping packet»

Заметил однажды в Ubuntu Server 14.04 LTS настроенного как роутер, в файле /var/log/kern.log следующую ошибку:

Читать далее «Решение ошибки «nf_conntrack: table full, dropping packet»»

Решение ошибки NMI watchdog: BUG: soft lockup — CPU#0 stuck for 23s!

Заметил несколько раз зависание сервера с установленным Ubuntu Server 14.04.01, после чего помогала только жесткая перезагрузка с выключением электропитания.

Читать далее «Решение ошибки NMI watchdog: BUG: soft lockup — CPU#0 stuck for 23s!»