Jak bezpiecznie zwolnić miejsce na RHEL6 / boot?

17

Próbuję zrobić yum updatena polu RHEL 6 i otrzymuję ten komunikat o błędzie

Transaction Check Error:
  installing package kernel-2.6.32-279.9.1.el6.x86_64 needs 10MB on the /boot filesystem
  installing package grub-1:0.97-77.el6.x86_64 needs 10MB on the /boot filesystem

Error Summary
-------------
Disk Requirements:
  At least 10MB more space needed on the /boot filesystem.

Mój / boot ma następujące elementy

# ls -lah /boot
total 74M
dr-xr-xr-x.  5 root root 2.0K Jun 10 08:05 .
drwxr-xr-x. 23 root root 4.0K Aug 27 03:08 ..
-rw-r--r--   1 root root  99K Apr 26 12:53 config-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root  99K Feb 10  2012 config-2.6.32-220.7.1.el6.x86_64
-rw-r--r--.  1 root root  99K Nov  9  2011 config-2.6.32-220.el6.x86_64
drwxr-xr-x.  3 root root 1.0K Mar 29  2012 efi
drwxr-xr-x.  2 root root 1.0K Jun 10 07:53 grub
-rw-r--r--   1 root root  15M Jun 10 07:53 initramfs-2.6.32-220.17.1.el6.x86_64.img
-rw-r--r--   1 root root  15M Mar 29  2012 initramfs-2.6.32-220.7.1.el6.x86_64.img
-rw-r--r--.  1 root root  15M Mar 29  2012 initramfs-2.6.32-220.el6.x86_64.img
-rw-------   1 root root 3.4M Jun 10 08:06 initrd-2.6.32-220.17.1.el6.x86_64kdump.img
-rw-------   1 root root 3.5M Jun 10 07:53 initrd-2.6.32-220.7.1.el6.x86_64kdump.img
-rw-------   1 root root 3.4M Mar 29  2012 initrd-2.6.32-220.el6.x86_64kdump.img
drwx------.  2 root root  12K Mar 29  2012 lost+found
-rw-r--r--   1 root root 168K Apr 26 12:55 symvers-2.6.32-220.17.1.el6.x86_64.gz
-rw-r--r--   1 root root 168K Feb 10  2012 symvers-2.6.32-220.7.1.el6.x86_64.gz
-rw-r--r--.  1 root root 168K Nov  9  2011 symvers-2.6.32-220.el6.x86_64.gz
-rw-r--r--   1 root root 2.3M Apr 26 12:53 System.map-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root 2.3M Feb 10  2012 System.map-2.6.32-220.7.1.el6.x86_64
-rw-r--r--.  1 root root 2.3M Nov  9  2011 System.map-2.6.32-220.el6.x86_64
-rwxr-xr-x   1 root root 3.8M Apr 26 12:53 vmlinuz-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root  171 Apr 26 12:53 .vmlinuz-2.6.32-220.17.1.el6.x86_64.hmac
-rwxr-xr-x   1 root root 3.8M Feb 10  2012 vmlinuz-2.6.32-220.7.1.el6.x86_64
-rw-r--r--   1 root root  170 Feb 10  2012 .vmlinuz-2.6.32-220.7.1.el6.x86_64.hmac
-rwxr-xr-x.  1 root root 3.8M Nov  9  2011 vmlinuz-2.6.32-220.el6.x86_64
-rw-r--r--.  1 root root  166 Nov  9  2011 .vmlinuz-2.6.32-220.el6.x86_64.hmac

oto użycie dysku podczas rozruchu

# du -h
13K ./lost+found
282K    ./grub
247K    ./efi/EFI/redhat
249K    ./efi/EFI
251K    ./efi
75M .

