Jak mogę usunąć skompilowane jądro?


21

Zainstalowałem 14.10 na moim laptopie Lenovo E455.

I skompilowałem jądro 3.19 w następującej kolejności

ponieważ wydawało się, że 14.10 nie chce współpracować z moim. (Widziałem powolne ruchy)

Pobrano bieżące jądro z http://www.kernel.org/

make oldconfig
make
sudo make install

Wreszcie nie udało się uruchomić z nowym jądrem.

Jak mogę usunąć skompilowane jądro z gruba i odzyskać?


Co dotychczas próbowałeś usunąć i gdzie popełnił błąd? Gdzie są jakieś ostrzeżenia lub komunikaty o błędach?
David Foerster,

Dzięki twojej pomocy Odzyskano i czekam na Ubuntu 15.XX.
Ohmygirl,

Odpowiedzi:


33

Prosta metoda:

Jeśli skompilowane za pomocą metody debian, możesz zobaczyć zainstalowane jądro z następującymi elementami:

dpkg --list | grep kernel-image

A następnie odinstaluj żądany pakiet jądra za pomocą apt-get:

sudo apt-get remove kernel-image-your-kernel-image

Trudna metoda:

Jeśli zostanie skompilowany i zainstalowany za pośrednictwem make install, konieczne będzie ręczne usunięcie następujących wpisów:

/boot/vmlinuz*KERNEL-VERSION*
/boot/initrd*KERNEL-VERSION*
/boot/System-map*KERNEL-VERSION*
/boot/config-*KERNEL-VERSION*
/lib/modules/*KERNEL-VERSION*/
/var/lib/initramfs/*KERNEL-VERSION*/

Następnie zaktualizuj konfigurację grub:

sudo update-grub2

1
Nie mam katalogu / var / lib / initramfs /, ale czy to dlatego, że nie mam skompilowanych jąder w moim systemie?
jarno

1
/var/lib/initramfs-tools/*KERNEL-VERSION*w sprawie Debiana
Csaba Toth

1
Rozważ edycję nowszych jąder (rok 2018) zawierającą: /boot/abi*KERNEL-VERSION*i/boot/retpoline*KERNEL-VERSION*
WinEunuuchs2Unix

9

Dzięki pytaniu jarno tutaj wymyśliłem sposób implementacji odpowiedzi Mudita Kapila, który wymaga bardzo małego pisania i łapie wszelkie dodatkowe fragmenty leżące wokół

Ponieważ wszystko, co jest potrzebne do usunięcia jądra, to usunięcie wszystkich jego plików i katalogów, a wszystkie te pliki i katalogi będą zawierały ciąg wydania jądra na swoich ścieżkach, możemy użyć locatedo znalezienia wszystkich plików z ciągiem wydania jądra i usunięcia ich aby usunąć jądro.

(Najpierw sprawdź uname -rnazwę aktualnie uruchomionego jądra i nie usuwaj go)

Powiedz, że chcesz usunąć jądro o nazwie 4.4.6-my-kernel. Możesz znaleźć wszystkie istniejące pliki i katalogi (bez wyświetlania plików we wszystkich nazwanych katalogach) za pomocą locate -b -e 4.4.6-my-kernel. Dołączenie rm -rdo tego za pomocą xargspozwala również usunąć pliki. Dodam, -paby utworzyć xargscele wyświetlania i proszę o potwierdzenie przed wykonaniem

locate -b -e 4.4.6-my-kernel | xargs -p sudo rm -r

następnie wpisz, yaby wykonać rm -rna pokazanych obiektach docelowych. Narzeka, że ​​pliki, które nie są katalogami, nie istnieją, ponieważ próbujesz je usunąć rekurencyjnie ( -r), ale to jest OK, nadal będą usuwane wraz z katalogami i ich zawartością. Po zakończeniu po prostu biegnij

sudo update-grub

zrobione.


+1, ponieważ łapie więcej plików niż zaakceptowana odpowiedź. Na przykład wszystkie dkmsrzeczy. Najpierw uruchomiłbym go bez rmopcji, aby zobaczyć wszystko, co zostanie usunięte.
WinEunuuchs2Unix

Dlaczego nie powinienem usuwać aktualnie działającego jądra? Co jeśli to jest jądro, które chcę usunąć? Czy można usunąć aktualnie działające jądro bez ponownego uruchomienia komputera z innym jądrem?
Liran Funaro

1
@LiranFunaro jest możliwe tak. Zobacz moją odpowiedź Jak odinstalować działające jądro tylko za pomocą poleceń? co również wyjaśnia, dlaczego to prawdopodobnie nie jest dobry pomysł
Zanna
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.