พาร์ติชั่นการบูตเกือบเต็มใน CentOS


22

ฉันได้รับคำเตือนว่าพาร์ติชั่น / boot ของฉันใกล้จะเต็ม (85%) ฉันควรทำอย่างไร? ฉันสามารถลบเคอร์เนลสำรองหนึ่งในได้หรือไม่ ทำอย่างไรให้ปลอดภัย

พาร์ติชันของฉันตอนนี้

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

เคอร์เนลที่ฉันมี

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

ไดเรกทอรี / 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

เคอร์เนลที่ฉันใช้

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
เหตุใดจึงถูกทำเครื่องหมายว่าซ้ำกัน คำถามอื่น ๆ yumที่ไม่ได้เกี่ยวกับ ฉันไม่สงสัยเลยว่ามันซ้ำซ้อน แต่ไม่ใช่คำถามเฉพาะนั้น
Bratchley

คำตอบ:


47

ทำสิ่งต่อไปนี้เพื่อรักษา 2 เมล็ดสุดท้ายในระบบของคุณเพื่อรักษา / บูตให้สะอาด

1 - แก้ไข/etc/yum.confและตั้งค่าพารามิเตอร์ต่อไปนี้

installonly_limit=2

สิ่งนี้จะทำให้ผู้จัดการแพคเกจของคุณเก็บเพียง 2 เมล็ดสุดท้ายในระบบของคุณ (รวมถึงที่ทำงานอยู่)

2 - ติดตั้งyum-utils:

yum install yum-utils

3- ทำการล้างเคอร์เนล oldk:

package-cleanup --oldkernels --count=2

เสร็จสิ้น สิ่งนี้จะลบเมล็ดเก่าแบบดีและเก็บไว้ 2 อันสุดท้ายสำหรับการอัพเกรดครั้งต่อไป

สำหรับกรณีพิเศษที่คุณมีvmlinuz-0-rescue-*และinitramfs-0-rescue-*ไฟล์ที่ใช้พื้นที่ดิสก์มากเกินไปโปรดดูคำถามนี้ใน U&L:


ขอบคุณ nwildner! ฉันจะทำมันตอนนี้ได้ไหม? ฉันต้องรีบูทระบบหลังจากทำเช่นนั้นหรือไม่? ฉันจำเป็นต้องสำรองข้อมูลทั้งหมดของฉันหรือไม่
ทดสอบ

ใช่คุณสามารถ. การสำรองข้อมูล / boot ของคุณเพื่อความไม่ประมาทอาจเป็นสิ่งที่ควรทำ คุณไม่จำเป็นต้องรีบูตเนื่องจากขั้นตอนที่ 3 จะลบเคอร์เนลที่เก่าแก่ที่สุดยกเว้นว่าคุณกำลังใช้งานอยู่ในตอนนี้ ขั้นตอนแรกจะทำให้การกำหนดค่านี้เป็นแบบถาวร)

แม้ว่ามันจะไม่เพียงพอเสมอไป ฉันทำตามขั้นตอนเหล่านี้แล้วและพบว่าฉันมีเพียง 2 เมล็ด - ปัญหาสำหรับฉันคือไฟล์ "initramfs-0-rescue" 60MB ซึ่งอายุ 5 เดือน ลบแล้วและทุกอย่างก็โอเค
Codemonkey

1
เฮ้ @Codemonkey ฉันได้อัพเดตคำตอบของฉันพร้อมรายละเอียดเกี่ยวกับไฟล์ช่วยเหลือ ...

10

คุณสามารถลบเมล็ดเก่าได้อย่างปลอดภัยโดยทำดังต่อไปนี้:

# 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

และหากคุณต้องการคุณสามารถ จำกัด สิ่งนี้ได้เสมอโดยทำสิ่งต่อไปนี้ใน /etc/yum.conf

installonly_limit=2

หลังจากเห็นคำตอบของโจเอลเดวิสฉันก็จะเห็นด้วยกับเขา ตรวจสอบเพื่อดูสิ่งที่ใช้พื้นที่ทั้งหมดจริง ๆ
sparticvs

หากคุณดูที่ไฟล์ของเขาlsและทำการเพิ่มไฟล์มันจะอยู่ที่ 25MB ต่อเคอร์เนลซึ่งส่วนใหญ่เป็น initramfs
cjm

ใช่ฉันมีความรู้สึกว่ามันอาจเป็นไฟล์ initramfs การล้างข้อมูลข้างต้นควรลบสิ่งเหล่านี้ด้วย
sparticvs

@sparticvs ฉันตรวจสอบการ-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ใช้พื้นที่มาก
ทดสอบ

@sparticvs ฉันสามารถทำได้ตอนนี้หรือไม่ ฉันต้องรีบูทระบบหลังจากทำเช่นนั้นหรือไม่? ฉันจำเป็นต้องสำรองข้อมูลทั้งหมดของฉันหรือไม่
ทดสอบ

2

ภาพเคอร์เนลมีขนาดเล็กจริง ๆ :