Problem polega na tym, że kiedy dostałem tego poważniejszego u mojego dostawcy usług internetowych, użyłem ich domyślnego obrazu dla RHEL 6, który przydziela tylko 100 MB na / boot wyraźnie, że to nie wystarczy. Jak obejść ten problem, czy bezpiecznie jest usunąć którykolwiek z powyższych plików, niektóre z nich wydają się znajdować na dysku więcej niż jeden raz? Czy istnieje jakiś sposób rozszerzenia / rozruchu bez ponownego obrazowania maszyny?

ams
źródło

Odpowiedzi:

16

Następujące polecenie usunie WSZYSTKIE wersje jądra, z wyjątkiem tej, którą aktualnie uruchomisz:

sudo yum remove `rpm -q kernel | grep -v 'uname -r'`

i do przodu, zgodnie z ⁠ 7.4. Konfigurowanie repozytoriów Yum i Yum :

⁠Installonly_limit = wartość

… Gdzie wartość jest liczbą całkowitą reprezentującą maksymalną liczbę wersji, które można zainstalować jednocześnie dla każdego pojedynczego pakietu wymienionego w dyrektywie installonlypkgs. Domyślne ustawienia dyrektywy installonlypkgs obejmują kilka różnych pakietów jądra, więc należy pamiętać, że zmiana wartości installonly_limit wpłynie również na maksymalną liczbę zainstalowanych wersji dowolnego pojedynczego pakietu jądra. Domyślną wartością wymienioną w /etc/yum.conf jest installonly_limit = 3 i nie zaleca się zmniejszania tej wartości, szczególnie poniżej 2.

Alexus
źródło
4
Może zostaw jedną wersję wcześniej, żeby mieć kopię zapasową ...
EasyEcho,
1
Czy możesz to również zrobić: rpm -qa | grep -v `uname -r` | grep kernel- uzyskać listę nieużywanych jąder?
Pred
Lepszym rozwiązaniem niż wymienione na @Pred jest użycie czyszczenia pakietów. Zobacz tę odpowiedź, jak: serverfault.com/a/562201/98791
programista
Czy to polecenie nie usuwa również bieżącego jądra (ponieważ uname -r jest otoczony przez „zamiast”)?
pa
29

Zgodnie z zaleceniem MadHatter tutaj . Zamieszczę tutaj swoją odpowiedź jako uzupełnienie tutaj, aby można ją było wykorzystać w połączeniu z sugerowanymi tutaj odpowiedziami.

Zaczerpnięte z następującej strony internetowej

## Install yum utils ##
yum install yum-utils

## Package-cleanup set count as how many old kernels you want left ##
package-cleanup --oldkernels --count=2

Spowoduje to usunięcie wszystkich starszych jąder i zachowanie tylko dwóch najnowszych jąder w centos 6.4, co jest prawdopodobnie tym, czego chcesz, ponieważ najnowsze jądra zawierają poprawki błędów i zawsze możesz przełączyć się na starsze jądra, jeśli nowe nie uruchomią się. Powyższe polecenie oznacza, że ​​nie musisz iść i mówić rpm -e xyz, gdzie xyz jest twoim konkretnym jądrem, ponieważ automatycznie zachowuje najnowsze.

Zauważ, że powyższe polecenie czyści tylko istniejące pakiety, więc edycja pliku yum.conf jest konieczna, jeśli nie chcesz ponownie gromadzić pakietów jądra.

Jason Zhu
źródło
Uzgodnione, najlepsze rozwiązanie i package-cleanuppodpowiada o tym, co zostanie usunięte, zanim to zrobisz
sMyles 28.09.16
8

Usuń co najmniej jedno ze starych jąder, jak powiedział Alexus.

Następnie:

Edytuj /etc/yum.confi określ limit liczby wersji jądra do zachowania. Domyślnie jest ustawiony na 5, ale wydaje się, że twój system jest w stanie obsłużyć tylko dwa:

installonly_limit=2

Na koniec złóż skargę dostawcy usług VPS na dziwny szablon. /bootma domyślnie 500 MB w instalacji CentOS 6.

Michael Hampton
źródło