partisi boot hampir penuh di CentOS

23

Saya mendapat peringatan bahwa partisi / boot saya hampir penuh (85%). Apa yang harus saya lakukan? Bisakah saya menghapus salah satu kernel cadangan? Bagaimana cara melakukannya dengan aman?

Partisi saya sekarang

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

Kernel yang saya miliki

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

Direktori / 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

Kernel yang saya gunakan

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
Penguji
sumber
4
Mengapa ini ditandai sebagai duplikat? Pertanyaan lain bahkan bukan tentang yum. Saya tidak ragu itu adalah duplikat, hanya saja bukan dari pertanyaan khusus itu.
Bratchley

Jawaban:

48

Lakukan hal berikut untuk menjaga hanya 2 kernel terakhir di sistem Anda, untuk menjaga / boot bersih

1 - Edit /etc/yum.confdan atur parameter berikut

installonly_limit=2

Ini akan membuat manajer paket Anda hanya menyimpan 2 kernel terakhir di sistem Anda (termasuk yang berjalan)

2 - Pasang yum-utils:

yum install yum-utils

3- Lakukan pembersihan kernel lama:

package-cleanup --oldkernels --count=2

Selesai Ini akan menghapus dengan baik kernel lama, dan, simpan saja 2 yang terakhir untuk upgrade selanjutnya.

Untuk kasus khusus di mana Anda memiliki vmlinuz-0-rescue-*dan initramfs-0-rescue-*file menggunakan terlalu banyak ruang disk, silakan lihat pertanyaan ini di U&L:


sumber
Terima kasih nwildner! Bisakah saya melakukannya sekarang? Apakah saya perlu me-reboot sistem setelah melakukan itu? Apakah saya perlu membuat cadangan semua data saya?
Tester
Ya kamu bisa. Cadangan / boot Anda, hanya untuk berjaga-jaga bisa menjadi hal yang baik untuk dilakukan. Anda tidak perlu melakukan reboot, karena langkah 3 akan menghapus kernel tertua, kecuali jika Anda menjalankannya sekarang. Langkah pertama, akan membuat konfigurasi ini permanen;)
Padahal ini tidak selalu cukup. Saya mengikuti langkah-langkah ini dan mendapati bahwa saya hanya memiliki 2 kernel - masalah bagi saya adalah file "initramfs-0-rescue" 60MB yang berumur 5 bulan. Menghapusnya dan semuanya baik-baik saja.
Codemonkey
1
Hai @ Codemonkey. Saya telah memperbarui jawaban saya dengan perincian tentang file penyelamatan ...
10

Anda dapat menghapus kernel lama dengan aman dengan melakukan hal berikut:

# 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

Dan jika Anda ingin, Anda dapat membatasi ini selalu dengan melakukan hal berikut di /etc/yum.conf

installonly_limit=2
sparticvs
sumber
Setelah melihat jawaban Joel Davis, saya juga setuju dengannya. Periksa untuk melihat apa yang sebenarnya menggunakan semua ruang itu.
sparticvs
Jika Anda melihat lsfile- nya dan menambahkan file, ini sekitar 25MB per kernel, kebanyakan di initramfs.
cjm
Ya, saya merasa mungkin file initramfs. Pembersihan di atas juga harus menghapusnya.
sparticvs
@sparticvs, saya memeriksa -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.imgmenggunakan banyak ruang.
Tester
@sparticvs, dapatkah saya melakukannya sekarang? Apakah saya perlu me-reboot sistem setelah melakukan itu? Apakah saya perlu membuat cadangan semua data saya?
Tester
2

Gambar kernel sebenarnya sangat kecil:

