phân vùng khởi động đã gần đầy trong CentOS


22

Tôi nhận được một cảnh báo về phân vùng / boot của tôi đã gần đầy (85%). Tôi nên làm gì? Tôi có thể loại bỏ một trong các kernel sao lưu không? Làm thế nào để làm điều đó một cách an toàn?

Phân vùng của tôi ngay bây giờ

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

Hạt nhân tôi có

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

Thư mục / 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

Hạt nhân tôi đang sử dụng

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
Tại sao điều này được đánh dấu là một bản sao? Các câu hỏi khác thậm chí không về yum. Tôi không nghi ngờ nó là một bản sao, chỉ là không có câu hỏi cụ thể.
Bratchley

Câu trả lời:


47

Thực hiện như sau để chỉ giữ 2 hạt nhân cuối cùng trên hệ thống của bạn, để giữ / khởi động sạch

1 - Chỉnh sửa /etc/yum.confvà đặt tham số sau

installonly_limit=2

Điều này sẽ làm cho trình quản lý gói của bạn chỉ giữ 2 hạt nhân cuối cùng trên hệ thống của bạn (bao gồm cả hạt nhân đang chạy)

2 - Cài đặt yum-utils:

yum install yum-utils

3- Thực hiện dọn dẹp kernel cũ:

package-cleanup --oldkernels --count=2

Làm xong. Điều này sẽ xóa một cách tốt đẹp các hạt nhân cũ, và, chỉ giữ lại 2 trong số chúng cho các bản nâng cấp tiếp theo.

Đối với các trường hợp đặc biệt khi bạn có vmlinuz-0-rescue-*initramfs-0-rescue-*các tệp sử dụng quá nhiều dung lượng đĩa, vui lòng xem câu hỏi này trên U & L:


Cảm ơn nwildner! Tôi có thể làm điều đó ngay bây giờ không? Tôi có cần khởi động lại hệ thống sau khi làm điều đó không? Tôi có cần sao lưu tất cả dữ liệu của mình không?
kiểm tra

Có bạn có thể. Một bản sao lưu / boot của bạn, chỉ để đề phòng có thể là một việc nên làm. Bạn sẽ không cần phải khởi động lại, vì bước 3 sẽ xóa kernel cũ nhất, trừ khi bạn đang chạy nó ngay bây giờ. Bước đầu tiên, sẽ làm cho cấu hình này vĩnh viễn;)

Mặc dù điều này không phải lúc nào cũng đủ. Tôi đã làm theo các bước này và thấy rằng tôi chỉ có 2 hạt nhân - vấn đề đối với tôi là tệp "initramfs-0-cứu" 60 MB đã được 5 tháng tuổi. Đã xóa nó và mọi thứ đều ổn.
Codemonkey

1
Này @Codemonkey. Tôi đã cập nhật câu trả lời của mình với các chi tiết về các tệp cứu hộ ...

10

Bạn có thể xóa hạt nhân cũ một cách an toàn bằng cách làm như sau:

# 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

Và nếu bạn muốn, bạn có thể hạn chế điều này luôn bằng cách làm như sau trong /etc/yum.conf

installonly_limit=2

Sau khi thấy câu trả lời của Joel Davis, tôi cũng sẽ đồng ý với anh ta. Kiểm tra để xem những gì thực sự đang sử dụng tất cả không gian đó.
sparticvs

Nếu bạn nhìn vào lstệp của anh ấy và thêm các tệp, thì khoảng 25 MB cho mỗi kernel, chủ yếu là trong initramfs.
cjm

Phải, tôi có cảm giác nó có thể là các tập tin initramfs. Việc dọn dẹp ở trên cũng nên loại bỏ chúng.
sparticvs

@sparticvs, tôi đã kiểm tra -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.imgsử dụng rất nhiều dung lượng.
kiểm tra

@sparticvs, tôi có thể làm điều đó ngay bây giờ không? Tôi có cần khởi động lại hệ thống sau khi làm điều đó không? Tôi có cần sao lưu tất cả dữ liệu của mình không?
kiểm tra

2

Hình ảnh hạt nhân thực sự rất nhỏ:

