Em uma busca aparentemente interminável para fazer o Vagrant funcionar, estou tentando atualizar o Fedora. O Vagrant precisa do VirtualBox, o VirtualBox precisa de fontes do kernel e as fontes do kernel estão disponíveis apenas para a última versão do kernel.
$ uname -r
4.3.5-300.fc23.x86_64
Eu tentei atualizar o sistema.
$ sudo dnf update
Last metadata expiration check: 2:03:57 ago on Tue May 10 11:20:17 2016.
Dependencies resolved.
Nothing to do.
Complete!
O sistema já está claramente atualizado.
$ sudo dnf install kernel
Last metadata expiration check: 2:05:00 ago on Tue May 10 11:20:17 2016.
Package kernel-4.4.8-300.fc23.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!
Eu tentei remover o kernel atual:
$ sudo dnf remove kernel- (uname -r)
Conclua. Vamos ver o que está instalado:
$ rpm -qva "kernel-*"
kernel-core-4.4.8-300.fc23.x86_64
kernel-core-4.4.4-301.fc23.x86_64
kernel-headers-4.4.8-300.fc23.x86_64
kernel-modules-4.4.8-300.fc23.x86_64
kernel-devel-4.4.8-300.fc23.x86_64
kernel-modules-4.4.4-301.fc23.x86_64
Tudo bem até agora.
Então eu reiniciei ....
Apenas para descobrir que três kernels foram listados no Grub: 4.3.5-300.fc23.x86_64, e dois muito mais antigos da ramificação 4.2.
$ rpm -qva "kernel-*"
kernel-modules-4.3.5-300.fc23.x86_64
kernel-core-4.4.8-300.fc23.x86_64
kernel-core-4.4.4-301.fc23.x86_64
kernel-core-4.3.5-300.fc23.x86_64
kernel-headers-4.4.8-300.fc23.x86_64
kernel-modules-4.4.8-300.fc23.x86_64
kernel-devel-4.4.8-300.fc23.x86_64
kernel-modules-4.4.4-301.fc23.x86_64
Que diabos está acontecendo aqui?
Edit: Mais tarde, tentei atualizar o grub para pegar o novo kernel.
$ cd /boot/grub2
$ mv grub.cfg grub.cfg.old
$ sudo grub2-mkconfig -o grub.cfg.new
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.8-300.fc23.x86_64
Found initrd image: /boot/initramfs-4.4.8-300.fc23.x86_64.img
Found linux image: /boot/vmlinuz-4.4.4-301.fc23.x86_64
Found initrd image: /boot/initramfs-4.4.4-301.fc23.x86_64.img
Found linux image: /boot/vmlinuz-4.3.5-300.fc23.x86_64
Found initrd image: /boot/initramfs-4.3.5-300.fc23.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-0468365313db460f867aa0a7c6284ace
Found initrd image: /boot/initramfs-0-rescue-0468365313db460f867aa0a7c6284ace.img
Posso confirmar que o novo arquivo de configuração tem as entradas corretas:
$ grep 4.4 grub.cfg
menuentry 'Fedora (4.4.8-300.fc23.x86_64) 23 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.3.5-300.fc23.x86_64-advanced-29e2d74b-255e-44fa-b8e7-edb54b33f225' {
linux16 /vmlinuz-4.4.8-300.fc23.x86_64 root=/dev/mapper/fedora_deepwinter-root ro rd.lvm.lv=fedora_deepwinter/root rd.luks.uuid=luks-b09d62d7-9782-42d5-890d-f117ccb8a1cc rd.lvm.lv=fedora_deepwinter/swap rhgb quiet splash acpi_backlight=vendor acpi_osi='!Windows 2013' acpi_osi='!Windows 2012' LANG=en_GB.UTF-8
initrd16 /initramfs-4.4.8-300.fc23.x86_64.img
menuentry 'Fedora (4.4.4-301.fc23.x86_64) 23 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.3.5-300.fc23.x86_64-advanced-29e2d74b-255e-44fa-b8e7-edb54b33f225' {
linux16 /vmlinuz-4.4.4-301.fc23.x86_64 root=/dev/mapper/fedora_deepwinter-root ro rd.lvm.lv=fedora_deepwinter/root rd.luks.uuid=luks-b09d62d7-9782-42d5-890d-f117ccb8a1cc rd.lvm.lv=fedora_deepwinter/swap rhgb quiet splash acpi_backlight=vendor acpi_osi='!Windows 2013' acpi_osi='!Windows 2012' LANG=en_GB.UTF-8
initrd16 /initramfs-4.4.4-301.fc23.x86_64.img
Agora, eu não estou com inicialização dupla nem nada complicado como esse. Eu tenho um disco rígido com uma instalação do Fedora nele. Como pode ser que o grub.cfg tenha as entradas certas, mas quando eu reinicio o computador, ele ainda mostra 4.2.4, 4.2.3 e 4.3.5? Poderia ser um problema de ponto de montagem com múltiplos / botas?
$ mount | grep boot
/dev/sda2 on /boot type ext4 (rw,relatime,seclabel,data=ordered)
$ ls /dev/ | grep sd
sda
sda1
sda2
sda3
sda4
Os arquivos do kernel estão definitivamente lá:
$ ls /boot | grep 4.4
config-4.4.4-301.fc23.x86_64
config-4.4.8-300.fc23.x86_64
initramfs-4.4.4-301.fc23.x86_64.img
initramfs-4.4.8-300.fc23.x86_64.img
System.map-4.4.4-301.fc23.x86_64
System.map-4.4.8-300.fc23.x86_64
vmlinuz-4.4.4-301.fc23.x86_64
vmlinuz-4.4.8-300.fc23.x86_64
Talvez eu deva tentar reinstalar o grub no disco rígido ...
$ sudo grub2-install --target=/dev/sda
grub2-install: error: /usr/lib/grub/dev/sda/modinfo.sh doesn't exist. Please specify --target or --directory.
$ sudo grub2-install --directory=/boot
grub2-install: error: /boot/modinfo.sh doesn't exist. Please specify --target or --directory.
Eu não sei o que modinfo.sh é, mas parece importante ...
Neste ponto, não sei ao certo por que o Grub não está pegando os kernels ou de onde está carregando sua configuração.
Tags kernel updates virtualbox fedora linux