Hapus kernel baru / boot penuh

8

Kami memiliki beberapa server Ubuntu 16.04. unattended-upgradessecara otomatis diaktifkan sejak 16.04 dan partisi boot berada di partisi yang terpisah. Karena pembaruan keamanan otomatis, partisi boot kehabisan ruang dengan kernel baru.

Kami tidak bisa begitu saja me-reboot sistem sehingga mesin masih menggunakan kernel kedua dari belakang.

Kernel mana yang harus saya hapus? Semua kecuali torrent, yang tertua dan yang terbaru?

Apakah kalian punya rekomendasi?

Saya juga memperhatikan bahwa kernel terbaru memiliki status "Half Configured". Kernel ini mungkin tidak berfungsi jadi saya harus menghapus yang ini dan menggunakan kernel yang lebih tua.

Output dari dpkg -l | grep linux image:

    ii  linux-image-4.4.0-21-generic --> old kernel
    ii  linux-image-4.4.0-34-generic --> current kernel
    ii  linux-image-4.4.0-36-generic --> new kernel
    ii  linux-image-4.4.0-38-generic --> new kernel
    ii  linux-image-4.4.0-42-generic --> new kernel
    ii  linux-image-4.4.0-45-generic --> new kernel
    ii  linux-image-4.4.0-47-generic --> new kernel
    ii  linux-image-4.4.0-51-generic --> new kernel
    ii  linux-image-4.4.0-53-generic --> new kernel
    iF  linux-image-4.4.0-57-generic --> new kernel
pengguna83026
sumber

Jawaban:

7

Untuk membersihkan kernel lama, Anda dapat menggunakan purge-old-kernelsalat baris perintah.

Program ini akan menghapus paket-paket kernel dan header lama dari sistem, membebaskan ruang disk. Itu tidak akan pernah menghapus kernel yang sedang berjalan. Secara default, ini akan menyimpan paling tidak 2 kernel terbaru, tetapi pengguna dapat mengganti nilai itu menggunakan parameter --keep. Setiap parameter tambahan akan diteruskan langsung keapt-get

Untuk menginstal purge-old-kernels, jalankan:

sudo apt install byobu

atau

sudo apt install bikeshed

Untuk nmenjalankan kernel terbaru :

sudo purge-old-kernels --keep n

e, g: n = 2

sudo purge-old-kernels --keep 2

Perbarui grub:

sudo update-grub
GAD3R
sumber
2
byobumungkin adalah paket yang Anda inginkan untuk 16,04 Xenuial: purge-old-kernelsmendapat pindah dari bikeshedke byobusuatu waktu antara Trusty dan Xenial, meskipun bikeshedsekarang merekomendasikan byobusehingga Anda masih akan mendapatkan program ini kecuali jika Anda tidak-install-merekomendasikan.
Wolfgang
4

Untuk Ubuntu, Grub2 secara otomatis menampilkan kernel terbaru dan menyembunyikan kernel lama. Jika Anda ingin melihatnya, Anda dapat menekan Shift saat booting.

Jadi, sebelum menghapus kernel yang lebih lama, boot dengan kernel terbaru yang tersedia (grub2 muat secara default dalam booting). Untuk memeriksa kernel mana yang Anda gunakan, Anda dapat menggunakan perintah:

uname -r

Rekomendasi ini adalah untuk menyimpan setidaknya dua atau lebih disukai tiga kernel termasuk yang terbaru. Alasannya adalah Anda memiliki setidaknya satu / dua kernel untuk di-boot dengan jika Anda tidak dapat melakukan boot dengan kernel terbaru.

Untuk menghapus kernel lama, buka terminal dan periksa kernel Anda saat ini:

uname -r 

Kemudian untuk mendaftar semua kernel yang diinstal pada sistem Anda.

dpkg --list | grep linux-image 

Temukan semua kernel yang lebih rendah dari kernel Anda saat ini. Jalankan perintah di bawah ini untuk menghapus kernel yang Anda pilih:

sudo apt-get purge linux-image-x.x.x.x-generic 

Terakhir, jalankan perintah di bawah ini untuk memperbarui grub2

sudo update-grub2 

Dan reboot sistem Anda.

Dababi
sumber
1
Dari pertanyaan: "kita tidak bisa hanya me-reboot sistem" . Jawaban Anda mengharuskan melakukannya dua kali.
Lightness Races in Orbit
3

apt-get autoremove, jalankan secara berkala, harus dapat membantu Anda mencapai apa yang Anda inginkan. Kernel yang berjalan, kernel sebelumnya, dan dua kernel terbaru sudah cukup.

schaiba
sumber
1
Diberikan daftar kernel yang diinstal, dan fakta bahwa kernel yang berjalan sudah tua, saya akan mengatakan "kernel yang berjalan, kernel sebelumnya dan dua kernel terbaru".
Stephen Kitt
2

Boot salah satu kernel sebelumnya.

Percobaan pertama apt autoremove --purge

Jika tidak berhasil dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

Kontrol apa yang akan dihapus.

dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo dpkg -P Ini akan membersihkan Kernel Listet dari perintah di bawah ini.

sudo apt -f install

dan pastinya

 sudo update-grub

sumber