RHEL6 / बूट पर सुरक्षित रूप से स्थान खाली कैसे करें?


17

मैं yum updateआरएचईएल 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.

मेरे / बूट में निम्नलिखित है

# 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 .

समस्या यह है कि जब मुझे अपने ISP में यह गंभीर मिला, तो मैंने RHEL 6 के लिए उनकी डिफ़ॉल्ट छवि का उपयोग किया जो केवल 100MB / बूट के लिए आवंटित करता है स्पष्ट रूप से यह पर्याप्त नहीं है। मैं इस समस्या के आसपास कैसे पहुंच सकता हूं, क्या उपरोक्त फ़ाइलों में से किसी को हटाना सुरक्षित है, उनमें से कुछ एक से अधिक बार डिस्क पर लगती हैं? क्या मशीन को री-इमेजिंग के बिना विस्तार / बूट करने का कोई तरीका है?

जवाबों:


16

निम्न आदेश सभी कर्नेल संस्करण को हटा देगा , सिवाय उस एक को छोड़कर जो आप वर्तमान में चला रहे हैं:

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

और आगे बढ़ते हुए, प्रति के लिए ⁠7.4। यम और यम रिपॉजिटरी को कॉन्फ़िगर करना :

⁠Installonly_limit = मूल्य

... जहां मान एक पूर्णांक है जो अधिकतम संस्करणों की संख्या का प्रतिनिधित्व करता है जो कि इंस्टाल्लीपेक डायरेक्टिव में सूचीबद्ध किसी भी एकल पैकेज के लिए एक साथ स्थापित किया जा सकता है। इंस्टॉलऑनलीपीकेजीएस निर्देश के लिए चूक में कई अलग-अलग कर्नेल पैकेज शामिल हैं, इसलिए ध्यान रखें कि installonly_limit के मूल्य को बदलने से किसी भी कर्नेल पैकेज के स्थापित संस्करणों की अधिकतम संख्या प्रभावित होगी। /Etc/yum.conf में सूचीबद्ध डिफ़ॉल्ट मान installonly_limit = 3 है, और इस मान को कम करने के लिए अनुशंसित नहीं है, विशेष रूप से 2 से नीचे।


4
हो सकता है कि बैकअप लेने से पहले एक संस्करण छोड़ दें ...
ईज़ी इको

1
क्या आप यह भी कर सकते हैं: rpm -qa | grep -v `uname -r` | grep kernel- उन गुठली की सूची प्राप्त करने के लिए जिनका उपयोग नहीं किया जा रहा है?
पूर्वाह्न

@Pred सूचीबद्ध से बेहतर समाधान पैकेज-सफाई का उपयोग करना है। इस उत्तर को देखें कि कैसे: serverfault.com/a/562201/98791
एक कोडर

क्या वह आदेश वर्तमान कर्नेल को भी नहीं हटाता (क्योंकि uname -r 'के बजाय' से घिरा हुआ है)?
अलविदा

29

यहाँ मदहैटर की सिफारिश के अनुसार । मैं यहाँ उत्तरों के परिशिष्ट के रूप में अपना उत्तर यहाँ पोस्ट करूँगा ताकि इसका उपयोग यहाँ सुझाए गए उत्तरों के साथ किया जा सके।

निम्नलिखित वेबसाइट से लिया गया है

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

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

यह सभी पुराने कर्नेल को हटा देगा और केवल दो सबसे हाल की गुठली को 6.4 पर रखेगा जो शायद आप चाहते हैं क्योंकि हाल की गुठली में बग फिक्स हैं और यदि आप नए बूट करने में विफल रहते हैं तो आप पुराने कर्नेल को हमेशा विफल कर सकते हैं। उपरोक्त कमांड का मतलब है कि आपको rpm -e xyz पर जाने और कहने की ज़रूरत नहीं है कि xyz आपका विशिष्ट कर्नेल है क्योंकि यह स्वचालित रूप से सबसे नया रखता है।

ध्यान दें कि उपर्युक्त कमांड केवल मौजूदा संकुल को साफ करता है इसलिए अपने yum.conf को संपादित करना आवश्यक है यदि आप फिर से kul संकुल को जमा करना शुरू नहीं करना चाहते हैं।


सहमत, सबसे अच्छा समाधान, और package-cleanupआपको संकेत देता है कि ऐसा करने से पहले वह क्या
हटाएगा

8

एलेक्सस ने कहा कि कम से कम एक पुरानी गुठली को हटा दें।

फिर:

/etc/yum.confरखने के लिए कर्नेल संस्करणों की संख्या की सीमा को संपादित करें और निर्दिष्ट करें । यह डिफ़ॉल्ट रूप से 5 पर सेट है, लेकिन आपका सिस्टम केवल दो को संभालने में सक्षम प्रतीत होता है:

installonly_limit=2

अंत में, अजीब टेम्पलेट के बारे में VPS प्रदाता से शिकायत करें। /bootएक CentOS 6 स्थापना में डिफ़ॉल्ट रूप से 500MB है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.