วิธีเพิ่มพื้นที่ว่างบน RHEL6 / boot อย่างปลอดภัย?


17

ฉันกำลังพยายามทำyum updateในกล่อง RHEL 6 และฉันได้รับข้อความแสดงข้อผิดพลาดนี้

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.

My / boot มีดังต่อไปนี้

# 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

นี่คือการใช้ดิสก์ในการบูต

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

ปัญหาคือเมื่อฉันได้รับ Severer นี้ที่ ISP ของฉันฉันใช้อิมเมจเริ่มต้นสำหรับ RHEL 6 ซึ่งจัดสรรเพียง 100MB สำหรับ / boot อย่างชัดเจนนี่ไม่เพียงพอ ฉันจะแก้ไขปัญหานี้ได้อย่างไรมันปลอดภัยที่จะลบไฟล์ใด ๆ ข้างต้นซึ่งบางไฟล์ดูเหมือนว่าจะอยู่ในดิสก์มากกว่าหนึ่งครั้งหรือไม่ มีวิธีการขยาย / บูตโดยไม่ต้องถ่ายภาพเครื่องใหม่หรือไม่?

คำตอบ:


16

คำสั่งต่อไปนี้จะลบเคอร์เนลทั้งหมดยกเว้นเวอร์ชั่นที่คุณใช้งานอยู่:

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

และสำหรับการก้าวไปข้างหน้าต่อ⁠7.4 การกำหนดค่าที่เก็บ Yum และ Yum :

⁠installonly_limit = ค่า

…โดยที่ value เป็นเลขจำนวนเต็มที่แทนจำนวนเวอร์ชันสูงสุดที่สามารถติดตั้งพร้อมกันสำหรับแพ็กเกจเดี่ยวใด ๆ ที่ระบุไว้ในคำสั่ง installonlypkgs ค่าเริ่มต้นสำหรับคำสั่ง installonlypkgs มีแพ็คเกจเคอร์เนลที่แตกต่างกันดังนั้นโปรดทราบว่าการเปลี่ยนค่าของ installonly_limit จะส่งผลต่อจำนวนสูงสุดของเวอร์ชันเคอร์เนลแพ็คเกจเดียว ค่าเริ่มต้นที่ระบุไว้ใน /etc/yum.conf คือ installonly_limit = 3 และไม่แนะนำให้ลดค่านี้โดยเฉพาะต่ำกว่า 2


4
อาจปล่อยรุ่นหนึ่งไว้ก่อนเพื่อสำรองข้อมูล ...
EasyEcho

1
คุณสามารถทำสิ่งนี้rpm -qa | grep -v `uname -r` | grep kernel- เพื่อรับรายชื่อเมล็ดที่ไม่ได้ใช้งานได้หรือไม่
Pred

ทางออกที่ดีกว่า @Pred แสดงอยู่คือการใช้แพคเกจการล้าง ดูคำตอบสำหรับวิธีการนี้: serverfault.com/a/562201/98791
coder

คำสั่งนั้นไม่ได้ลบเคอร์เนลปัจจุบัน (เพราะ uname -r ถูกล้อมรอบด้วย 'แทนที่จะเป็น `)
ลาก่อน

29

ตามคำแนะนำของ MadHatter ที่นี่ ฉันจะโพสต์คำตอบของฉันที่นี่เป็นภาคผนวกของคำตอบที่นี่เพื่อให้สามารถใช้ร่วมกับคำตอบที่แนะนำที่นี่

นำมาจากเว็บไซต์ต่อไปนี้

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

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

วิธีนี้จะลบเมล็ดเก่าทั้งหมดและเก็บเฉพาะเมล็ดล่าสุดสองรายการใน CentOS 6.4 ซึ่งอาจเป็นสิ่งที่คุณต้องการเนื่องจากเมล็ดล่าสุดมีการแก้ไขข้อบกพร่องและคุณสามารถล้มเหลวไปยังเมล็ดเก่าได้ถ้าเมล็ดใหม่ไม่สามารถบูตได้ คำสั่งดังกล่าวหมายความว่าคุณไม่ต้องไปและพูด rpm -e xyz โดยที่ xyz เป็นเคอร์เนลเฉพาะของคุณเนื่องจากมันจะเก็บสิ่งที่ใหม่ล่าสุดโดยอัตโนมัติ

โปรดทราบว่าคำสั่งด้านบนทำความสะอาดแพ็กเกจที่มีอยู่เท่านั้นดังนั้นการแก้ไข yum.conf ของคุณเป็นสิ่งจำเป็นหากคุณไม่ต้องการเริ่มสะสมแพ็คเกจเคอร์เนลอีกครั้ง


เห็นทางออกที่ดีที่สุดและpackage-cleanupแจ้งให้คุณเป็นสิ่งที่จะลบก่อนที่จะทำเช่นนั้น
sMyles

8

ลบอย่างน้อยหนึ่งในเมล็ดเก่าเช่น alexus กล่าว

แล้ว:

แก้ไข/etc/yum.confและระบุขีด จำกัด ของจำนวนรุ่นเคอร์เนลที่จะเก็บ มันถูกตั้งไว้ที่ 5 โดยค่าเริ่มต้น แต่ระบบของคุณดูเหมือนจะสามารถจัดการได้เพียงสองตัวเท่านั้น:

installonly_limit=2

ในที่สุดบ่นกับผู้ให้บริการ VPS เกี่ยวกับเทมเพลตแปลก ๆ /bootคือ 500MB โดยค่าเริ่มต้นในการติดตั้ง CentOS 6

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.