Gostaria de atualizar meu Ubuntu de 22.04 para 24.04, porém estou sem mais 10 MB na /boot
partição.
Eu queria verificar quais kernels do Linux ainda estavam instalados no meu sistema, pois sudo apt autoremove
não havia mais nada para remover.
E aqui vem minha confusão: verificar com dpkg -l | grep linux-image
retorna estes kernels:
ii linux-image-5.15.0-119-generic 5.15.0-119.129 amd64 Signed kernel image generic
ii linux-image-6.5.0-44-generic 6.5.0-44.44~22.04.1 amd64 Signed kernel image generic
ii linux-image-6.8.0-40-generic 6.8.0-40.40~22.04.3 amd64 Signed kernel image generic
ii linux-image-generic 5.15.0.119.119 amd64 Generic Linux kernel image
ii linux-image-generic-hwe-22.04 6.8.0-40.40~22.04.3 amd64 Generic Linux kernel image
ii linux-image-unsigned-4.19.0-041900-generic 4.19.0-041900.201810221809 amd64 Linux kernel image for version 4.19.0 on 64 bit x86 SMP
Legal, parece que eu poderia largar 5.15
e 4.19
pelo menos... checando com uname -r
vejo 6.8.0-40-generic
que deveria ser o atual. Eu esperaria que o kernel anterior fosse 6.5.0-44-generic
. No entanto, checando com ls -l /boot
vejo esta surpresa:
total 522700
-rw-r--r-- 1 root root 1508678 Okt 23 2018 abi-4.19.0-041900-generic
-rw-r--r-- 1 root root 219610 Okt 23 2018 config-4.19.0-041900-generic
-rw-r--r-- 1 root root 262072 Aug 2 16:15 config-5.15.0-119-generic
-rw-r--r-- 1 root root 280697 Jun 18 15:18 config-6.5.0-44-generic
-rw-r--r-- 1 root root 287007 Jul 30 16:33 config-6.8.0-40-generic
drwxr-xr-x 3 root root 16384 Jan 1 1970 efi
drwxr-xr-x 5 root root 4096 Sep 9 16:16 grub
lrwxrwxrwx 1 root root 29 Aug 21 12:21 initrd.img -> initrd.img-5.15.0-119-generic
-rw-r--r-- 1 root root 76512349 Jun 21 10:34 initrd.img-4.19.0-041900-generic
-rw-r--r-- 1 root root 114952176 Aug 21 12:22 initrd.img-5.15.0-119-generic
-rw-r--r-- 1 root root 129903766 Aug 19 11:48 initrd.img-6.5.0-44-generic
-rw-r--r-- 1 root root 133025202 Aug 27 10:54 initrd.img-6.8.0-40-generic
lrwxrwxrwx 1 root root 27 Aug 21 12:21 initrd.img.old -> initrd.img-6.8.0-40-generic
drwx------ 2 root root 16384 Sep 28 2018 lost+found
-rw-r--r-- 1 root root 182800 Feb 6 2022 memtest86+.bin
-rw-r--r-- 1 root root 184476 Feb 6 2022 memtest86+.elf
-rw-r--r-- 1 root root 184980 Feb 6 2022 memtest86+_multiboot.bin
-rw-r--r-- 1 root root 17 Okt 23 2018 retpoline-4.19.0-041900-generic
-rw------- 1 root root 4324765 Okt 23 2018 System.map-4.19.0-041900-generic
-rw------- 1 root root 6289146 Aug 2 16:15 System.map-5.15.0-119-generic
-rw------- 1 root root 8269177 Jun 18 15:18 System.map-6.5.0-44-generic
-rw------- 1 root root 8654773 Jul 30 16:33 System.map-6.8.0-40-generic
lrwxrwxrwx 1 root root 26 Aug 21 12:21 vmlinuz -> vmlinuz-5.15.0-119-generic
-rw------- 1 root root 8603504 Okt 23 2018 vmlinuz-4.19.0-041900-generic
-rw------- 1 root root 11704712 Aug 2 16:43 vmlinuz-5.15.0-119-generic
-rw------- 1 root root 14263016 Jun 18 15:19 vmlinuz-6.5.0-44-generic
-rw------- 1 root root 14928264 Jul 30 17:17 vmlinuz-6.8.0-40-generic
lrwxrwxrwx 1 root root 24 Aug 21 12:21 vmlinuz.old -> vmlinuz-6.8.0-40-generic
Com base nisso, os vvmlinuz
links para 5.15
e o 6.8.0
é vinculado por vmlinuz.old
. Como isso é possível?
Qual informação está correta? Isso já é depois de uma reinicialização nova.
E é seguro se eu agora soltar ( purge
) pelo menos todos os arquivos do kernel para 4.19
? Isso deve liberar espaço em disco suficiente para a atualização da distro...
Muito obrigado pela sua ajuda!
Se você está perguntando qual kernel está em execução no momento , então
uname -r
está sempre correto, porque ele pede ao kernel em execução para relatar sua própria versão.O nome do arquivo em /boot não significa muito, porque você está inicializando através do GRUB, que tem um menu de inicialização (gerado automaticamente) que pode oferecer vários kernels para inicializar e os ordenará por versão em vez de nome de arquivo.
Na verdade, o GRUB não usa os
/boot/vmlinuz
links simbólicos de forma alguma – seu gerador de menu vai diretamente para os/boot/vmlinuz-*-generic
arquivos, de modo que seria capaz de oferecer entradas de menu para todos eles e não apenas para os dois últimos. Isso significa que, assim que o kernel 6.8.x foi instalado, o grub-mkconfig escolheu automaticamente 'vmlinuz-6.8.0-40-generic' como o kernel "mais recente" disponível.Você pode ver tudo isso
/boot/grub/grub.cfg
executando manualmente o grub-mkconfig e lendo sua saída.(Deixando isso de lado, muitas coisas são possíveis porque o kernel não olha realmente dentro de /boot durante o processo de inicialização, já que tanto o vmlinuz quanto o initrd são totalmente carregados na memória pelo bootloader. Então é possível inicializar kernels de outros lugares além de /boot – ou acabar com situações onde o bootloader e o /etc/fstab têm ideias diferentes sobre o que é /boot, de modo que "ls /boot" encontra o kernel A, mas o GRUB encontra o kernel B. Este último é uma confusão comum com algumas distros do tipo "faça você mesmo"...)
Supondo que o kernel atual funcione corretamente, você pode remover com segurança todos os outros kernels dos quais não precisa (incluindo até mesmo o 6.5.x, se o apt oferecer removê-lo).
Em uma emergência, os arquivos System.map podem ser removidos manualmente ou compactados para liberar alguns MB de espaço (o processo de inicialização não precisa deles, e qualquer software que precise deles — algo raro — pode usar /proc/kallsyms para os símbolos do kernel em execução no momento).