Saya mencoba melakukan do-release-upgrade
tetapi kemudian saya mendapatkan:
Tidak cukup ruang disk kosong
Pembaruan telah dibatalkan. Pemutakhiran membutuhkan total ruang bebas 25,7 M pada disk '/ boot'. Silakan kosongkan setidaknya 25,7 M ruang disk tambahan pada '/ boot'. Kosongkan tempat sampah Anda dan hapus paket sementara dari instalasi sebelumnya menggunakan 'sudo apt-get clean'.
Output dari df
:
237251272 214797108 10402504 96% /
udev 488120 4 488116 1% /dev
tmpfs 198676 668 198008 1% /run
none 5120 0 5120 0% /run/lock
none 496684 0 496684 0% /run/shm
/dev/sda1 233191 225867 0 100% /boot
Kenapa tidak ada ruang tersisa saat boot? Inilah output dari ls -as /boot
:
total 221839
4 .
4 ..
645 abi-2.6.32-34-generic-pae
698 abi-2.6.35-30-generic-pae
727 abi-2.6.38-12-generic-pae
727 abi-3.0.0-12-generic-pae
727 abi-3.0.0-13-generic-pae
727 abi-3.0.0-14-generic-pae
727 abi-3.0.0-15-generic-pae
727 abi-3.0.0-16-generic-pae
727 abi-3.0.0-17-generic-pae
727 abi-3.0.0-19-generic-pae
761 abi-3.0.0-20-generic-pae
115 config-2.6.32-34-generic-pae
128 config-2.6.35-30-generic-pae
136 config-2.6.38-12-generic-pae
140 config-3.0.0-12-generic-pae
140 config-3.0.0-13-generic-pae
140 config-3.0.0-14-generic-pae
140 config-3.0.0-15-generic-pae
140 config-3.0.0-16-generic-pae
140 config-3.0.0-17-generic-pae
140 config-3.0.0-19-generic-pae
140 config-3.0.0-20-generic-pae
5 grub
10773 initrd.img-2.6.32-34-generic-pae
13619 initrd.img-2.6.35-30-generic-pae
15365 initrd.img-2.6.38-12-generic-pae
16481 initrd.img-3.0.0-12-generic-pae
16487 initrd.img-3.0.0-13-generic-pae
16501 initrd.img-3.0.0-14-generic-pae
16476 initrd.img-3.0.0-15-generic-pae
16481 initrd.img-3.0.0-16-generic-pae
16478 initrd.img-3.0.0-17-generic-pae
12 lost+found
174 memtest86+.bin
176 memtest86+_multiboot.bin
1700 System.map-2.6.32-34-generic-pae
1841 System.map-2.6.35-30-generic-pae
2115 System.map-2.6.38-12-generic-pae
2141 System.map-3.0.0-12-generic-pae
2141 System.map-3.0.0-13-generic-pae
2143 System.map-3.0.0-14-generic-pae
2146 System.map-3.0.0-15-generic-pae
2147 System.map-3.0.0-16-generic-pae
2147 System.map-3.0.0-17-generic-pae
2148 System.map-3.0.0-19-generic-pae
2149 System.map-3.0.0-20-generic-pae
2 vmcoreinfo-2.6.32-34-generic-pae
2 vmcoreinfo-2.6.35-30-generic-pae
2 vmcoreinfo-2.6.38-12-generic-pae
2 vmcoreinfo-3.0.0-12-generic-pae
2 vmcoreinfo-3.0.0-13-generic-pae
2 vmcoreinfo-3.0.0-14-generic-pae
2 vmcoreinfo-3.0.0-15-generic-pae
2 vmcoreinfo-3.0.0-16-generic-pae
2 vmcoreinfo-3.0.0-17-generic-pae
2 vmcoreinfo-3.0.0-19-generic-pae
2 vmcoreinfo-3.0.0-20-generic-pae
4092 vmlinuz-2.6.32-34-generic-pae
4347 vmlinuz-2.6.35-30-generic-pae
4567 vmlinuz-2.6.38-12-generic-pae
4675 vmlinuz-3.0.0-12-generic-pae
4676 vmlinuz-3.0.0-13-generic-pae
4681 vmlinuz-3.0.0-14-generic-pae
4698 vmlinuz-3.0.0-15-generic-pae
4700 vmlinuz-3.0.0-16-generic-pae
4700 vmlinuz-3.0.0-17-generic-pae
4703 vmlinuz-3.0.0-19-generic-pae
4705 vmlinuz-3.0.0-20-generic-pae
Output dari uname -a
:
Linux kitsch 3.0.0-17-generic-pae #30-Ubuntu SMP Thu Mar 8 17:53:35 UTC 2012 i686 i686 i386 GNU/Linux
upgrade
kernel
disk-usage
penjepit
sumber
sumber
ls -l /boot
danuname -a
ke pertanyaan Anda.dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
pertanyaan Anda.ls -as /boot
mungkin berguna sebagai gantinya. Ini hanya akan mencakup ukuran file.Jawaban:
Partisi / boot Anda diisi dengan kernel lama. Terkadang melakukan hal itu, tidak yakin mengapa itu tidak pernah diperbaiki. Anda dapat dengan mudah menghapus kernel lama jika Anda tahu paket mana yang masuk.
Pertama periksa
uname -a
untuk memeriksa versi Anda saat ini.Kemudian jalankan perintah berikut:
Perintah ini akan mencantumkan semua paket yang tidak lagi Anda perlukan. Saya tidak suka menghapusnya secara otomatis, saya suka memegang kendali ketika harus melepas kernel. Jadi untuk setiap paket yang terdaftar lakukan hal berikut:
Selingan
Intermezzo ini menjelaskan secara lebih rinci bagaimana perintah bekerja dan mencoba untuk memperbaiki masalah
linux-libc-dev:amd64
. Sebagian besar pengguna dapat melewati paragraf ini.dpkg -l 'linux-*'
daftar semua paket yang memiliki nama dimulai dengan 'linux-'sed '/^ii/!d; remove all lines that do *not* start with
ii`uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/"
temukan versi kernel yang sedang berjalan/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d
Hapus semua baris, kecuali yang berisi nomor versi kernel saat inis/^[^ ]* [^ ]* \([^ ]*\).*/\1/
Untuk setiap daftar baris hanya nama paket/[0-9]/!d
Hapus garis yang tidak mengandung angka.Untuk memperbaiki masalah Frederick Nord, saya pikir perintah dapat diubah sebagai berikut:
Ini pada dasarnya menambahkan filter tambahan:
linux-headers
ataulinux-image
/Selingan
Di mana
some-kernel-package
bisa diganti dengan salah satu paket yang terdaftar. Berhati-hatilah bahwa Anda tidak menghapus paket kernel yang digunakan saat ini (seperti yang tercantum olehuname -a
) mis.sudo apt-get purge -y linux-headers-3.0.0-12
dll.Ini dapat diotomatisasi lebih lanjut menggunakan perintah xargs, tapi saya tidak suka itu. Itu adalah masalah pribadi. Namun, inilah perintah untuk melakukannya:
Seperti inilah
/boot
penampilan saya , satu kernel cadangan (2.6.38-11) untuk jaga-jaga dan 3.2.0-24 saat ini:Dan penggunaan sistem file:
sumber
It does that sometimes, not sure why it is never fixed
Ubuntu telah membuat keputusan, baik atau buruk, untuk menyediakan kernel baru sebagai paket baru dan bukan sebagai upgrade ke paket yang ada, untuk memberikan opsi untuk menginstal beberapa kernel dan beralih di antara mereka sesuka hati. Saya setuju bahwa asumsi ini tidak sesuai dengan 95% orang yang hanya menginginkan kernel terbaru (dan mungkin satu kali mundur jika terjadi masalah boot baru), dan yang tidak ingin mengelola sendiri kernel yang diinstal. Mungkin di masa depan Ubuntu akan mengubah perilaku ini. Untuk saat ini, pastikan / boot Anda besar.sudo apt-get autoremove
lakukan trik untuk saya, itu berhasil membersihkan semua paket kernel yang tidak digunakan.
sumber
man apt-get
autoremove digunakan untuk menghapus paket yang diinstal secara otomatis untuk memenuhi dependensi untuk beberapa paket dan yang tidak lagi diperlukan. kernel tidak akan diinstal untuk memenuhi dependensi, mereka diinstal saat upgrade./dev/sda1, 240M total, 171M used, 57M free, 75% used /boot
after:/dev/sda1, 240M total, 129M used, 98M free, 57% used /boot
Setara dengan jawaban yang diterima - cara lain (mungkin) yang lebih mudah adalah dengan menginstal
ubuntu-tweak
alat, dapat diunduh dari sini . Pergi ke "Petugas kebersihan", dan pilih "Kernel Lama" untuk membersihkan. Itu dapat dilakukan dalam beberapa klik. (diuji pada desktop 14,04)sumber
/boot
terjadi setiap saat jadi ini adalah solusi favorit saya - aplikasi yang mudah dijalankan yang melakukan pekerjaan dengan satu klik.Dibandingkan dengan jawaban GUI lainnya di sini, keuntungan dari jawaban ini adalah Ubuntu Bash asli digunakan tanpa menginstal aplikasi pihak ketiga.
Solusi berbasis Zenity dan Bash
Zenity menyediakan antarmuka GUI yang bagus ke terminal untuk memproses daftar dan memilih item dengan tombol radio :
Kernel saat ini yang Anda booting 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:
CATATAN: Untuk versi server (berbasis teks, bukan GUI) dari skrip ini, lihat: Bagaimana cara menghapus versi kernel lama untuk membersihkan menu boot?
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 terhitung 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
Anda dapat dengan mudah menangani kernel melalui manajer paket synaptic. Tetapi pertama-tama Anda harus tahu nama rilis kernel yang digunakan saat ini, di terminal prompt:
linux@linux-desktop:~$ uname -r 4.4.0-75-generic
Jadi setidaknya versi ini Anda harus tetap tidak tersentuh. Buka sinaptik dan mulai isi tempat penampung filter cepat seperti yang ditunjukkan di bawah ini: Sekarang Anda dapat memilih semua paket yang ingin Anda hapus dan lakukan hal berikut: Tandai untuk penghapusan lengkap -> Terapkan . Saya menyarankan untuk menyimpan setidaknya satu paket kernel terbaru dan satu kernel sebelumnya. Misalnya dalam hal ini Anda dapat dengan aman menyingkirkan linux-image-4.4.0-66-generic dan linux-image-extra-4.4.0-66-generic , tetapi ada baiknya tetap menggunakan 4.4.0-72 dan tentu saja 4.4.0-75 .sumber
Untuk memudahkan commandline:
https://github.com/erichs/bootnukem
Kemudian
sumber
Bekerja di Linux Mint 18.3 (berdasarkan Ubuntu 16.04).
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes
Sumber: https://ubuntuforums.org/showthread.php?t=2248846&p=13146650#post13146650
sumber