Come posso rimuovere il kernel compilato?


21

Ho installato 14.10 sul mio laptop Lenovo E455.

E compilato il kernel 3.19 con il seguente ordine

poiché sembrava che il 14.10 non volesse lavorare con il mio. (Ho visto movimenti lenti)

Kernel corrente scaricato da http://www.kernel.org/

make oldconfig
make
sudo make install

Infine, impossibile avviare il nuovo kernel.

Come posso rimuovere il kernel compilato da grub e recuperarlo?


Cosa hai provato finora per rimuoverlo e dove è andato storto? Dove sono presenti messaggi di avviso o di errore?
— David Foerster,

Grazie per il vostro aiuto Recuperato e in attesa di Ubuntu 15.XX.
— Ohmygirl,

Risposte:


33

Il metodo semplice:

Se compilato tramite il metodo debian, puoi vedere il kernel installato con il seguente:

dpkg --list | grep kernel-image

E quindi disinstallare il pacchetto kernel desiderato con apt-get:

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

Il metodo difficile:

Se compilato e installato tramite make install, sarà necessario rimuovere manualmente le seguenti voci:

/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*/

Quindi aggiorna la configurazione di grub:

sudo update-grub2

1
Non ho la directory / var / lib / initramfs /, ma è perché non ho kernel compilati nel mio sistema?
— jarno,

1
/var/lib/initramfs-tools/*KERNEL-VERSION*su Debian
— Csaba Toth il

1
Prendi in considerazione una modifica per i kernel più recenti (anno 2018) contenente: /boot/abi*KERNEL-VERSION*e/boot/retpoline*KERNEL-VERSION*
— WinEunuuchs2Unix

9

Grazie alla domanda di Jarno qui ho escogitato un modo per implementare la risposta di Mudit Kapil che richiede pochissima digitazione e cattura eventuali frammenti extra in giro

Poiché tutto ciò che è necessario per rimuovere il kernel è eliminare tutti i suoi file e directory, e tutti quei file e directory avranno la stringa di rilascio del kernel nei loro percorsi, possiamo usare locateper trovare tutti i file con la stringa di rilascio del kernel ed eliminarli per rimuovere il kernel.

(Prima controlla uname -rper trovare il nome del kernel attualmente in esecuzione e assicurati di non eliminarlo)

Supponiamo che tu voglia rimuovere un kernel chiamato 4.4.6-my-kernel. Puoi trovare tutti i file e le directory esistenti (senza elencare i file in tutte le directory denominate) con locate -b -e 4.4.6-my-kernel. L'aggiunta rm -ra questo con xargsconsente di eliminare anche i file. Aggiungo -pper creare xargstarget di visualizzazione e chiedere conferma prima di eseguire

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

quindi digitare yper eseguire rm -rsugli obiettivi mostrati. Si lamenterà che i file che non sono directory non esistono perché stai cercando di eliminarli in modo ricorsivo ( -r) ma va bene, verranno comunque rimossi insieme alle directory e al loro contenuto. Al termine, corri

sudo update-grub

et voilà.


+1 perché questo cattura più file della risposta accettata. Ad esempio tutte le dkmscose. Vorrei eseguirlo prima senza l' rmopzione solo per vedere tutto ciò che sarebbe stato eliminato.
— WinEunuuchs2Unix

Perché non dovrei cancellare il kernel attualmente in esecuzione? E se quello è il kernel che voglio cancellare? È possibile eliminare il kernel attualmente in esecuzione senza prima riavviare la macchina con un altro kernel?
— Liran Funaro,

1
@LiranFunaro è possibile si. Vedi la mia risposta Come posso disinstallare il kernel in esecuzione solo su comando? il che spiega anche perché probabilmente non è una buona idea
— Zanna
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.