[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

Rõ ràng có nhiều hơn với gói kernel, nhưng đó là phần /bootquan tâm của bạn.

Vì vậy, với /bootphân vùng 100 MB , việc xóa kernel 2-3 MB có thể sẽ không giúp bạn tiến xa.

100MB thực sự thường là nhiều hơn mọi người cần. Tôi sẽ thực hiện đủ các du -shyêu cầu để bạn có thể thấy những gì chiếm hết không gian đó, bởi vì bạn thậm chí không nên sử dụng 100MB trên điểm gắn kết đó:

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

Đó là với ba hạt nhân được cài đặt:

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

Tôi sẵn sàng cá cược rằng ai đó đã đưa một tập tin vào /bootnhư một động thái tạm thời và quên không chuyển nó trở lại sau này.


3
Nhưng có các tệp initramfs, lớn hơn các tệp kernel. Nhìn vào @Don ls, họ sử dụng 14MB.

ah vâng tôi đang thấy điều đó bây giờ Ồ tốt, tôi sẽ để lại câu trả lời của tôi và chỉ nêu lên những người của bạn '
Bratchley

0

Tôi nên làm gì?

nếu bạn làm điều uname -ađó sẽ báo cáo phiên bản hiện đang chạy của bạn .

Theo bài đăng của bạn, tôi cho rằng đó là 2.6.32-358.23.2.el6.x86_64phiên bản đang chạy hiện tại của bạn, vì vậy hãy chuyển tất cả các phiên bản cũ sang một số phân vùng khác, nơi có đủ không gian để lưu, hãy làm một cái gì đó như:

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

Các /boot/efi/EFI/centos/grub.cfgtập tin bạn muốn kiểm tra và nó sẽ được dễ dàng, đủ để đọc mã đơn trong nó, phía trên cùng ai sẽ là người mặc định mà bạn nhìn thấy khi khởi động và cũng có thể tìm kiếm cứu hộ một; bạn có thể sẽ có rất nhiều người được liệt kê. Tại đây bạn cũng có thể xác minh phiên bản nào bạn đang thực sự chạy.

Tôi thường chỉ giữ cái mới nhất (ở trên cùng) và cứu hộ (ở dưới cùng) grub.cfg. Biết thực tế grub.cfg(trong trường hợp của bạn vì tôi thấy thư mục efi) đang ở /boot/efi/EFI/centos/grub.cfg. Bạn không chỉnh sửa tệp này trực tiếp, nhưng tôi sẽ xem tệp này để xác minh các tệp đang được khởi động vì đây là grub.cfg được sử dụng khi khởi động.

Việc giải cứu thường là phiên bản kernel quay trở lại cài đặt hệ thống, có thể là nhiều phiên bản trước những gì bạn có thể đang chạy bây giờ. Đối với một tùy chọn cứu hộ, có lẽ là một ý tưởng tốt trong thời gian dài, bạn chỉ cần chỉ ra nó là một phiên bản đáng tin cậy và hoạt động để hệ thống ít nhất sẽ khởi động và bạn có thể chỉnh sửa các tệp trên đĩa nếu hạt nhân mới hoạt động. Sau khi cài đặt và không khởi động hoặc không hoạt động. Về cơ bản, bạn muốn có ít nhất 2 tùy chọn khởi động trong menu grub, phiên bản mới nhất của bạn và sau đó một số phiên bản đáng tin cậy để quay trở lại.

bạn chỉnh sửa /etc/default/grub.cfgvà sửa đổi tập tin này; làm cho menu theo cách bạn muốn đơn giản bằng cách bình luận những thứ bạn không muốn với a #, sau đó làm mộtgrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

KDUMP là vấn đề

Và từ các initrd-2.6.32-358.18.1.el6.x86_64kdump.imgtệp có kdump trong tên, có vẻ như bạn đã bật kdump. Trừ khi bạn sử dụng nó, bạn có thể vô hiệu hóa kdump sẽ giúp tiết kiệm không gian. Và trừ khi bạn đang gỡ lỗi hệ thống và tương tự, bạn không cần các *kdump.imgtệp để bạn có thể xóa chúng. Tôi không sử dụng kdump, không bao giờ có, nhưng nó được bật theo mặc định trong khi cài đặt và tôi nghi ngờ mặc định lưu vào thư mục / boot của bạn; mà nếu chỉ 100mb là xấu. Vì vậy, hoặc sửa đổi kdump để đổ ở nơi khác, hoặc rất có thể bạn không sử dụng nó để vô hiệu hóa kdump.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.