Istnieje uszkodzony moduł jądra, przez co nie mogę nawet załadować systemu operacyjnego, więc nie mogę go usunąć ani naprawić. Czy można pominąć ten moduł podczas rozruchu, używając parametrów jądra lub czegoś takiego?
Istnieje uszkodzony moduł jądra, przez co nie mogę nawet załadować systemu operacyjnego, więc nie mogę go usunąć ani naprawić. Czy można pominąć ten moduł podczas rozruchu, używając parametrów jądra lub czegoś takiego?
Odpowiedzi:
Czarna lista modułu, jak wspomniano w poprzedniej odpowiedzi, jest najlepszym sposobem na całkowite uniknięcie modułu jądra. Oprócz czarnej listy nie ma ogólnego sposobu na wyłączenie modułu.
Niektóre dystrybucje Linuksa zapewniają parametry rozruchowe jądra, aby wykonywać takie czynności.
load_modules=off
siły udev pominąć automatyczne ładowanie. Umożliwiłoby to uruchomienie komputera bez ładowania modułów, umieszczenie na czarnej liście modułu powodującego problemy i ponowne uruchomienie normalnie bez ładowania modułu z problemami.Aby uzyskać więcej informacji, zobacz dokumentację parametrów jądra . Istnieją parametry wyłączania określonych podsystemów. Na przykład:
nousb
wyłącza obsługę USB jądracgroup_disable=[name]
wyłącza określony kontroler; „pamięć” jest jednak jedynym obsługiwanym przykłademlibata.noacpi
wyłącza użycie ACPI w libata (kontrolery SATA); jest to przykład przekazywania parametru modułu przez jądroWyłączenie określonych modułów jest możliwe z poziomu modułu ładującego, ale w rzeczywistości wygląda na zależne od dystrybucji.
Z jednej strony dokumentacja parametrów jądra systemu Linux stwierdza, według stanu na sierpień 2016 r .:
module_blacklist=
[KNL] Nie ładuj listy modułów oddzielonych przecinkami. Przydatny do debugowania modułów problemowych.
Z drugiej strony opcja, która działała dla mnie z openSUSE 42.1 (Linux 4.1.31) jest opisana na wiki modułów Arch Kernel :
Możesz także umieścić na czarnej liście modułów z bootloadera. Po prostu dodaj
modprobe.blacklist=modname1,modname2,modname3
do linii jądra bootloadera, jak opisano w parametrach jądra. Gdy umieszczasz na czarnej liście więcej niż jeden moduł, pamiętaj, że są one oddzielone tylko przecinkami. Spacje lub cokolwiek innego może przypuszczalnie złamać składnię.
(Podziękowania dla @gertvdijk z unix.SE za zwrócenie na to uwagi.)
Warto również wspomnieć o następującej metodzie :
Aby zapobiec ładowaniu niektórych modułów przez jądro za pomocą wiersza poleceń grub, musisz przekazać je jako parametr do wiersza jądra, używając poniższej składni.
$module_name.blacklist=yes
Nie mam pojęcia, skąd oni to wzięli, ale na pewno nie zaszkodzi spróbować innej metody, jeśli wszystko inne zawiedzie.
Powinieneś być w stanie dodać go do /etc/modprobe.d/blacklist lub czarnej listy „modulename”