Perché non è sicuro cancellare vecchi kernel?


36

Ho esaurito lo spazio sul mio disco di avvio, quindi ho deciso di rimuovere i vecchi kernel. Ho trovato questa pagina che descrive esattamente cosa dovrei fare: Documentazione Lubuntu: rimuovere vecchi kernel .

Ho eliminato manualmente il kernel più vecchio e ora va bene, ma non capisco una cosa: alla fine dell'articolo c'è del codice che può eliminare tutte le vecchie versioni del kernel, ma è contrassegnato come solo per utenti esperti.

Non capisco davvero quale sia il pericolo qui. Sembra sciocco, ma sembrano dire che potrebbe esserci più di un kernel usato da una macchina specifica allo stesso tempo.

È possibile che applicazioni diverse sulla mia macchina Ubuntu possano usare kernel diversi contemporaneamente? Perché l'eliminazione di tutti i vecchi kernel viene automaticamente considerata pericolosa?


8
In realtà, l'articolo non contiene le parole "pericolo" e "insicuro". Come sei arrivato a una conclusione così gravemente esagerata?
mikewhatever,

2
Un paio di volte ho eseguito l'aggiornamento all'ultimo kernel e rimosso il mio vecchio kernel prima di riavviare, solo per scoprire che (sul mio sistema particolare) il kernel non funzionava e il sistema non si avviava. Ora faccio prima il riavvio e poi rimuovo il vecchio kernel se tutto va bene.
Matteo Leggi il

Risposte:


50

Rimuovere i vecchi kernel non è intrinsecamente pericoloso, ma se rimuovi tutti i tuoi kernel e riavvii, rimarrai su una schermata di Grub arrabbiata. Correzione che richiede un notevole know-how (come quello ma con un apt-get install linux-genericalla fine).

La prima volta che lo fai è abbastanza emozionante, ma le persone che cercano di ripulire il loro menu Grub o recuperare spazio su disco non sono alla ricerca di emozioni.

Il pericolo viene dagli utenti che copiano e incollano un blocco di codice che - a loro insaputa e senza riconoscere i rischi - non si applica. Esistono molti esempi di rilevamento di kernel vecchi e pochi sono perfetti. Anche il mio ultimo sforzo ha ancora le sue insidie. E stiamo parlando di un problema che può essere risolto; molti post su Ask Ubuntu potrebbero portare alla perdita permanente dei dati se usati in modo errato.

Cerchiamo di proteggerci dai danni segnalando il rischio per rendere gli utenti consapevoli di potenziali problemi . Nel migliore dei casi, l'utente sarà preparato e attrezzato per affrontare un problema e, nel peggiore dei casi, almeno non potrà lamentarsi di non essere stato avvertito.


11
Non rimuovere tutti i tuoi kernel (ovviamente) ma non rimuovere anche il kernel attualmente in esecuzione se hai appena installato un kernel aggiornato e non hai ancora riavviato. Perché? Se qualcosa si rompe nel kernel aggiornato, puoi sempre selezionare il tuo kernel precedente in Grub e tornare al lavoro. Altrimenti, rimarrai bloccato con un sistema non avviabile e dovrai giocare al "gioco LiveCD" (non un gioco divertente, a proposito).
Nathan Osman,

1
È quasi divertente come dd if=/dev/zero of=/dev/sda bs=512 count=1. Non ricordo che cosa stavo provando a fare (qualcosa su più boot manager che mi ha reso la vita fastidiosa). Ho trascorso circa sette ore con un LiveCD cercando di riparare le mie tabelle delle partizioni.
phyrfox,

1
È così facile, mantenere (almeno) un kernel testato e sicuramente funzionante. Qualcuno - @NathanOsman - doveva davvero dirlo in parole, immagino. Seconda lezione importante imparata qui, non fare cose che non conosci le conseguenze.
Nicolai,

1
Non userei la parola "elettrizzante", ma la sensazione è stata intensa quando l'ho fatto.
MDeBusk,

Avendo risolto i problemi del kernel in passato, sono molto più felice di lasciare tre kernel. In genere vado con il kernel attualmente in esecuzione, il kernel più recente e quello immediatamente precedente a quello corrente. Questo mi dà l'ultimo al riavvio, quello noto per funzionare e il precedente se ciò non riesce per qualche motivo. Questo è probabilmente eccessivo, ma è approvato dal CYA.
flickerfly,

4

I vecchi kernel fanno parte dei pacchetti. Se rimuovi semplicemente /boot/vmlinuz-3.13.0-44-generic, lascerai le briciole di pacchi dappertutto.

Innanzitutto, scopri quale kernel stai eseguendo. NON eliminare nulla con questo valore è il suo nome:

$ uname -r  
3.13.0-49-generic  

YMMV. Quindi, chiedi dpkgcosa sa:

$ dpkg -l linux-*

Alcuni di questi pacchetti possono essere rimossi, ma cos'altro c'è? Utilizzando una riga estratta (sul sistema MY) dall'output di dpkg -l linux-*:

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

Ora vedremo cosa hanno altri pacchetti -3.13.0-44nei loro nomi:

$ dpkg -l *-3.13.0-44*

Una volta eseguito un controllo finale per accertarsi che il kernel corrente ( uname -r) NON sia nell'elenco dei pacchetti, è possibile iniziare a rimuoverli tramite il sistema di gestione dei pacchetti di propria scelta.


0

L'ultima volta che ho rimosso i miei vecchi kernel, ho preso in prestito un vecchio frammento di codice. Bene, questo frammento di codice mi aveva richiesto di riavviare dopo aver installato il nuovo kernel, quindi ero rimasto senza un kernel. Fortunatamente, l'avevo notato prima di riavviare, ma come altri hanno detto, potrei essere rimasto con lo "schermo arrabbiato di grub".

Per farla breve, è semplicemente qualcosa che può essere facilmente incasinato, risultando in un sistema in muratura che può essere difficile da recuperare.


0

Non è pericoloso. Usando Linux, puoi fare esattamente quello che vuoi se conosci i comandi giusti.

Nella /bootdirectory, puoi fare un semplice ls -laper avere un lungo elenco e per trovare eventuali file o directory nascosti (che non dovrebbero esserci se ce ne sono !!).

Da queste informazioni, è possibile valutare le date e i file delle vecchie versioni. Non rimuoverli tutti, ma i file più vecchi che corrispondono alla stessa versione.

Ad un certo punto, stavo pensando che potrebbe essere possibile che, se hai compilato il tuo kernel dal sorgente, dovrai modificarne uno nuovo. Il .configfile, che non credo sia il caso secondo la tua spiegazione, rimarrà lì.

Quindi, se succede che dopo aver eliminato i vecchi file corrispondenti a una singola versione e dopo aver riavviato il computer, è possibile che si verifichi un panico nel kernel.

La soluzione semplice è avviare la macchina con un USB live o un CD / DVD Linux. chroote ricostruire il kernel con strumenti come dracut.

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.