/boot
Partisi saya hampir penuh dan saya mendapat peringatan setiap kali saya reboot sistem saya. Saya sudah menghapus paket kernel lama (linux-header ...), sebenarnya saya melakukan itu untuk menginstal versi kernel yang lebih baru yang datang dengan pembaruan otomatis.
Setelah menginstal versi baru itu, partisi hampir penuh lagi. Jadi apa lagi yang bisa saya hapus? Apakah ada beberapa file lain yang terkait dengan gambar kernel lama?
Berikut adalah daftar file yang ada di /boot
partisi saya :
:~$ ls /boot/
abi-2.6.31-21-generic lost+found
abi-2.6.32-25-generic memtest86+.bin
abi-2.6.38-10-generic memtest86+_multiboot.bin
abi-2.6.38-11-generic System.map-2.6.31-21-generic
abi-2.6.38-12-generic System.map-2.6.32-25-generic
abi-2.6.38-8-generic System.map-2.6.38-10-generic
abi-3.0.0-12-generic System.map-2.6.38-11-generic
abi-3.0.0-13-generic System.map-2.6.38-12-generic
abi-3.0.0-14-generic System.map-2.6.38-8-generic
boot System.map-3.0.0-12-generic
config-2.6.31-21-generic System.map-3.0.0-13-generic
config-2.6.32-25-generic System.map-3.0.0-14-generic
config-2.6.38-10-generic vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic vmcoreinfo-3.0.0-12-generic
extlinux vmcoreinfo-3.0.0-13-generic
grub vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic vmlinuz-3.0.0-14-generic
Saat ini, saya menggunakan 3.0.0-14-generic
kernel.
boot
hard-drive
filesystem
disk-usage
init
pengguna6722
sumber
sumber
Jawaban:
Anda memiliki banyak kernel yang tidak digunakan. Hapus semua kecuali kernel terakhir dengan:
Ini adalah singkatan untuk:
Menghapus
linux-image-x.x.x-x
paket juga akan menghapuslinux-image-x.x.x-x-generic
.Header diinstal ke dalam
/usr/src
dan digunakan ketika membangun modul kernel keluar-pohon (seperti driver nvidia dan virtualbox). Sebagian besar pengguna harus menghapus paket header ini jika paket kernel yang cocok (linux-image-*
) tidak diinstal.Untuk mendaftar semua kernel yang diinstal, jalankan:
Satu perintah untuk menampilkan semua kernel dan header yang dapat dihapus, tidak termasuk saat kernel berjalan:
Itu memilih semua paket bernama dimulai dengan
linux-headers-<some number>
ataulinux-image-<some number>
, mencetak nama-nama paket untuk paket yang diinstal dan kemudian mengecualikan kernel saat ini dimuat / berjalan (tidak harus kernel terbaru !). Ini sesuai dengan rekomendasi pengujian kernel yang lebih baru sebelum menghapus kernel lama yang sudah dikenal.Jadi, setelah memutakhirkan kernel dan me-reboot untuk mengujinya, Anda dapat menghapus semua kernel lainnya dengan:
sumber
uname -a
. Mungkin yang terbaik untuk memastikan Anda tidak memiliki pending restart-to-install-kernel-baru yang tertunda (seperti yang saya lakukan; tetapi saya mencatat ketidakcocokan antarauname -a
dan "terbaru" kernel).Partisi boot Anda penuh. Karena ini adalah pembaruan kernel, file-file ini akan disalin ke partisi boot sehingga Anda harus membersihkannya. Berikut adalah posting blog yang akan menunjukkan kepada Anda cara menghapus gambar kernel lama dengan satu perintah. Saya akan memberikan sinopsis dasar metode ini. Gunakan perintah ini untuk mencetak versi kernel Anda saat ini:
Kemudian gunakan perintah ini untuk mencetak semua kernel yang telah Anda instal yang bukan kernel terbaru Anda:
Pastikan kernel Anda saat ini tidak ada dalam daftar itu. Perhatikan bagaimana ini adalah mayoritas dari perintah terakhir (di bawah). Untuk menghapus dan menghapus kernel lama ini, Anda ingin mengirimkan argumen ini ke:
Sekarang kita dapat melakukan semua yang kita inginkan dengan menggabungkan dua perintah terakhir ini ke dalam kekacauan yang tidak suci ini:
Dan satu perintah itu akan mengurus segalanya untuk Anda. Saya akan mengkonfirmasi bahwa ini berfungsi dengan baik tetapi tidak pernah mempercayai siapa pun di internet. :) Untuk info lebih lanjut, posting blog memberikan penjelasan yang sangat baik tentang apa yang dilakukan setiap bagian dari perintah sehingga membacanya sehingga Anda puas bahwa itu melakukan apa yang Anda inginkan.
sumber
Perintah ini melakukan pekerjaan secara otomatis.
sumber
Synaptic Package Manager dapat digunakan untuk memilih dan menghapus gambar kernel lama dengan mudah.
Jika Anda belum menginstal Synaptic:
Mulai aplikasi dan pilih opsi yang ditampilkan.
Anda harus dapat menyorot semua paket "linux-" dengan versi "2.6.x" di mana x adalah antara 31 hingga 38 sesuai dengan file di folder / boot Anda.
Klik kanan masing-masing paket linux tersebut dan pilih opsi "Mark for Complete Removal". Terakhir klik tombol apply. Ini akan menghapus semua file dan semua file terkait.
/boot
Folder Anda sekarang harus sedikit lebih rapi.sumber
/boot
!Terima kasih atas pos detail masalah Anda, ini membuat saya mengarah ke arah yang benar. Meskipun berguna untuk menyimpan file kernel sebelumnya, Anda dapat menghapus semuanya dalam sekali jalan, periksa posting ini:
Cara Menghapus Semua Header, Gambar, dan Modul Kernel Linux yang Tidak Digunakan
Dilakukan melalui baris perintah. Jika Anda melakukan ini melalui remote gunakan sesuatu seperti WINSCP untuk membuka sesi terminal dan hanya menempelkannya, berfungsi dengan sangat baik.
Di sini disalin dari tautan artikel, saya sarankan Anda membaca artikel lengkap:
sumber
Ini adalah jawaban baru untuk pertanyaan lama, tetapi cara mudah untuk membersihkan hal ini (dan banyak lagi) adalah dengan menginstal Ubuntu Tweak . Untuk menginstalnya :
maka Anda dapat menjalankan Ubuntu Tweak, Going to the "janitor" tab, dan dari sini tinggal tiga klik:
Lebih baik meninggalkan kernel terakhir (Anda tidak pernah tahu) atau kernel yang terkenal untuk keamanan, meskipun; tapi itu mudah disesuaikan.
Anda dapat menggunakan alat yang sama untuk membersihkan banyak hal --- hanya ingat bahwa jika Anda membersihkan cache thumbnail atau cache TB maka sistem harus membangunnya kembali jika diperlukan.
sumber
Saya dapat memperbaiki masalah dengan menggunakan
dpkg
untuk menghapus paket secara langsung. Meskipun paket masih terdaftar dalamdpkg -l
, file dihapus dari/boot
, membebaskan ruang.Setelah ini,
apt-get -f install
perbaiki masalah ketergantungan saya, dan semuanya baik-baik saja dengan dunia.Saya tidak akan menerima jawaban saya ini, karena saya masih perlu tahu apakah saya harus menambah
/boot
ukuran saya atau melakukan sesuatu yang lain.sumber
sudo dpkg --remove linux-headers-3.5.0-28*
sudo dpkg --remove linux-image-3.5.0-28*
untuk gambar, diperiksa melaluidf -h
apt-get -f install
. Juga, jangan lupa nantiapt-get autoremove
, untuk menghapus yang tidak dibutuhkan.Anda dapat berhenti menggunakan partisi / boot terpisah, maka Anda tidak akan memiliki ruang terbatas di sana. Untuk melakukan ini, unmount partisi, kemudian pasang di tempat lain dan salin semua file di sana ke direktori / boot di partisi root Anda, kemudian hapus entri dari / etc / fstab dan instal ulang grub. Misalnya (Anda harus menggunakan partisi yang benar):
Anda kemudian dapat menggunakan gparted untuk menghapus partisi lama / boot, dan mungkin memperluas partisi root untuk menggunakan ruang itu. Untuk memperpanjang partisi root, Anda harus mem-boot dari livecd, dan ruang kosong harus segera ke kanan. Jika partisi / boot saat ini berada di sebelah kiri partisi root, maka Anda harus terlebih dahulu memindahkan partisi root ke kiri, kemudian memperpanjangnya, tetapi ini bisa memakan waktu yang sangat, sangat lama, jadi mungkin tidak sepadan dengan kesulitan.
sumber
lsblk
dapat digunakan untuk menentukan partisi apaMengambil yang terbaik dari jawaban di atas, pendekatan saya yang sudah terbukti benar adalah:
uname -a
untuk menemukan kernel yang berjalan.dpkg -l linux-{headers,image}-\* | grep ^ii
untuk mendaftar semua paket yang terkait dengan kernel yang saat ini diinstal. Ini akan termasuk kernel yang sedang berjalan.sudo apt-get purge linux-{image,headers}-3.16.0-{xx,yy,zz}
untuk menghapus kernel lama. Gantixx,yy,zz
dengan daftar kernel yang ingin Anda hapus — ini semua build yang terdaftar oleh perintah sebelumnya yang lebih tua dari kernel yang saat ini berjalan. Pastikan Anda tidak menghapus kernel yang sedang berjalan — sistem Anda akan menjadi tidak bisa di-boot . Anda mungkin juga perlu mengubah versi kernel dari3.16.0
apa pun yang diinstal pada sistem Anda.sudo apt-get autoremove
— ini akan menghapus dependensi sisa dari kernel lama yang tidak lagi dibutuhkan oleh kernel saat ini, membebaskan lebih banyak ruang.Anda mungkin memiliki file header tanpa menginstal versi kernel yang cocok, atau sebaliknya — cukup sertakan semua versi ini dalam perintah. APT akan mengeluh bahwa beberapa paket tidak dapat dihapus karena tidak diinstal, tetapi itu tidak akan membahayakan.
Jika ada yang gagal ...
sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}
.linux-image
paket diperlukan olehlinux-headers
paket dari versi yang sama (yang juga ingin Anda hapus), dpkg mungkin gagal menyelesaikannya. Periksa kembali outputdpkg -l
dan tentukan sufiks nama paket apa pun pada baris perintah. Sebagai contoh, pada salah satu sistem saya perintah yang akhirnya berhasil adalahsudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae
.sumber
/boot
, hanya tidak cukup untuk paket kernel lain. Dalam kasus-kasus di atas telah bekerja dengan baik. Namun, jangan ragu untuk menambahkandpkg
perintah yang sesuai . Adapunpurge
, tidak, itu bukan semacam 'pemindahan paksa'. Apa yang dilakukannya, berbeda dariremove
, adalah menghapus file konfigurasi juga. Sejak / selama paket kernel tidak menginstal file config,remove
danpurge
akan melakukan hal yang sama untuk paket kernel.Bagi saya keduanya
apt-get purge
dandpkg --remove
keduanya gagal. Jadi saya harus menghapus beberapa imej kernel lama dari / boot denganrm -f
.sumber
/boot
partisi sudah penuh. Perintah ini mencoba terlebih dahulu untuk memutakhirkan kernel ke yang terbaru dan macetNo space left on device
saat membuatinitrd.img
Daftar semua kernel:
Tampilkan kernel saat ini:
Daftar semua kernel KECUALI yang sekarang:
Pastikan kernel Anda saat ini tidak ada dalam daftar itu.
Hapus semua kernel KECUALI yang sekarang:
Bersihkan barang-barang lainnya:
Jika masih memberi Anda kesalahan ruang disk boot untuk menginstal / menghapus file kemudian langsung menghapus salah satu gambar TUA dari direktori / boot,
CATATAN: Harap tinjau lagi gambar kernel saat ini sebelum menghapus gambar apa pun.
sumber
linux-headers-*
bukan kernel. Paket kernel adalah yang bernamalinux-image-*
. Yang disebutkanlinux-headers-*
adalah paket pengembangan untuk mengkompilasi modul kernel: mereka tidak tinggal di direktori / boot dan tidak diperlukan untuk penggunaan sehari-hari umum sistem Anda.File yang tercantum dalam / boot lakukan termasuk beberapa gambar kernel lama (
vmlinuz*
) dan dikompilasi gambar initrd (initrd.img*
) bagi mereka kernel, yang merupakan indikasi bahwa Anda masih memiliki banyak paket kernel lama dipasang.Anda harus dapat mendaftarkan kernel yang sudah diinstal
(Perhatikan bahwa ini mungkin akan mengembalikan paket yang juga bukan kernel).
Biasanya tidak perlu menginstal lebih dari dua kernel - yang saat ini digunakan dan yang sebelumnya (sebagai fallback). Jadi Anda dapat mulai menghapus yang lama, satu per satu, seperti ini:
Pastikan Anda mengganti "3.2.0-23-generic" dengan versi kernel aktual yang ingin Anda hapus! Juga, jangan hapus paket seperti
linux-image-generic
. Anda harus benar-benar berhati-hati untuk tidak menghapus kernel yang sedang berjalan atau Anda tidak akan bisa boot (Ubuntu mungkin atau mungkin tidak memperingatkan Anda tentang melakukan ini).Anda dapat menemukan kernel yang sedang berjalan dengan:
sumber
Saya punya masalah ini dan lebih banyak lagi karena saya menghapus beberapa
initrd-img-xxx
file secara manual dari / boot dan saya punya masalah bahwa versi lama ini terus dihasilkan dan mengisi/boot
folder. Untuk memperbaikinya saya mengikuti yang berikut:Anda akan mengedit file konfigurasi teks sebagai superuser, jadi rekatkan yang berikut ke terminal:
Temukan baris
update_initramfs=yes
dan ubah keupdate_initramfs=no
. Simpan dan keluar dari file, lalu jalankan:Itu memecahkan masalah saya. Itu didasarkan pada blog ini
Mudah-mudahan, semuanya harus baik-baik ketika anda reboot, dan kemudian Anda dapat mencoba mengubah
no
kembali keyes
dalamupdate-initramfs.conf
.sumber
Saya menunjukkan bahwa masih pada tahun 2017 pertanyaan ini memiliki komentar dan jawaban baru tetapi melewatkan satu jawaban yang menurut saya sangat berguna di sini:
Ubuntu sebagai OS desktop untuk penggunaan sehari-hari yang sederhana tidak memiliki alasan untuk diinstal dengan partisi \ boot terpisah dan sesuatu seperti ini TIDAK akan menawarkan sesuatu kepada "pengguna biasa" ... Jadi solusinya adalah instalasi baru tanpa partisi \ boot dan ini cara Anda tidak akan pernah memiliki masalah seperti itu
PS: Jawaban saya dapat dihapus atau ditambahkan dalam jawaban yang diterima ... (Saya pikir ini akan membantu beberapa orang dengan cara ini)
sumber
Utilitas super bermanfaat yang akan menghapus partisi boot Anda
Gunakan dengan risiko Anda sendiri, tetapi itu berhasil untuk saya:
sumber
Dalam aptitude atau synaptic ada bagian "paket lama atau yang diinstal secara manual". Seharusnya ada paket linux lama di sana.
sumber
Ada skrip bash yang saya tulis berikan di bawah ini yang membuat prosesnya sedikit lebih ramah pengguna.
YMMV - itu dibuat untuk Mint 14. Masih belajar BASH jadi mungkin agak kikuk. Gunakan dengan risiko sendiri, tetapi itu berhasil untuk saya!
sumber
[Sebagai noob AskUbuntu, saya tidak bisa berkomentar sampai reputasi = 50 jadi jangan pilih-pilih karena ini.]
Server saya juga melakukan ini. Secara harfiah tidak ada jawaban yang diharapkan di sini yang berfungsi karena ini membutuhkan ruang kerja on / boot untuk menyelesaikannya. Jika partisi boot penuh, ia akan tiba-tiba berakhir tanpa menghapus gambar apa pun.
Satu-satunya hal yang berhasil bagi saya adalah meninjau gambar saat ini, kemudian secara manual
sudo rm filename
untuk file gambar tertua (masing-masing memiliki -3.16.0-30 dalam nama mereka). Setelah itu selesai, kemudiansudo apt-get autoremove
memiliki ruang gerak yang diperlukan untuk melakukan tugasnya. Itu menyoroti beberapa kesalahan yang terkait dengan versi itu, misalnya: "depmod: FATAL: tidak dapat memuat /boot/System.map-3.16.0-30-generic: Tidak ada file atau direktori" "tetapi itulah yang diharapkan.Setelah selesai,
df
mengembalikan 42% yang digunakan untuk / boot untuk menunjukkan bahwa itu sehat kembali.sumber
apt-get
memiliki cukup ruang untuk melanjutkan, dan b), di manaapt-get
gagal karena disk terlalu penuh. Itu pos lainnya.Saya menulis skrip bash ini untuk secara selektif membersihkan kernel lama sekaligus:
Semua kode dan instruksi bash termasuk dalam tautan.
sumber
Simpan skrip ini sebagai
/usr/local/bin/remove_kernels.sh
(jangan lupa untuk memberikan izin eksekusisudo chmod 755 /usr/local/bin/remove_kernels.sh
):Kemudian untuk menghapus semua kernel lama cukup ketik:
sudo remove_kernels.sh
sumber
/ Partisi boot terkadang agak aneh
jangan langsung mulai menghapus file kernal.
Langkah-langkah untuk diikuti
Periksa kernal yang terinstal saat ini digunakan oleh sistem linux
uname -r
ini akan memberi Anda nama gambar kernal yang diinstal pada sistem
Sekarang mulailah menghapus file-file tambahan kecuali yang khusus diinstal pada sistem Anda
apt-get remove linux-image-XXXXX
Hapus juga file tajuk
apt-get remove linux-headers-XXXXX
Juga mungkin ada kondisi di mana
apt
telah berhenti bekerja, dalam hal ini beralih ke / bootcd /boot
Mulai menghapus file secara manual tetapi sangat hati-hati juga perlu diingat tidak menghapus
installed one's
file kernal dari sistem Anda.rm linux-image-XXXXX
rm linux-image-extra-XXXXXX
Setelah menghapus file yang benar, instal pembersihan parsial jika ada
apt-get -f install
Hapus file tambahan yang ada di sana saat file boot dibersihkan secara manual
apt-get autoremove
Perbarui grub
update-grub
Terakhir perbarui paket sistem Anda
apt-get update
sumber
Jika Anda tidak dapat menghapus lebih banyak file yang tidak digunakan dan jika Anda memiliki partisi lain dengan / atau ruang kosong pada perangkat yang sama, Anda dapat mengubah ukuran / mem-boot partisi dengan parted / gparted . (Termasuk di media instalasi juga.)
Peringatan : Mengubah ukuran partisi adalah operasi berbahaya , simpan data penting Anda di media lain sebelum melakukannya!
sumber