la partizione di avvio è quasi piena in CentOS


23

Ho ricevuto un avviso della mia partizione / boot quasi piena (85%). Cosa dovrei fare? Posso rimuovere uno dei kernel di backup? Come farlo in sicurezza?

La mia partizione adesso

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             10321208    719856   9077064   8% /
tmpfs                  4015460         0   4015460   0% /dev/shm
/dev/sda1               101133     80781     15130  85% /boot
/dev/sda8            253782660  47668764 193222404  20% /home
/dev/sda7              1032088    535840    443820  55% /tmp
/dev/sda3             10321208   4823740   4973180  50% /usr
/dev/sda5             10321208   1807284   7989636  19% /var

Il kernel che ho

root@server1 [/boot]# rpm -q kernel
kernel-2.6.32-358.el6.x86_64
kernel-2.6.32-358.18.1.el6.x86_64
kernel-2.6.32-358.23.2.el6.x86_64

La directory / Boot

root@server1 [/boot]# ls -la /boot
total 78741
dr-xr-xr-x.  5 root root     2048 Dec  3 05:33 ./
drwxr-xr-x. 23 root root     4096 Dec  4 05:46 ../
-rw-r--r--   1 root root   104112 Aug 28 12:43 config-2.6.32-358.18.1.el6.x86_64
-rw-r--r--   1 root root   104112 Oct 16 14:01 config-2.6.32-358.23.2.el6.x86_64
-rw-r--r--.  1 root root   104081 Feb 21  2013 config-2.6.32-358.el6.x86_64
drwxr-xr-x.  3 root root     1024 Sep 20 20:15 efi/
drwxr-xr-x.  2 root root     1024 Oct 21 15:06 grub/
-rw-r--r--   1 root root 16191847 Sep 20 20:21 initramfs-2.6.32-358.18.1.el6.x86_64.img
-rw-r--r--   1 root root 16261655 Oct 21 15:06 initramfs-2.6.32-358.23.2.el6.x86_64.img
-rw-r--r--.  1 root root 16187335 Sep 20 20:16 initramfs-2.6.32-358.el6.x86_64.img
-rw-------   1 root root  3698835 Sep 20 20:27 initrd-2.6.32-358.18.1.el6.x86_64kdump.img
-rw-------   1 root root  3983771 Dec  3 05:33 initrd-2.6.32-358.23.2.el6.x86_64kdump.img
-rw-------   1 root root  3695290 Sep 20 20:21 initrd-2.6.32-358.el6.x86_64kdump.img
drwx------.  2 root root    12288 Sep 20 20:13 lost+found/
-rw-r--r--   1 root root   185949 Aug 28 12:44 symvers-2.6.32-358.18.1.el6.x86_64.gz
-rw-r--r--   1 root root   185978 Oct 16 14:02 symvers-2.6.32-358.23.2.el6.x86_64.gz
-rw-r--r--.  1 root root   185734 Feb 21  2013 symvers-2.6.32-358.el6.x86_64.gz
-rw-r--r--   1 root root  2408641 Aug 28 12:43 System.map-2.6.32-358.18.1.el6.x86_64
-rw-r--r--   1 root root  2408974 Oct 16 14:01 System.map-2.6.32-358.23.2.el6.x86_64
-rw-r--r--.  1 root root  2407466 Feb 21  2013 System.map-2.6.32-358.el6.x86_64
-rwxr-xr-x   1 root root  4046224 Aug 28 12:43 vmlinuz-2.6.32-358.18.1.el6.x86_64*
-rw-r--r--   1 root root      171 Aug 28 12:43 .vmlinuz-2.6.32-358.18.1.el6.x86_64.hmac
-rwxr-xr-x   1 root root  4047152 Oct 16 14:01 vmlinuz-2.6.32-358.23.2.el6.x86_64*
-rw-r--r--   1 root root      171 Oct 16 14:01 .vmlinuz-2.6.32-358.23.2.el6.x86_64.hmac
-rwxr-xr-x.  1 root root  4043888 Feb 21  2013 vmlinuz-2.6.32-358.el6.x86_64*
-rw-r--r--.  1 root root      166 Feb 21  2013 .vmlinuz-2.6.32-358.el6.x86_64.hmac