[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

Ada lebih banyak pada paket kernel, tentu saja, tetapi itulah bagian yang menjadi /bootperhatian Anda.

Jadi dengan /bootpartisi 100MB , menghapus kernel 2-3MB mungkin tidak akan membuat Anda terlalu jauh.

100MB sebenarnya biasanya lebih dari yang dibutuhkan orang. Saya akan melakukan cukup banyak du -shdoa sehingga Anda dapat melihat apa yang menghabiskan semua ruang itu, karena Anda bahkan seharusnya tidak mendekati menggunakan 100MB pada titik mount itu:

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

Yaitu dengan tiga kernel terpasang:

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

Saya ingin bertaruh bahwa seseorang meletakkan file /bootsebagai langkah sementara dan lupa untuk memindahkannya kembali nanti.

Bratchley
sumber
3
Tetapi ada file initramfs, yang jauh lebih besar dari file kernel. Melihat @ Don ls, mereka menggunakan 14MB.
ah ya aku melihat itu sekarang. Oh well, saya akan meninggalkan jawaban saya dan hanya
mendukung suara
0

Apa yang harus saya lakukan?

jika Anda melakukan uname -aitu akan melaporkan versi yang sedang berjalan.

Per posting Anda, saya berasumsi bahwa ini 2.6.32-358.23.2.el6.x86_64adalah versi Anda saat ini, jadi pindahkan semua yang lama ke beberapa partisi lain di mana ada ruang yang cukup untuk menyimpan, lakukan sesuatu seperti:

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

The /boot/efi/EFI/centos/grub.cfgfile yang ingin memeriksa dan itu akan cukup mudah untuk membaca kode menu di dalamnya, satu atas akan menjadi default Anda lihat ketika booting dan juga mencari penyelamatan satu; Anda mungkin akan memiliki banyak yang terdaftar. Di sini Anda juga dapat memverifikasi versi apa yang sebenarnya Anda jalankan.

Saya biasanya hanya menyimpan yang terbaru (di atas) dan penyelamatan (di bawah) grub.cfg. Ketahuilah yang sebenarnya grub.cfg(dalam kasus Anda karena saya melihat folder efi) dalam /boot/efi/EFI/centos/grub.cfg. Anda tidak mengedit file ini secara langsung, tetapi saya akan melihat file ini untuk memverifikasi file yang sedang di-boot karena ini adalah grub.cfg yang digunakan saat booting.

The penyelamatan biasanya versi kernel akan kembali ke sistem instalasi, yang dapat banyak versi sebelum apa yang Anda dapat berjalan sekarang. Untuk opsi penyelamatan, yang mungkin merupakan ide bagus dalam jangka panjang, Anda hanya perlu mengarahkannya ke versi yang dapat diandalkan dan berfungsi sehingga sistem setidaknya akan mem-boot dan Anda dapat mengedit file pada disk jika kernel baru mulai berjalan. setelah menginstal dan tidak bisa boot atau tidak bekerja. Pada dasarnya Anda ingin setidaknya 2 opsi boot di menu grub, yang terbaru dan kemudian beberapa versi yang dapat diandalkan kembali.

Anda mengedit /etc/default/grub.cfgdan memodifikasi file ini; buat menu seperti yang Anda inginkan hanya dengan mengomentari yang tidak Anda inginkan dengan #, lalu lakukan agrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

KDUMP adalah masalahnya

Dan dari initrd-2.6.32-358.18.1.el6.x86_64kdump.imgfile yang memiliki kdump di namanya, sepertinya Anda telah mengaktifkan kdump. Kecuali Anda menggunakannya, Anda dapat menonaktifkan kdump yang akan membantu menghemat ruang. Dan kecuali Anda debug sistem crash dan sejenisnya, Anda tidak perlu *kdump.imgfile sehingga Anda dapat menghapusnya. Saya tidak menggunakan kdump, tidak pernah ada, tetapi diaktifkan secara default selama instalasi dan saya menduga secara default menyimpan ke folder / boot; yang jika hanya 100mb buruk. Jadi, modifikasi kdump untuk dibuang di tempat lain, atau Anda kemungkinan besar tidak menggunakannya, maka nonaktifkan kdump.

ron
sumber