Může nastat chvíle, kdy budete muset zakázat načítání některých modulů jádra během spouštění systému Linux. V této příručce probereme několik různých způsobů, jak zablokovat modul, včetně jeho závislostí, na Ubuntu a jiných distribucích založených na Debianu. To účinně trvale znemožní načítání modulu během doby spouštění.
V tomto tutoriálu se naučíte:
- Jak přidat modul jádra na černou listinu v distribucích Linuxu založených na Ubuntu/Debianu
Zakázání modulu jádra na Ubuntu Linux
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Distro založené na Debianu |
Software | Není k dispozici |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Modul černé listiny se načítá
Postupujte podle níže uvedených kroků, abyste viděli, jak zakázat načtení modulu jádra do vašeho systému.
- Začněme výpisem všech modulů, které jsou aktuálně načteny vaším systémem 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
příkaz vypíše všechny aktuálně načtené moduly jádra. Výše uvedenýlsmod
výstup byl zkrácen. - Řekněme, že zakážeme
usbcore
na černou listinu modul. Než uvolníte nebo zakážete jakýkoli modul, je dobré se podívat, jaké další moduly na něm závisí:$ modinfo -F depends usbcore usb-common
- Z výše uvedeného výstupu vidíme, že
usb-common
modul závisí nausbcore
. Pro blacklist modulu bez závislostí vytvoříme/etc/modprobe.d/blacklist.conf
(pokud již neexistuje) a přidejte do něj následující řádek:blacklist usbcore
- Po dokončení aktualizujte initramfs a restartujte systém:
# update-initramfs -u # reboot
Po restartu použijte lsmod
abyste zjistili, zda je modul aktuálně načten. V případě, že jiné moduly jsou závislé na modulu, který se pokoušíte zakázat, jako ve výše uvedeném příkladu, budete muset zablokovat všechny závislé moduly, jinak by se původní modul, který jste uvedli na černou listinu, stejně načetl. Naštěstí existuje trik, jak zakázat všechny moduly včetně jejich závislostí.
Pokud z nějakého důvodu nemůžete zablokovat moduly a všechny jejich závislosti, zajistěte selhání načtení modulu a tím také způsobte, že se všechny závislé moduly nenačítají. Přidejte následující řádek do /etc/modprobe.d/blacklist.conf
úplně zakázat usbcore
včetně všech jeho závislých modulů:
install usbcore /bin/true
Poté aktualizujte initramfs a restartujte:
# update-initramfs -u
Pro úplnost si prosím uvědomte, že je dobrým zvykem vytvořit samostatný konfigurační soubor modulu pro každý modul na černé listině. Například pokud chcete zakázat modul e1000
a poté vytvořte samostatný /etc/modprobe.d/e1000.conf
soubor.
Úvahy na závěr
V této příručce jsme viděli, jak zakázat modul jádra v Ubuntu a dalších systémech Linux založených na Debianu. To je užitečné, když potřebujete zabránit načítání modulu, ať už dočasně nebo trvale, při bootování. Změnu lze snadno vrátit odstraněním souboru, pokud potřebujete povolit opětovné načtení modulu. Tyto pokyny umožňují modulu zůstat ve vašem systému a zároveň brání jeho automatickému načtení.