Il kernel che sto usando

root@server1 [/boot]# uname -a
Linux server1 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

4
Perché questo è stato contrassegnato come duplicato? L'altra domanda non riguarda nemmeno yum. Non dubito che sia un duplicato, ma non di quella particolare domanda.
Bratchley,

Risposte:


48

Procedi come segue per mantenere solo gli ultimi 2 kernel sul tuo sistema, per mantenere / avviare pulito

1 - Modifica /etc/yum.confe imposta il seguente parametro

installonly_limit=2

In questo modo il gestore dei pacchetti manterrà solo gli ultimi 2 kernel sul sistema (incluso quello in esecuzione)

2 - Installa yum-utils:

yum install yum-utils

3- Effettua una pulizia del vecchio kernel:

package-cleanup --oldkernels --count=2

Fatto. Questo cancellerà in modo corretto i vecchi kernel e, manterrà solo gli ultimi 2 per i successivi aggiornamenti.

Per casi speciali in cui hai vmlinuz-0-rescue-*e initramfs-0-rescue-*file che utilizzano troppo spazio su disco, dai un'occhiata a questa domanda su U&L:


Grazie nwildner! Posso farlo adesso? Devo riavviare il sistema dopo averlo fatto? Devo eseguire il backup di tutti i miei dati?
Tester,

Si, puoi. Un backup del tuo / boot, solo per precauzione, potrebbe essere una buona cosa da fare. Non sarà necessario riavviare, poiché il passaggio 3 cancellerà il kernel più vecchio, a meno che non lo si stia eseguendo proprio ora. Il primo passo, renderà permanente questa configurazione;)

Anche se questo non è sempre abbastanza. Ho seguito questi passaggi e ho scoperto che avevo già solo 2 kernel - il problema per me era un file "initramfs-0-rescue" da 60 MB che aveva 5 mesi. Eliminato e tutto andava bene.
Codemonkey

1
Ehi, @Codemonkey. Ho aggiornato la mia risposta con i dettagli sui file di ripristino ...

10

Puoi eliminare i vecchi kernel in modo sicuro procedendo come segue:

# Install the yum-utils if they aren't installed
yum install yum-utils
# Cleanup old kernels and don't keep more than 2
package-cleanup --oldkernels --count=2

E se lo desideri, puoi limitarlo sempre procedendo nel seguente modo /etc/yum.conf

installonly_limit=2

Dopo aver visto la risposta di Joel Davis, sarei anche d'accordo con lui. Controlla per vedere cosa sta realmente usando tutto quello spazio.
sparticvs,

Se guardi i suoi lse sommi i file, sono circa 25 MB per kernel, principalmente in initramfs.
cjm,

Sì, ho avuto la sensazione che potrebbero essere i file initramfs. La pulizia sopra dovrebbe rimuovere anche quelli.
sparticvs,

@sparticvs, ho controllato -rw-r--r-- 1 root root 16191847 Sep 20 20:21 initramfs-2.6.32-358.18.1.el6.x86_64.img -rw-r--r-- 1 root root 16261655 Oct 21 15:06 initramfs-2.6.32-358.23.2.el6.x86_64.img -rw-r--r--. 1 root root 16187335 Sep 20 20:16 initramfs-2.6.32-358.el6.x86_64.imgusando molto spazio.
Tester,

@sparticvs, posso farlo adesso? Devo riavviare il sistema dopo averlo fatto? Devo eseguire il backup di tutti i miei dati?
Tester,

2

Le immagini del kernel sono in realtà molto piccole:

[root@ditirlns01 ~]# ls -lh /boot/vmlinuz-2.6.18-3*
-rw-r--r-- 1 root root 2.2M May  4  2012 /boot/vmlinuz-2.6.18-308.8.1.el5xen
-rw-r--r-- 1 root root 2.2M Jul 27 01:43 /boot/vmlinuz-2.6.18-348.16.1.el5xen
-rw-r--r-- 1 root root 2.2M Mar 22  2013 /boot/vmlinuz-2.6.18-348.4.1.el5xen

C'è di più nel pacchetto del kernel, ovviamente, ma questa è la parte su /bootcui si occupa.

