Setiap kali saya menginstal kernel Linux baru, ia ditinggalkan di grub_config, membuat menu boot lebih lama setiap kali.
Saya tahu saya bisa mencari secara manual melalui paket yang diinstal dan menghapusnya.
Apakah Ubuntu menyediakan cara yang lebih mudah untuk membersihkannya atau mencegahnya agar tidak muncul di daftar boot?
sudo apt-get autoremove
harus melakukan trik di Ubuntu 14.04+sudo apt-get autoremove --purge
jawabannya dengan mengikutiapt-mark
saran di https://help.ubuntu.com/community/RemoveOldKernelsJawaban:
16.04 dan versi Ubuntu yang lebih baru
Perintah ini menghapus paket yang secara otomatis diinstal untuk menyelesaikan ketergantungan, tetapi sekarang tidak lagi bergantung pada. Ini termasuk versi lama
linux-headers-*
danlinux-image-*
. (Ini juga pintar tentang proses ini, meninggalkan satu versi cadangan dari kernel sebagai cadangan!)11.10 dan versi Ubuntu yang lebih baru
GRUB2 dan tampilan semua kernelnya
Versi terbaru dari Grub2 yang dipasang di Ubuntu secara otomatis menampilkan kernel terbaru dan menyembunyikan kernel lama yang mungkin telah Anda instal.
Jika Anda tidak melihat grub Anda - maka ingatlah untuk menekan Shiftsaat booting.
Seperti yang Anda lihat, hanya kernel terbaru yang ditampilkan.
Jika Anda memilih opsi yang ditunjukkan (tekan Enter) maka semua kernel lama menjadi terlihat dan tersedia untuk boot.
Cara menghapus kernel lama secara permanen
Boot pertama dengan kernel terbaru yang tersedia.
Ada beberapa cara untuk menghapus kernel lama. Secara pribadi, saya tidak akan menyentuh Computer Janitor karena ini diakui dapat merusak komputer Anda dengan saran-sarannya.
sinaptik
Alternatifnya adalah Synaptic (
sudo apt install synaptic
)cari linux-image , klik kanan kernel dan pilih penghapusan lengkap dan akhirnya klik tombol Terapkan untuk menghapus kernel.
Ulangi pencarian tetapi kali ini untuk linux-header - Anda dapat menghapus header terkait untuk gambar kernel yang dipilih sebelumnya.
Synaptic meskipun tidak akan mencoba memverifikasi apa yang Anda coba hapus ... Anda bisa secara tidak sengaja menghapus kernel terbaru Anda - atau bahkan menghapus semua kernel Anda melalui alat ini meninggalkan Anda dengan Ubuntu yang tidak dapat di-boot !
Ingatlah untuk memeriksa kernel yang Anda gunakan ketik:
Hasilnya akan mirip dengan:
Ingat hasil dan jumlahnya - pastikan Anda tidak menghapus gambar atau tajuk yang sesuai.
Rekomendasi
Rekomendasi saya adalah menyimpan setidaknya dua atau lebih disukai tiga kernel termasuk yang terbaru. Alasan untuk rekomendasi ini adalah bahwa Anda akan memiliki setidaknya satu / dua kernel untuk di-boot, jika karena alasan apa pun kernel terbaru yang tidak dapat Anda boot dengan atau memperkenalkan kemampuan yang mengalami kemunduran seperti nirkabel yang rusak.
sumber
-y
beralih pada akhirapt-get
baris diperlukan, jika tidak apt-get hanya meminta konfirmasi dan karena input pipa, itu hanya dibatalkan. Jadi harus diakhiri dengan:| xargs sudo apt-get purge -y
linux-image
danlinux-headers
membebaskan ruang 4,5GB di komputer saya.Pertama, reboot sistem Anda untuk memastikan ia menggunakan kernel terbaru. Kemudian buka terminal dan periksa kernel Anda saat ini:
JANGAN HAPUS KERNEL INI!
Selanjutnya, ketik perintah di bawah ini untuk melihat / mendaftar semua kernel yang diinstal pada sistem Anda.
Temukan semua kernel yang lebih rendah dari kernel Anda saat ini. Ketika Anda tahu kernel mana yang harus dihapus, lanjutkan di bawah ini untuk menghapusnya. Jalankan perintah di bawah ini untuk menghapus kernel yang Anda pilih.
Terakhir, jalankan perintah di bawah ini untuk memperbarui grub2
Mulai ulang sistem Anda.
sumber
sudo apt-get purge linux-image-3.2.0-3{0..5}-generic
(menghilangkan 30,31, .., 35)linux-signed-image
paket yang mungkin diinstal di sistem UEFI:sudo apt-get purge linux-signed-image-3.11.0-{12,14,24}-generic
yang akan menghapus 12, 14 dan 24uname -r
tidak memilikisigned
string pada sistem saya. Saya tampaknya memiliki citra ditandatangani diinstal dan output dari yangls
perintah:/boot/vmlinuz-3.19.0-16-generic.efi.signed
.One-liner saya untuk menghapus kernel lama (ini juga membebaskan ruang disk)
Penjelasan (ingat,
|
gunakan output dari perintah sebelumnya sebagai input ke yang berikutnya)dpkg --list
daftar semua paket yang diinstalgrep linux-image
mencari gambar linux yang diinstalawk '{ print $2 }'
hanya menampilkan kolom ke-2 (yang merupakan nama paket)sort -V
menempatkan item dalam urutan dengan nomor versised -n '/'`uname -r`'/q;p'
mencetak baris sebelum kernel saat inixargs sudo apt-get -y purge
membersihkan kernel yang ditemukanMembatalkan
sed
undangan:-n
menyuruhsed
diam`uname -r`
menampilkan rilis kernel yang terinstal saat ini - kami menyertakannya dalam backticks sehingga hasilnya termasuk sebagai bagian dari perintah (Anda mungkin juga melihat ini sebagai$(uname -r)
/something/q
mengatakan berhenti ketika Anda mencocokkan 'sesuatu' (dalam hal ini, sesuatu adalah outputuname -r
) -/
mengelilingi ekspresi regulerp
dicetak;
adalah perintah separtor, begitu/something/q;p
kata berhenti ketika Anda mencocokkan sesuatu, cetak lainsemuanya,
sed -n '/'`uname -r`'/q;p'
cetak baris sampai cocok dengan nama kernel saat ini.Jika Anda paranoid (seperti saya), Anda dapat membuat bagian terakhir
xargs echo sudo apt-get -y purge
sehingga perintah untuk membersihkan kernel lama dicetak, maka Anda dapat memeriksa bahwa tidak ada yang tidak terduga yang dimasukkan sebelum Anda menjalankannya.Versi modifikasi untuk menghapus header:
Catatan:
sed
doa diubah."$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"
ekstrak hanya versi (mis. "3.2.0-44"), tanpa "-generik" atau serupa dariuname -r
Versi lengkap untuk menghapus gambar dan tajuk (menggabungkan dua versi di atas):
sumber
sudo apt-get purge $(for tag in "linux-image" "linux-headers"; do dpkg-query -W -f'${Package}\n' "$tag-[0-9]*.[0-9]*.[0-9]*" | sort -V | awk 'index($0,c){exit} //' c=$(uname -r | cut -d- -f1,2); done)
Lihat juga jawaban saya .dkpg -P
. Ini adalah versi lengkapnya:dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo dpkg -P
Ubuntu 16.04+:
Ubuntu 15.10 dan di bawah ini:
Saya menemukan ini sebagai cara termudah dan tercepat. Itu membuat kernel terbaru dan dua lagi:
Untuk mengubah jumlah kernel tambahan yang disimpan:
sumber
which purge-old-kernels
.purge-old-kernels
tanpa bikeshed ( alat berguna acak yang belum memiliki rumah permanen ) atau paket tertentu. Hindari menggunakanapt-get -y
opsi, seperti menutup mata dan berharap semuanya akan baik-baik saja. Juga di sini adalah bagaimana autoremove memutuskan berapa banyak kernel lama yang akan disimpan.apt-file search purge-old-kernels
. Setujuapt-get -y
, saya akan menghapusnya.sudo apt-get autoremove
itu tidak menghapus kernel di 14.04. Jangan ragu untuk memperbarui jawabannya dengan versi spesifik jika Anda tahu apa itu!Menghapus Entri dari Grub 2 Entri harus dihapus dengan mengedit atau menghapus file di folder /etc/grub.d. File /boot/grub/grub.cfg hanya-baca dan biasanya tidak memerlukan pengeditan.
Kernel terlalu banyak?
Jika Anda tidak yakin dengan kernel yang Anda gunakan saat ini, dalam terminal ketik uname -r .
Kernel dihapus melalui APT (Synaptic, "apt-get remove", dll.) Secara otomatis akan memperbarui grub.cfg dan tidak ada tindakan pengguna yang diperlukan.
Alat hebat untuk menghapus kernel (dan entri menu) adalah Ubuntu-Tweak, aplikasi GUI yang aman dan mudah digunakan.
Instal tweak ubuntu
Ubuntu-Tweak akan tersedia di bawah Applications> System Tools.
Hapus Entri Kernel Lama
Pilih "Package Cleaner" di sebelah kiri dan "Clean Kernel" dari panel kanan.
Tekan tombol "Buka Kunci" di kanan bawah, masukkan kata sandi Anda.
Pilih dari daftar yang ditampilkan gambar dan header kernel yang ingin Anda hapus. Kernel yang digunakan tidak terdaftar.
Tekan tombol "Cleanup" di kanan bawah untuk menghapus gambar dan header kernel yang dipilih.
Hapus Sistem Operasi dari menu Grub
Sistem Operasi lain yang telah dihapus dari komputer juga akan dihapus dari menu setelah "update-grub" dijalankan sebagai root.
Item menu ditempatkan pada menu Grub2 oleh skrip. Jika Anda tidak ingin Sistem Operasi lain dimasukkan dalam menu, nonaktifkan /etc/grub.d/30_osprober
Jalankan perintah ini untuk menghentikan skrip agar tidak berjalan
sudo chmod -x /etc/grub.d/30_os-prober
DISABLE_30_OS-PROBER = 'true' di / etc / default / grub
Hapus Memtest86 + dari Menu Grub
sudo chmod -x /etc/grub.d/20_memtest86+
Sumber
Catatan: Setelah pembaruan kernel, entri baru ditambahkan ke menu GRUB. Anda dapat menghapus yang lebih tua jika Anda mau. Namun, sebagian besar pengguna yang berpengalaman akan menyarankan Anda untuk menyimpan setidaknya satu entri cadangan jika terjadi kesalahan dengan peningkatan dan Anda perlu mem-boot versi kernel lama untuk tujuan pemecahan masalah.
Cara alternatif untuk menghapus entri Kernel (sebelum 10,04)
untuk GRUB bukan GRUB2
manajer startup
Anda dapat menemukannya di Sistem >> Administrasi >>
Anda lihat di tangkapan layar kedua Anda dapat memilih berapa banyak kernel yang akan ditampilkan? Saya biasanya hanya menyimpannya di 1, tetapi ketika saya mendapatkan upgrade kernel saya selalu mengubahnya ke 2 sebelum restart sehingga saya dapat memilih kernel yang lebih tua jika kernel baru memiliki masalah dengan perangkat keras saya. Setelah saya tahu kernel baru berfungsi dengan baik, saya mengubahnya kembali ke 1.
sumber
Murni commandline, ini akan menghapus semua kecuali arus saat ini dan kedua saat ini (melalui "-2" pada perintah kepala di bawah ini):
sumber
dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | xargs sudo apt-get -y purge
linux-libc-dev:amd64
yang seharusnya tidak dihapus.awk '{print "linux-image-" $0}'
.Pembaruan:
purge-old-kernels
sudah usang saat ini.Saya membuat naskah untuk membersihkan kernel bahkan dalam kondisi sulit. Ini disebut
linux-purge
dan Anda dapat menemukannya di sini .Jika Anda hanya ingin membersihkan kernel (dan paket-paket terkait) yang lebih tua dari kernel yang saat ini digunakan, ketika sistem tidak rusak, Anda bisa menggunakan skrip ini .
Ada juga halaman dokumentasi Ubuntu yang saya berkontribusi untuk menghapus kernel lama di sini .
sumber
purge-old-kernels
tidak dalam versi yang tepat (1.22) dari bikeshed. Apakah ada cara yang masuk akal / aman untuk mendapatkan bikeshed terbaru yang lebih tepat? Atau apakah lebih sederhana / aman untuk menginstal skrip saja? Saya lebih suka menggunakan repo, meskipun daftar panjang dependensi ..dlocate -lsbin bikeshed
Anda dapat mengikuti bagian Menggunakan paket "unattended-upgrade" dari artikel Pembaruan Keamanan Otomatis di Wiki Ubuntu untuk melakukan ini.
Anda perlu mengubah baris berikut di file /etc/apt/apt.conf.d/50unattended-upgrades ;
dengan
untuk secara otomatis menghapus paket lama, termasuk kernel.
Juga hapus atau komentari baris
di bagian "NeverAutoRemove" pada file /etc/apt/apt.conf.d/01autoremove.
sumber
apt-get autoremove
ke pekerjaan cron harian saya yang benar-benar melakukan peningkatan, karena tidak selalu melalui pembaruan-manajer bawaan.Cara tercepat / lebih sederhana (Berlaku setidaknya sejak 12,04) mungkin yang sudah disertakan dengan Ubuntu
apt-get
. Lakukan hal berikut jika Anda ingin menghapus semua versi kernel lama yang tidak digunakan (Kecuali yang sebelumnya tidak Anda gunakan. Ini untuk memastikan bahwa jika versi kernel saat ini gagal dalam beberapa cara, Anda memiliki cara untuk pergi kembali ke keadaan sebelumnya). Lakukan hal berikut:Ini akan menghilangkan semua file lama (Termasuk versi kernel) yang mungkin Anda miliki. Perhatikan bahwa jika Anda memiliki banyak versi lama, itu akan memakan waktu cukup lama karena harus memastikan bahwa menghapus versi kernel tidak memiliki masalah. Bagi saya, menghapus 12 versi kernel terakhir membutuhkan waktu sekitar 2 menit. Anda juga dapat melakukan hal berikut:
Yang akan menghilangkan semua yang diunduh dan disimpan dalam folder cache apt. Terakhir yang Anda miliki:
yang akan memeriksa semua paket yang tidak digunakan dan menghapusnya jika perlu. Ini bagus untuk pustaka dan paket dependensi yang tidak lagi dibutuhkan oleh aplikasi apa pun yang diinstal.
sumber
sudo apt-get autoremove
memang menghapus kernel lama (lebih dari satu versi yang lalu) di 14,04. Anda mungkin harus menjalankannya sebelum dan setelah memutakhirkan kernel Anda. Ketika saya menjalankan sebelum memutakhirkan, itu hanya menghapus versi generik kernel lama. Kemudian, setelah memutakhirkan kernel saya, itu menghapus versi lowlatency kernel lama, juga.sudo apt-get autoclean
perintah. @tekNorah Saya menginstal beberapa kernel yang lebih tua dan kemudian dijalankansudo apt-get autoremove
di Ubuntu Studio 14.04. Itu tidak menghapus kernel. Saya hanya menginstal kernel lowlatency. Mengapa kedua kernel -generic dan -lowlatency terinstal?10,04 Metode GUI
Computer Janitor dapat membersihkan kernel lama dan saya percaya diinstal secara default di Ubuntu (tetapi tidak Kubuntu).
GRUB 1, jika Anda menggunakannya, memiliki opsi
/boot/grub/menu.lst
untuk menentukan berapa banyak kernel yang akan ditampilkan secara maksimal. GRUB 2, sejauh yang saya tahu, tidak.sumber
Untuk mengetahui kernel dan header apa yang diinstal gunakan
Anda kemudian dapat menghapusnya satu per satu atau bersama-sama, pastikan untuk menyimpan yang terbaru.
Ada juga beberapa perintah dan skrip yang berguna untuk mengotomatiskan penghapusan.
http://ubuntuforums.org/showthread.php?t=1658648
Klaim berikut untuk menghapus semua kernel dan header yang tidak digunakan:
(gunakan
apt-get -y
untuk menghapus tanpa pertanyaan)Inilah yang terjadi ketika dijalankan pada 18.04.1:
sumber
linux-libc-dev
sudah diinstal.linux-libc-dev
cocok dengan nomor versi dari kernel saat ini. Di sinidpkg -l linux-libc-dev | sed '/^ii/!d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
mencetak linux-libc-dev: amd64grep -E "(image|headers)"
.-y
bendera dengan pembersih ..!Untuk menghapus kernel gambar Linux yang lebih lama, boot dulu di kernel yang ingin Anda simpan.
Anda juga dapat memeriksa versi kernel menggunakan perintah
uname -r
sehingga Anda tidak menghapus yang salah secara tidak sengaja.Sekarang pergi ke manajer paket synaptic dan cari
linux-image
dan hapus versi yang lebih lama kecuali yang ditunjukkan oleh perintah atas. Secara umum saya lebih suka menggunakan yang terbaru.Sekarang ketika Anda me-restart Anda akan melihat menu grub yang lebih bersih.
sumber
Anda dapat menginstal ubuntu-tweak lalu Buka Aplikasi -> System tool -> ubuntu tweak dan
klik paket cleaner dan clean kernel. itu tidak menunjukkan kernel yang saat ini digunakan sehingga Anda akan selalu aman.
sumber
Secara pribadi, saya suka menggunakan
Synaptic
. Itu membuat saya merasa lebih aman tentang apa yang terjadi. Satu-satunya aplikasi yang saya gunakan yang memiliki opsi untuk menghapus kernel lama adalah Ubuntu Tweak .Cara menghapus kernel yang tidak Anda gunakan:
uname -a
di terminalsumber
update-grub
disarankan.Anda dapat menghapus kernel lama (
linux-image-...
paket) menggunakan Synaptic, dan itu akan menghapusnya dari menu boot. Berhati-hatilah untuk tidak menghapus kernel yang berjalan (Anda dapat memeriksa versinyauname -r
).Ingatlah bahwa memiliki satu atau dua versi yang lebih lama dapat membantu Anda memecahkan masalah, jika terjadi kesalahan.
Atau, Anda dapat mengedit / menghapus entri secara manual (
gksu gedit /boot/grub/grub.cfg
), tetapi akan dihasilkan kembali ketika Anda memperbarui ke kernel yang lebih baru. Jika Anda berpikir tentang menghapusrecovery mode
opsi - jangan. Mereka bisa berguna jika Anda memecahkan sesuatu yang mencegah Anda untuk boot.Lihat halaman ini.
sumber
update-grub
yang akan menulis ulang semua kernel tersebut.Ini adalah solusi baris perintah murni.
Pertama-tama buat daftar semua versi kernel yang diinstal kecuali kernel yang sedang berjalan:
Atau buatlah daftar semua versi kernel yang diinstal kecuali dua yang terakhir:
Periksa daftarnya. Pastikan versi kernel yang ingin Anda pertahankan bukan bagian dari daftar. Gunakan perintah
uname -r
untuk melihat versi kernel yang sedang berjalan.Jika Anda puas dengan hasilnya, Anda dapat menggunakan
apt-get
untuk menghapus paket.Pertama menjalankan kering (menggunakan generator pertama sebagai contoh):
Kemudian menjalankan nyata:
Jika Anda ingin mengotomatiskan proses kemudian tambahkan
--yes
parameter:sumber
sudo apt-get purge -- $(ls -1U /boot/vmlinuz* | cut -d- -f2,3 | sort -uV | head -n -2 | awk -v c=$(uname -r | cut -d- -f1,2) '($0==c){exit} //' | sed -r -e 's/\./\\./g' -e 's/.*/-&($|-)/')
. Tidak perludpkg-query
karenaapt-get
dapat menangani ekspresi reguler. Harap perhatikan bagaimana saya lolos dari titik, dan menambahkan awalan dan akhiran dalam ekspresi reguler. Menggunakan skrip dalam jawaban saya sendiri, Anda juga dapat menyimpan beberapa kernel yang lebih tua dari yang sekarang.Keuntungan dari jawaban ini adalah Bash asli Ubuntu digunakan tanpa menginstal aplikasi pihak ketiga. Pengguna kernel khusus yang tidak menggunakan
apt
ataudpkg
dapat mengubah skrip bash ini sesuai dengan kebutuhan mereka. Jawaban ini didasarkan pada ( Cara membersihkan kernel lama secara selektif sekaligus ).Solusi berbasis kenyamanan
Zenity menyediakan antarmuka GUI yang bagus ke terminal untuk memproses daftar dan memilih item dengan tombol radio :
Seperti judulnya menunjukkan kernel saat ini Anda boot dengan tidak dapat dihapus dan tidak termasuk dalam daftar. Ukuran yang dilaporkan adalah berapa banyak yang akan disimpan dalam
/boot
direktori. Lebih banyak disimpan di disk Anda karena binari kernel berada di area lain juga. 27 Juli 2017 catatan: Direktori/usr/src/*kernel_version*
dan/lib/modules/*kernel_version*
sekarang juga disertakan.The Date Modified ditemukan menggunakan
stat
perintah. Pada sistem saya tanggal itu "tersentuh" setiap kali kernel di-boot menggunakan ini ( Bagaimana Anda mengetahui kapan versi kernel tertentu terakhir kali di-boot? ) Cron reboot script. Namun, pada sistem Anda tanggalnya adalah tanggal rilis kernel, bukan terakhir kali Anda mem-bootnya.apt-get purge
memberi Anda kesempatan untuk membatalkanAnda diberi kesempatan terakhir untuk melihat semua yang akan dihapus dan melihat total ruang disk (agak menyesatkan) yang akan dipulihkan:
Kode
Salin kode ini ke file yang dapat dieksekusi yang bernama
rm-kernels
di/usr/local/bin
:CATATAN: Anda memerlukan izin sudo untuk membuat file jadi gunakan:
Untuk membuat file dapat dieksekusi, gunakan:
Versi Server
rm-kernels-server
adalah versi server untuk menghapus kernel secara bersamaan. Alih-alih kotak dialog GUI (grafis), kotak dialog berbasis teks digunakan untuk memilih kernel untuk dibersihkan.Sebelum menjalankan skrip, Anda perlu menginstal fungsi dialog menggunakan:
sudo apt install dialog
Dialog ada di instalasi Desktop Ubuntu default tetapi tidak di Server Ubuntu.
Layar sampel
rm-kernels-server
kode bashCATATAN: Dalam panggilan ke
dialog
arahan--ascii-lines
dilewatkan untuk mengganti set karakter garis-diperpanjang diperpanjang (yangssh
tidak suka) dengan "+ ----- +" untuk menggambar kotak. Jika Anda tidak menyukai penampilan ini, Anda dapat menggunakan--no-lines
arahan tanpa kotak sama sekali.28 Juli 2017 Pembaruan
Ukuran yang dihitung dari masing-masing kernel diambil dari
/boot/*kernel_version*
5 file dengan total ~ 50 MB. Formula telah berubah untuk memasukkan file ke dalam/usr/src/*kernel_version*
dan/lib/modules/*kernel_version*
. Ukuran yang dihitung untuk setiap kernel sekarang ~ 400 MB. Kode di atas untukrm-kernels
danrm-kernels-server
telah diperbarui. Namun, layar sampel di atas belum mencerminkan perubahan ini.Standarnya adalah memperkirakan ukuran file untuk linux-header di 125 MB dan linux-image di 220 MB karena
du
bisa sangat lambat kecuali file dalam cache. Untuk mendapatkan ukuran sebenarnya dengan menggunakandu
parameter apa saja ke skrip.Total semua ukuran kernel (tidak termasuk versi berjalan saat ini yang tidak dapat dihapus) sekarang ditampilkan di bilah judul.
Kotak dialog yang digunakan untuk menampilkan Tanggal Akses Terakhir masing-masing Kernel . Tanggal ini dapat ditimpa secara massal untuk semua kernel selama pencadangan atau operasi serupa. Kotak dialog sekarang menunjukkan Tanggal yang Dimodifikasi sebagai gantinya.
sumber
Cara mudah untuk menghilangkan hampir semua paket usang, paket tidak lagi dalam daftar paket apa pun, bersama dengan kernel usang adalah dengan melakukan salah satu dari yang berikut:
Namun, ini akan melewatkan paket yang masih direkomendasikan oleh paket lain, dan argumen -R / - tanpa-rekomendasi tidak menyelesaikan masalah ini.
pilih setelah beralih mode sortir dengan 'o' akan menampilkan semua paket usang termasuk yang aptitude misses, tetapi beberapa orang tidak suka menggunakannya.
sumber
Jawaban yang diterima menggunakan
sed
menghapus kernel yang lebih tua secara permanen memiliki beberapa kelemahan, jika seseorang belum me-reboot komputer setelah memutakhirkan kernel, perintah juga akan menghapus kernel yang lebih baru.Berikut ini adalah solusi alternatif yang akan mempertimbangkan semua situasi untuk menghapus kernel lama yang sebenarnya saja:
Jika Anda memiliki versi yang lebih baru dari versi saat ini, ini akan memberi Anda peringatan untuk memulai kembali komputer Anda terlebih dahulu. Perhatikan juga bahwa kernel yang lebih lama disimpan karena alasan yang bagus yaitu jika Anda entah bagaimana mengacaukan kernel Anda saat ini membuat sistem Anda tidak stabil maka Anda harus bisa boot ke kernel yang lebih tua.
sumber
sed
.grep -Po "^linux-image-[^-]+-[^-]+-generic\b"
dengangrep -Eo "^linux-(image|headers|tools)-[^-]+-[^-]+(|-generic)\s" | sed -e "s/\s//g"
dangrep -Po ".*(?=-[a-z]*$)"
dengangrep -Eo "^[0-9]+\.[0-9]+\.[0-9]+-[0-9]+"
dangrep -Po "[0-9].*(?=-[a-z]*)"
dengangrep -Eo "[0-9]+\.[0-9]+\.[0-9]+-[0-9]+"
?ailurus memiliki fitur menghilangkan kernel lama serta konfigurasi yang tidak digunakan. Saya pribadi menghapusnya secara manual dari sinaptik. Anda dapat menginstal ailurus dari getdeb dan juga ppa
sumber
Saya punya skrip untuk ini yang tidak perlu parsing string yang sangat mewah.
Hapus tajuk dan gambar kecuali yang sekarang untuk melepaskan ruang
sumber
Anda dapat menggunakan ukuu - semuanya GUI - untuk memperbarui dan menghapus kernel lama. Bekerja untukku!
Ingat saja biarkan 2 yang terakhir terinstal dan jelas kernel 'running'.
Anda juga dapat mengatur ukuu untuk hanya menampilkan rilis garis utama, bahkan kernel RC, rilis titik sembunyikan.
Anda dapat menemukan ukuu di Synaptic, atau instruksi ada di sini:
OMG! Ubuntu ukuu menginstal instruksi
sumber
Berdasarkan jawaban sebelumnya oleh David Kemp, skrip berikut akan membersihkan semua header dan gambar kecuali untuk 2 versi terakhir .
(gunakan
apt-get -y
untuk menghapus tanpa pertanyaan)sumber
| xargs sudo apt-get -y purge
semuanya). Jika mencetak 3.13.0-43-lowlatency, maka mungkin Anda memiliki beberapa versi yang lebih baru dari yang diinstal pada sistem Anda.di sini adalah garis besar kasar dari apa yang saya lakukan, hati-hati karena saya bukan ahli di linux, pastikan Anda tahu apa yang Anda lakukan dan telah membuat cadangan file yang Anda modifikasi.
kemudian temukan entri yang ingin Anda simpan, kami akan menyoroti dan menyalinnya
Anda akan melihat daftar file seperti 10_linux dan 30_os-prober
ini akan berhenti membentuk otomatis menambahkan semua entri linux ke dalam menu boot grub.
buka file menu boot khusus, lalu kembali ke grub.cfg (yang seharusnya masih terbuka di gedit), dan salin entri yang ingin Anda simpan ... seperti
rekatkan ke dalam
40_custom
, lalu simpan.membuatnya dapat dieksekusi, lalu akhirnya kita perbarui grub yang akan mengubah file grub.cfg:
Sekarang, WASPADALAH, jika Anda memperbarui kernel atau OS Anda, menu boot Anda mungkin tidak akan memperbarui ... Anda harus melakukannya secara manual. Tetapi melakukan prosedur ini akan memungkinkan Anda menyesuaikan menu boot sedikit lebih, seperti menghapus versi kernel dan hanya meletakkan nama ubuntu ... yaitu Ubuntu Lucid 10,04, dll ...
Semoga seseorang menemukan ini bermanfaat, karena butuh beberapa saat untuk mencari tahu ... tidak melihat solusi ini di mana pun ...
sumber
Instal manajer paket sinaptik dan pergi ke tab filter (saya pikir filter, jika tidak mencoba semua 5) dan pilih "lokal". Ini akan menunjukkan kepada Anda paket yatim di sistem Anda, seperti kernel. Setelah Anda menghapusnya, jalankan
update-grub
. Perintah itu memperbarui daftar opsi boot untuk grub.Jika gagal, Anda selalu dapat mencoba
apt-get remove linux-image-version-generic
.sumber
update-grub
disarankan.Untuk memiliki sedikit lebih banyak kontrol atas versi mana yang akan disimpan, pilih secara eksplisit yang ingin Anda hapus. Misalnya jika Anda ingin menghapus versi kernel 3.2.0. [49-53], gunakan
for
loop sederhana :Sesuaikan daftar versi kernel agar sesuai.
sumber
Coba ini. Jalankan sebagai root.
Simpan skrip ini sebagai, misalnya ./keep-n-kernels.sh
Lulus, sebagai argumen baris perintah, jumlah kernel terbaru yang ingin Anda pertahankan.
Penggunaan sampel:
Jika Anda ingin [DAN RISIKO ANDA SENDIRI], Anda bisa menambahkan -y (atau flag kekuatan) ke perintah apt-get dan membuatnya tidak interaktif.
sumber
Saya menggunakan desktop KDE, dan opsi termudah yang saya temukan adalah menggunakan aplikasi kde-config-grub2 seperti yang disarankan di sini: https://www.kubuntuforums.net/showthread.php?58075-remove-old-linux-versions (yang sudah saya instal untuk pengaturan gambar latar belakang, opsi boot default, dan sejenisnya). Di sebelah kotak drop-down di mana Anda dapat memilih entri default, ada tombol "Hapus Entri Lama". Mengklik tombol ini memberi Anda daftar semua kernel yang diinstal dan Anda dapat memilih yang mana yang akan dihapus. Ketika Anda menerapkan perubahan itu akan menggunakan dpkg untuk benar-benar menghapusnya dari sistem serta menu GRUB.
sumber
Hanya untuk berpadu, Anda juga bisa mengeluarkan
apt-get remove linux-{image,headers}-x.y.z-{1,2,...,n}
sebagai root, dan pekerjaan akan dilakukan.
sumber
Jika Anda menggunakan yang dimungkinkan untuk mengontrol mesin, playbook ini mungkin bisa membantu.
sumber