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.