partycja rozruchowa jest prawie pełna w CentOS

23

Dostałem ostrzeżenie, że moja partycja / boot jest prawie pełna (85%). Co powinienem zrobić? Czy mogę usunąć jedno z kopii zapasowych jądra? Jak to zrobić bezpiecznie?

Moja partycja teraz

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

Jądro mam

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

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

Jądro, którego używam

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
Próbnik
źródło
4
Dlaczego oznaczono to jako duplikat? Drugie pytanie nawet nie dotyczy yum. Nie wątpię, że to duplikat, po prostu nie tego konkretnego pytania.
Bratchley,

Odpowiedzi:

48

Wykonaj następujące czynności, aby zachować tylko 2 ostatnie jądra w systemie, aby utrzymać / boot w czystości

1 - Edytuj /etc/yum.confi ustaw następujący parametr

installonly_limit=2

To sprawi, że Twój menedżer pakietów zachowa tylko 2 ostatnie jądra w twoim systemie (włączając to, które jest uruchomione)

2 - Zainstaluj yum-utils:

yum install yum-utils

3- Wykonaj czyszczenie oldkernela:

package-cleanup --oldkernels --count=2

Gotowy. Spowoduje to dobre wymazanie starych jąder i zatrzymanie tylko dwóch z nich na następne aktualizacje.

W szczególnych przypadkach, w których masz vmlinuz-0-rescue-*i initramfs-0-rescue-*pliki zajmują zbyt dużo miejsca na dysku, spójrz na to pytanie w U&L:


źródło
Dzięki nwildner! Czy mogę to teraz zrobić? Czy po wykonaniu tej czynności muszę ponownie uruchomić system? Czy muszę wykonać kopię zapasową wszystkich moich danych?
Tester
Tak, możesz. Kopia zapasowa twojego / boot, dla ostrożności może być dobrym rozwiązaniem. Nie będziesz musiał ponownie uruchamiać komputera, ponieważ krok 3 usunie najstarsze jądro, chyba że uruchomisz je teraz. Pierwszy krok sprawi, że ta konfiguracja będzie trwała;)
Chociaż to nie zawsze wystarcza. Postępowałem zgodnie z tymi krokami i okazało się, że mam już tylko 2 jądra - problemem dla mnie był 60 MB plik „initramfs-0-rescue”, który miał 5 miesięcy. Usunąłem to i wszystko było w porządku.
Codemonkey
1
Cześć @Codemonkey. Zaktualizowałem swoją odpowiedź szczegółowymi informacjami na temat plików ratunkowych ...
10

Możesz bezpiecznie usunąć stare jądra, wykonując następujące czynności:

# 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

Jeśli chcesz, możesz to zawsze ograniczyć, wykonując następujące czynności /etc/yum.conf

installonly_limit=2
sparticvs
źródło
Po zobaczeniu odpowiedzi Joela Davisa również się z nim zgodzę. Sprawdź, co tak naprawdę zajmuje całą tę przestrzeń.
sparticvs,
Jeśli spojrzysz na niego lsi dodasz pliki, będzie to około 25 MB na jądro, głównie w initramfs.
cjm
Tak, miałem wrażenie, że mogą to być pliki initramfs. Powyższe czyszczenie powinno również je usunąć.
sparticvs,
@sparticvs, sprawdziłem, że -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.imgużywam dużo miejsca.
Tester
@sparticvs, czy mogę to zrobić teraz? Czy po wykonaniu tej czynności muszę ponownie uruchomić system? Czy muszę wykonać kopię zapasową wszystkich moich danych?
Tester
2

Obrazy jądra są w rzeczywistości bardzo małe:

[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

Oczywiście pakiet jądra zawiera coś więcej, ale właśnie na tym /bootwłaśnie zależy ci.

Zatem przy /bootpartycji 100 MB usunięcie jądra 2-3 MB prawdopodobnie nie zajdzie daleko.

100 MB to zwykle znacznie więcej niż ludzie potrzebują. Zrobiłbym wystarczająco dużo du -shwywołań, abyś mógł zobaczyć, co zajmuje całą tę przestrzeń, ponieważ nie powinieneś być nawet bliski korzystania ze 100 MB w tym punkcie montowania:

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

Który jest przy trzech zainstalowanych jądrach:

[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 ~]#

Jestem skłonny postawić zakład, że ktoś umieścił plik /bootjako tymczasowy ruch i zapomniał go później wycofać.

Bratchley
źródło
3
Ale istnieją pliki initramfs, które są znacznie większe niż pliki jądra. Patrząc na @Don, używają 14 MB.
ah tak, teraz to widzę. No cóż, zostawię moją odpowiedź i po prostu głosuję za waszymi chłopakami
Bratchley,
0

Co powinienem zrobić?

jeśli to zrobisz uname -a, zgłosi twoją aktualnie działającą wersję.

Zgodnie z Twoim postem zakładam, że jest 2.6.32-358.23.2.el6.x86_64to twoja bieżąca wersja, więc przenieś wszystkie stare na inną partycję, na której jest wystarczająca ilość miejsca do zapisania, zrób coś takiego:

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

/boot/efi/EFI/centos/grub.cfgPlik, który chcesz sprawdzić, a będzie to dość łatwe do odczytania kodu menu w nim, ten wierzchołek będzie jeden domyślny widać podczas uruchamiania, a także spojrzeć na ratunek jednym; prawdopodobnie będzie ich wiele na liście. To tutaj możesz również sprawdzić, którą wersję faktycznie używasz.

Zazwyczaj trzymam najnowszą (na górze) i akcję ratunkową (na dole) w grub.cfg. Wiem, że prawdziwe grub.cfg(w twoim przypadku, bo widzę folder efi) jest w /boot/efi/EFI/centos/grub.cfg. Nie edytujesz tego pliku bezpośrednio, ale chciałbym spojrzeć na ten plik, aby sprawdzić, czy pliki są uruchamiane, ponieważ to ten plik grub.cfg jest używany podczas uruchamiania.

Ratunkowy jest zazwyczaj wersja jądra Wracając do instalacji systemu, który może być wiele wcześniejsze wersje tego, co może być teraz uruchomione. W przypadku opcji ratunkowej, która prawdopodobnie jest dobrym pomysłem na dłuższą metę, wystarczy wskazać na niezawodną i działającą wersję, aby system przynajmniej się uruchomił i można edytować pliki na dysku, jeśli nowe jądro pójdzie w górę po instalacji i nie uruchamia się lub nie działa. Zasadniczo chcesz mieć co najmniej 2 opcje rozruchu w menu GRUB, najnowszą, a następnie pewną niezawodną wersję, na której można polegać.

edytujesz /etc/default/grub.cfgi modyfikujesz ten plik; ustaw menu tak, jak chcesz, po prostu komentując te, których nie chcesz #, a następnie zróbgrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Problemem jest KDUMP

A z initrd-2.6.32-358.18.1.el6.x86_64kdump.imgplików z nazwą kdump wygląda na to, że masz włączony kdump. O ile go nie użyjesz, możesz wyłączyć kdump, co pomoże zaoszczędzić miejsce. I chyba że debugujesz awarie systemu itp., Nie potrzebujesz *kdump.imgplików, aby je usunąć. Nie używam kdumpa, nigdy go nie mam, ale domyślnie jest włączony podczas instalacji i domyślam się, że zapisuje się w folderze / boot; co jeśli tylko 100mb jest złe. Więc albo zmodyfikuj kdump, aby zrzucił go w innym miejscu, albo najprawdopodobniej go nie używasz, więc wyłącz kdump.

Ron
źródło