Quindi, con una /bootpartizione da 100 MB , l'eliminazione di un kernel da 2-3 MB probabilmente non ti porterà molto lontano.

100 MB è in realtà di solito molto più di quanto le persone abbiano bisogno. du -shFarei abbastanza invocazioni in modo da poter vedere cosa sta occupando tutto quello spazio, perché non dovresti nemmeno avvicinarti all'utilizzo di 100 MB su quel punto di montaggio:

[root@ditirlns01 ~]# df -h /boot
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             99M   34M   60M  37% /boot

Che è con tre kernel installati:

[root@ditirlns01 ~]# rpm -qa kernel*
kernel-xen-2.6.18-348.16.1.el5
kernel-xen-2.6.18-348.4.1.el5
kernel-headers-2.6.18-348.16.1.el5
kernel-xen-2.6.18-308.8.1.el5
[root@ditirlns01 ~]#

Sono disposto a scommettere che qualcuno ha messo un file /bootcome mossa temporanea e ho dimenticato di rimuoverlo in seguito.


3
Ma ci sono i file initramfs, che sono molto più grandi dei file del kernel. Guardando @Don ls, usano 14 MB.

ah sì, lo vedo ora. Oh bene, lascerò la mia risposta e voterò i tuoi ragazzi
Bratchley,

0

Cosa dovrei fare?

se lo fai uname -a, segnalerai la versione attualmente in esecuzione.

Per il tuo post suppongo che sia la 2.6.32-358.23.2.el6.x86_64tua attuale versione in esecuzione, quindi sposta tutti i vecchi in qualche altra partizione dove c'è spazio sufficiente per risparmiare, fai qualcosa del tipo:

mkdir /root/oldkernels
mv   /boot/initramfs-2.6.32-358.18.1.el6.x86_64.img    /root/oldkernels

Il /boot/efi/EFI/centos/grub.cfgfile che vuoi controllare e sarà abbastanza facile leggere il codice del menu in esso, quello in alto sarà quello predefinito che vedrai all'avvio e cercherai anche quello di salvataggio ; probabilmente ne avrai elencati numerosi. È qui che puoi anche verificare quale versione stai effettivamente eseguendo.

Di solito tengo l'ultimo (in alto) e il salvataggio (in basso) dentro grub.cfg. Conoscere il reale grub.cfg(nel tuo caso perché vedo la cartella efi) è in /boot/efi/EFI/centos/grub.cfg. Non si modifica direttamente questo file, ma guarderei questo file per verificare i file da avviare perché è questo grub.cfg che viene utilizzato all'avvio.

Il salvataggio è in genere la versione del kernel che risale all'installazione del sistema, che può essere molte versioni precedenti a quella che potresti essere in esecuzione ora. Per un'opzione di salvataggio, che è probabilmente una buona idea a lungo termine, devi semplicemente indicarla su una versione affidabile e funzionante in modo che il sistema si avvierà almeno e puoi modificare i file sul disco nel caso in cui un nuovo kernel dovesse andare in rovina dopo l'installazione e non avviare o non funzionare. Fondamentalmente vuoi almeno 2 opzioni di avvio nel menu di grub, la tua ultima e poi qualche versione affidabile su cui ripiegare.

si modifica /etc/default/grub.cfge si modifica questo file; fai il menu come vuoi semplicemente commentando quelli che non vuoi con a #, quindi fai ungrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

KDUMP è il problema

E dai initrd-2.6.32-358.18.1.el6.x86_64kdump.imgfile che hanno kdump nel nome, sembra che tu abbia kdump abilitato. A meno che non lo usi, puoi disabilitare kdump che ti aiuterà a risparmiare spazio. E a meno che tu non stia eseguendo il debug di arresti anomali del sistema e simili, non hai bisogno dei *kdump.imgfile per poterli eliminare. Non uso kdump, non l'ho mai fatto, ma è abilitato per impostazione predefinita durante l'installazione e sospetto che per impostazione predefinita salvi nella cartella / boot; che se solo 100mb è male. Quindi o modifica kdump per scaricare altrove, o molto probabilmente non lo usi, quindi disabilita kdump.

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.