Pada beberapa mesin Ubuntu saya terus-menerus menghadapi masalah partisi boot penuh walaupun saya selalu menghapus semua kernel lama. Masalahnya tampaknya terjadi, karena banyak initrd
file ada di partisi boot meskipun kernel yang terkait sebenarnya tidak diinstal. Memberi contoh:
root@Jacobi:/boot# ls -lah
insgesamt 202M
drwxr-xr-x 3 root root 3,0K Jan 30 10:03 .
drwxr-xr-x 25 root root 4,0K Jan 30 10:03 ..
-rw-r--r-- 1 root root 1,2M Dez 11 15:36 abi-4.4.0-104-generic
-rw-r--r-- 1 root root 1,2M Jan 9 22:28 abi-4.4.0-109-generic
-rw-r--r-- 1 root root 1,2M Jan 19 14:06 abi-4.4.0-112-generic
-rw-r--r-- 1 root root 187K Dez 11 15:36 config-4.4.0-104-generic
-rw-r--r-- 1 root root 187K Jan 9 22:28 config-4.4.0-109-generic
-rw-r--r-- 1 root root 187K Jan 19 14:06 config-4.4.0-112-generic
drwxr-xr-x 5 root root 1,0K Jan 30 10:03 grub
-rw-r--r-- 1 root root 10M Jan 30 10:03 initrd.img-3.13.0-39-generic
-rw-r--r-- 1 root root 10M Jan 30 10:02 initrd.img-4.4.0-101-generic
-rw-r--r-- 1 root root 10M Jan 30 10:02 initrd.img-4.4.0-103-generic
-rw-r--r-- 1 root root 38M Jan 30 10:02 initrd.img-4.4.0-104-generic
-rw-r--r-- 1 root root 38M Jan 30 10:02 initrd.img-4.4.0-109-generic
-rw-r--r-- 1 root root 10M Jan 30 10:03 initrd.img-4.4.0-38-generic
-rw-r--r-- 1 root root 10M Jan 30 10:03 initrd.img-4.4.0-45-generic
-rw-r--r-- 1 root root 10M Jan 30 10:02 initrd.img-4.4.0-59-generic
-rw-r--r-- 1 root root 10M Jan 30 10:02 initrd.img-4.4.0-77-generic
-rw-r--r-- 1 root root 10M Jan 30 10:02 initrd.img-4.4.0-78-generic
-rw-r--r-- 1 root root 10M Jan 30 10:02 initrd.img-4.4.0-81-generic
-rw-r--r-- 1 root root 179K Jan 28 2016 memtest86+.bin
-rw-r--r-- 1 root root 181K Jan 28 2016 memtest86+.elf
-rw-r--r-- 1 root root 181K Jan 28 2016 memtest86+_multiboot.bin
-rw------- 1 root root 3,8M Dez 11 15:36 System.map-4.4.0-104-generic
-rw------- 1 root root 3,8M Jan 9 22:28 System.map-4.4.0-109-generic
-rw------- 1 root root 3,8M Jan 19 14:06 System.map-4.4.0-112-generic
-rw------- 1 root root 6,8M Dez 11 15:36 vmlinuz-4.4.0-104-generic
-rw------- 1 root root 6,8M Jan 9 22:28 vmlinuz-4.4.0-109-generic
-rw------- 1 root root 6,8M Jan 19 14:06 vmlinuz-4.4.0-112-generic
Tetapi hanya linux-image-4.4.0-104-generic dan linux-image-4.4.0-109-generic yang diinstal:
root@Jacobi:/boot# dpkg -l linux-image-\* | grep ^ii
ii linux-image-4.4.0-104-generic 4.4.0-104.127 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-4.4.0-109-generic 4.4.0-109.132 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii linux-image-extra-4.4.0-104-generic 4.4.0-104.127 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii linux-image-extra-4.4.0-109-generic 4.4.0-109.132 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
Jika saya menghapus file initrd yang tidak perlu secara manual mereka akan dihasilkan lagi segera setelah saya mencoba melakukan upgrade.
Apa yang bisa menjadi penyebab masalah ini dan bagaimana saya bisa menyingkirkan file-file itu secara permanen?
boot
grub2
partitioning
kernel
pengguna5950
sumber
sumber
apt-get autoremove
.Jawaban:
Anda harus memeriksa kernel yang dihapus sebagian
dan hapus dengan misalnya
sudo apt-get purge linux-image-4.4.0-101-generic
.Purging akan menghapus aturan generasi initramfs dari
/var/lib/initramfs-tools/
.Jika tidak membantu, Anda dapat menghapusnya secara manual dari daftar initramfs:
Biasanya saya menjalankan
purge-old-kernels
diikutisudo apt-get autoremove
hanya memiliki 2 kernel baru.Anda dapat menginstal ulang kernel yang diinstal dengan initramfses mereka:
sumber
initrd
file yang tidak perlu dari boot secara manual sekali lagi untuk membebaskan beberapa ruang di sana, dan masalah diselesaikan! Terima kasih!rm
untuk apa pun yang dirilis keinitrd
atau kernel atau header. Ada beberapa perintah yang tersedia yang akan menangani penghapusan file kernel / header / initrd.img yang dihapus sebagian untuk Anda. Lihatupdate-initramfs
. Lihat jawaban saya di bawah ini untuk lebih jelasnya.Jika Anda sudah menggunakan
dpkg
untuk membersihkan kernel / header dan jika Anda telah diperiksadpkg -l
dan masih tidak melihat kernel / header dipasang di sana, tetapi Anda masih melihat referensi untuk ini kernel lama di/boot
dalam bentukinitrd-img
file, maka cara yang tepat untuk membersihkan referensi dan file ini adalah denganupdate-initramfs
perintah.Misalnya, jika Anda baru saja
4.4.0-109
menginstal, tetapi Anda masih melihat yang berikut ini di/boot
:Anda dapat dengan aman menghapus
4.4.0-104
dan4.4.0-103
dari/boot
dengan perintah berikut:Dua perintah pertama menghapus referensi ke kernel tersebut dalam
initramfs
aturan pembuatan serta file dalam/boot
. Perintah terakhir memberitahu initramfs untuk membuat ulanginitrd.img
file berdasarkan aturan yang diperbarui.Secara teoritis Anda juga bisa menggunakan
untuk menghapus beberapa kernel sekaligus, tetapi untuk beberapa alasan ini tidak berhasil untuk saya.
sumber