[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

มีมากกว่าแพ็คเกจเคอร์เนลแน่นอน แต่นั่นคือส่วนที่/bootเป็นสิ่งที่คุณกังวล

ดังนั้นด้วย/bootพาร์ติชัน100MB การลบเคอร์เนล 2-3MB อาจไม่ทำให้คุณไปได้ไกลนัก

โดยปกติแล้ว 100MB จะเป็นมากกว่าที่ผู้คนต้องการ ฉันจะทำการdu -shเรียกใช้งานมากพอเพื่อให้คุณสามารถดูว่ามีอะไรเกิดขึ้นในพื้นที่นั้นเพราะคุณไม่ควรที่จะใช้ 100MB บนจุดเมานท์:

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

ซึ่งติดตั้งสามเมล็ด:

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

ฉันยินดีที่จะเดิมพันว่ามีคนใส่ไฟล์ไว้/bootเป็นการย้ายชั่วคราวและลืมย้ายออกในภายหลัง


3
แต่มีไฟล์ initramfs ซึ่งมีขนาดใหญ่กว่าไฟล์เคอร์เนล ดู @ ดอน ls พวกเขาใช้ 14MB

ใช่ฉันเห็นแล้ว โอ้ดีฉันจะออกคำตอบของฉันและเพียง upvote คนของคุณ '
Bratchley

0

ฉันควรทำอย่างไร?

หากคุณทำเช่นuname -aนั้นจะรายงานรุ่นที่คุณใช้อยู่ในปัจจุบัน

ตามการโพสต์ของคุณฉันถือว่าเป็น2.6.32-358.23.2.el6.x86_64เวอร์ชันปัจจุบันของคุณดังนั้นให้ย้ายไฟล์เก่าทั้งหมดไปยังพาร์ติชันอื่นที่มีพื้นที่เพียงพอที่จะบันทึกทำสิ่งต่อไปนี้

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

/boot/efi/EFI/centos/grub.cfgไฟล์ที่คุณต้องการตรวจสอบและมันจะเพียงพอที่ง่ายต่อการอ่านรหัสเมนูในนั้นหนึ่งด้านบนจะเป็นหนึ่งในการเริ่มต้นที่คุณเห็นเมื่อบูตและยังมองหากู้ภัยหนึ่ง; คุณอาจจะมีคนมากมายที่ระบุไว้ ที่นี่คุณสามารถตรวจสอบเวอร์ชันที่คุณใช้งานอยู่ได้

ฉันมักจะเพียงแค่ให้คนล่าสุด (ด้านบน) และกู้ภัย (ที่ด้านล่าง) grub.cfgใน รู้จริงgrub.cfg(ในกรณีของคุณเพราะผมเห็นโฟลเดอร์ EFI) /boot/efi/EFI/centos/grub.cfgที่อยู่ใน คุณไม่แก้ไขไฟล์นี้โดยตรง แต่ฉันจะดูไฟล์นี้เพื่อตรวจสอบไฟล์ที่ถูกบูทเพราะเป็น grub.cfg นี้ที่ใช้เมื่อบูท

การกู้คืนโดยทั่วไปคือรุ่นเคอร์เนลที่จะกลับไปที่การติดตั้งระบบซึ่งอาจมีหลายรุ่นก่อนหน้าสิ่งที่คุณอาจทำงานอยู่ตอนนี้ สำหรับตัวเลือกการช่วยเหลือซึ่งอาจเป็นความคิดที่ดีในระยะยาวคุณเพียงแค่ต้องชี้ไปที่เวอร์ชันที่เชื่อถือได้และใช้งานได้ดังนั้นระบบจะบูตอย่างน้อยที่สุดและคุณสามารถแก้ไขไฟล์บนดิสก์ได้หากเคอร์เนลตัวใหม่ หลังจากติดตั้งและไม่สามารถบูตหรือไม่ทำงาน โดยทั่วไปคุณต้องการตัวเลือกการบูตอย่างน้อย 2 ตัวในเมนูด้วงตัวล่าสุดของคุณแล้วรุ่นที่เชื่อถือได้บางส่วนจะถอยกลับ

คุณแก้ไข/etc/default/grub.cfgและแก้ไขไฟล์นี้; ทำเมนูตามที่คุณต้องการโดยการคอมเม้นต์เมนูที่คุณไม่ต้องการด้วย a #แล้วทำ agrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

KDUMP เป็นปัญหา

และจากinitrd-2.6.32-358.18.1.el6.x86_64kdump.imgไฟล์ที่มีkdumpในชื่อดูเหมือนว่าคุณได้เปิดใช้งาน kdump หากคุณไม่ใช้งานคุณสามารถปิดใช้งาน kdump ซึ่งจะช่วยประหยัดพื้นที่ และถ้าคุณไม่ได้แก้จุดบกพร่องของระบบและสิ่งที่คล้ายกันคุณไม่จำเป็นต้องใช้*kdump.imgไฟล์เพื่อให้คุณสามารถลบไฟล์เหล่านั้นได้ ฉันไม่ได้ใช้ kdump ไม่เคยมี แต่มันถูกเปิดใช้งานโดยค่าเริ่มต้นในระหว่างการติดตั้งและฉันสงสัยว่าโดยค่าเริ่มต้นจะบันทึกลงในโฟลเดอร์ / boot ของคุณ ซึ่งถ้าเพียง 100mb ไม่ดี ดังนั้นจึงควรปรับเปลี่ยน kdump เพื่อถ่ายโอนข้อมูลที่อื่นหรือคุณมักจะไม่ใช้เพื่อปิดใช้งาน kdump

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