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.