I carried out an update today. My init-system is OpenRC. Installed kernel is: 6.6.44-3-lts.
This update has provided a new kernel: linux-lts-6.6.47-1
I have installed all this successfully.
Now to the problem: After the update, I ran “update-grub” and “grub-mkconfig -o /boot/grub/grub.cfg”. A problem appeared. I had never had a problem like this before.
The following message after “update-grub”:
GRUB-Konfigurationsdatei wird erstellt …
Linux-Abbild gefunden: /boot/vmlinuz-linux-lts
Initrd-Abbild gefunden: /boot/intel-ucode.img /boot/initramfs-linux-lts.img
Found fallback initrd image(s) in /boot: intel-ucode.img initramfs-linux-lts-fallback.img
Warnung: Zur Erkennung anderer bootfähiger Partitionen wird os-prober ausgeführt.
Dessen Ausgabe wird zur Erkennung bootfähiger Programmdateien und Erzeugen neuer Boot-Einträge verwendet.
/dev/mapper/control: open failed: Kein passendes Gerät gefunden
Failure to communicate with kernel device-mapper driver.
Check that device-mapper is available in the kernel.
Incompatible libdevmapper 1.02.199 (2024-07-12) and kernel driver (unknown version).
Windows Boot Manager auf /dev/sda2@/efi/Microsoft/Boot/bootmgfw.efi gefunden
Bootmenü-Eintrag für UEFI-Firmware-Einstellungen wird hinzugefügt …
Found memtest86+ image: /boot/memtest86+/memtest.bin
abgeschlossen
And after “grub-mkconfig -o /boot/grub/grub.cfg” this message appeared:
GRUB-Konfigurationsdatei wird erstellt …
Linux-Abbild gefunden: /boot/vmlinuz-linux-lts
Initrd-Abbild gefunden: /boot/intel-ucode.img /boot/initramfs-linux-lts.img
Found fallback initrd image(s) in /boot: intel-ucode.img initramfs-linux-lts-fallback.img
Warnung: Zur Erkennung anderer bootfähiger Partitionen wird os-prober ausgeführt.
Dessen Ausgabe wird zur Erkennung bootfähiger Programmdateien und Erzeugen neuer Boot-Einträge verwendet.
/dev/mapper/control: open failed: Kein passendes Gerät gefunden
Failure to communicate with kernel device-mapper driver.
Check that device-mapper is available in the kernel.
Incompatible libdevmapper 1.02.199 (2024-07-12) and kernel driver (unknown version).
Windows Boot Manager auf /dev/sda2@/efi/Microsoft/Boot/bootmgfw.efi gefunden
Bootmenü-Eintrag für UEFI-Firmware-Einstellungen wird hinzugefügt …
Found memtest86+ image: /boot/memtest86+/memtest.bin
abgeschlossen
What should I do now? I have already searched the Internet for these errors and have not really found anything.
If I restart the PC, I will no longer be able to start Artix-Linux.
I have already tried to reinstall the boot loader, but after "artix-chroot" I get an error warning that the command could not be found.
I would try to install "linux" to compare if the Problem is there too.
Isn't “update-grub” just a wrapper that does “grub-mkconfig -o /boot/grub/grub.cfg” ?
So you would do one or the other. Both seems redundant?
But also you shouldn't need to run either when just updating the kernel. It's only needed when changing the kernel type i.e. -lts, -zen etc.
My advice :
Post your /boot/grub/grub.cfg
Also as a failsafe before you try to reboot go here https://rodsbooks.com/refind/getting.html
and get the "A USB flash drive image" file. Unzip and use dd to write the .img file to a usb drive.
If grub fails, 99% of the time you'll get into your system by booting from the rEFInd boot disk you just created far more easily than by trying to use the grub rescue console.
rEFInd auto detects your installations unlike grub which needs it's cfg file.
Why not? GRUB should still look for
/boot/vmlinuz-linux-lts, it's not necessary to re-run grub-install or grub-mkconfig after updates - unless a different kernel has been installed.
Was glibc or bash among the updates? Anyway, worst (unlikely) case is a boot failure, which can be cured with a live Artix ISO. You seem to know about chroot and such, so go ahead!
Yes, I had that idea too. Maybe I will test it out. But does the problem then only seem to be with linux-lts?
I used to run “grub-mkconfig -o /boot/grub/grub.cfg” after kernel updates. But once after a grub update my system stopped working because I didn't run update-grub. Since then I always run both things. It has always worked well so far.
Okay, thanks for the tip with refind. I will download it.
I used to run “grub-mkconfig -o /boot/grub/grub.cfg” after kernel updates. But once after a grub update my system stopped working because I didn't run update-grub. Since then I always run both things. It has always worked well so far.
Well, I don't really have much experience with chroot. I used it back when I installed the system and back when my bootloader was shot. I followed the instructions and was able to rescue my bootloader.
But now it no longer works.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt8'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8 53742ffe-02dc-9ea3-b836-4573be0854ec
else
search --no-floppy --fs-uuid --set=root 53742ffe-02dc-9ea3-b836-4573be0854ec
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=de_DE
insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Artix Linux' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-53742ffe-02dc-9ea3-b836-4573be0854ec' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt8'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8 53742ffe-02dc-9ea3-b836-4573be0854ec
else
search --no-floppy --fs-uuid --set=root 53742ffe-02dc-9ea3-b836-4573be0854ec
fi
echo 'Linux linux-lts wird geladen …'
linux /boot/vmlinuz-linux-lts root=UUID=53742ffe-02dc-9ea3-b836-4573be0854ec rw loglevel=3 quiet
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/intel-ucode.img /boot/initramfs-linux-lts.img
}
submenu 'Erweiterte Optionen für Artix Linux' $menuentry_id_option 'gnulinux-advanced-53742ffe-02dc-9ea3-b836-4573be0854ec' {
menuentry 'Artix Linux, mit Linux linux-lts' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-53742ffe-02dc-9ea3-b836-4573be0854ec' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt8'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8 53742ffe-02dc-9ea3-b836-4573be0854ec
else
search --no-floppy --fs-uuid --set=root 53742ffe-02dc-9ea3-b836-4573be0854ec
fi
echo 'Linux linux-lts wird geladen …'
linux /boot/vmlinuz-linux-lts root=UUID=53742ffe-02dc-9ea3-b836-4573be0854ec rw loglevel=3 quiet
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/intel-ucode.img /boot/initramfs-linux-lts.img
}
menuentry 'Artix Linux, with Linux linux-lts (fallback initramfs)' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-53742ffe-02dc-9ea3-b836-4573be0854ec' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt8'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8 53742ffe-02dc-9ea3-b836-4573be0854ec
else
search --no-floppy --fs-uuid --set=root 53742ffe-02dc-9ea3-b836-4573be0854ec
fi
echo 'Linux linux-lts wird geladen …'
linux /boot/vmlinuz-linux-lts root=UUID=53742ffe-02dc-9ea3-b836-4573be0854ec rw loglevel=3 quiet
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/intel-ucode.img /boot/initramfs-linux-lts-fallback.img
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
insmod bli
fi
### END /etc/grub.d/25_bli ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (auf /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-F506-12FB' {
insmod part_gpt
insmod fat
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 F506-12FB
else
search --no-floppy --fs-uuid --set=root F506-12FB
fi
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
fwsetup --is-supported
if [ "$?" = 0 ]; then
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
fi
fi
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###
### BEGIN /etc/grub.d/60_memtest86+ ###
if [ "${grub_platform}" == "pc" ]; then
menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8 53742ffe-02dc-9ea3-b836-4573be0854ec
linux16 /boot/memtest86+/memtest.bin
}
fi
### END /etc/grub.d/60_memtest86+ ###
These 28 packages have been installed:
acpid-2.0.34-2 artix-branding-base-20240823-1 box2d-2.4.2-1 clang-18.1.8-2 dhcpcd-10.0.10-1
f2fs-tools-1.16.0-3 firefox-129.0.2-1 firefox-i18n-de-129.0.2-1 graphviz-12.1.0-1
intel-ucode-20240813-2 kexec-tools-2.0.29-1 libbluray-1.3.4-2 libimagequant-4.3.3-1
libimobiledevice-1.3.0-14 libnvme-1.10-1 libpcap-1.10.4-2 libreoffice-fresh-24.8.0-1
libreoffice-fresh-de-24.8.0-1 libsasl-2.1.28-5 libtraceevent-1:1.8.3-1 libwmf-0.2.13-3
linux-headers-6.10.6.artix1-1 linux-lts-6.6.47-1 linux-lts-headers-6.6.47-1
lsb-release-2.0.r53.a86f885-2 protobuf-27.3-2 xdg-dbus-proxy-0.1.6-1 yaml-cpp-0.8.0-2
I have now changed the kernel and installed linux-6.10.6.artix1-1.
After executing the command, I got the same error as with linux-lts:
Command: grub-mkconfig -o /boot/grub/grub.cfg
GRUB-Konfigurationsdatei wird erstellt …
Linux-Abbild gefunden: /boot/vmlinuz-linux-lts
Initrd-Abbild gefunden: /boot/intel-ucode.img /boot/initramfs-linux-lts.img
Found fallback initrd image(s) in /boot: intel-ucode.img initramfs-linux-lts-fallback.img
Linux-Abbild gefunden: /boot/vmlinuz-linux
Initrd-Abbild gefunden: /boot/intel-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: intel-ucode.img initramfs-linux-fallback.img
Warnung: Zur Erkennung anderer bootfähiger Partitionen wird os-prober ausgeführt.
Dessen Ausgabe wird zur Erkennung bootfähiger Programmdateien und Erzeugen neuer Boot-Einträge verwendet.
/dev/mapper/control: open failed: Kein passendes Gerät gefunden
Failure to communicate with kernel device-mapper driver.
Check that device-mapper is available in the kernel.
Incompatible libdevmapper 1.02.199 (2024-07-12) and kernel driver (unknown version).
Windows Boot Manager auf /dev/sda2@/efi/Microsoft/Boot/bootmgfw.efi gefunden
Bootmenü-Eintrag für UEFI-Firmware-Einstellungen wird hinzugefügt …
Found memtest86+ image: /boot/memtest86+/memtest.bin
abgeschlossen
I am desperate, annoyed and stressed with these errors.
So after going back and forth several times. typing in several commands that did nothing, I decided to simply restart the system. I was simply fed up. And what happened, grub recognized artix on boot.
It probably loaded the necessary firmware during the boot process and everything worked. Now I'm running the new linux-lts-kernel 6.6.47-1-lts.
I have wasted a whole day looking for a problem. Simply for nothing.
If the problem had been unsolvable, I would have tried other steps. If that hadn't worked, then I was already in the process of installing a completely new Linux system.
Nothing wrong with being a bit cautious when you suspect an issue with a grub update.
And you may have learnt some new things along the way ?
That's looking on the bright side ;)
Well, didn't we tell you so? GRUB doesn't break just because the kernel got updated (unlike LILO).
Since the kernel was among the updates, grub-mkconfig couldn't load the newer module. Please, mark this thread as solved.
Yes, I have actually learned new things and refreshed old ones. ;)
I agree.