Endeavour - Kernel panic (0,0) after repartitioning for dual boot

Firstly, I’ve noticed that many people are having trouble after installing the new Endeavour ISO. I didn’t use the new ISO in any form so it shouldn’t be related to this.

I’m currently having Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (0,0) errors after repartitioning my system to dual boot another Linux distro. Endeavour was the only OS on my system’s only disk until yesterday, which was when I decided to reduce its size to make space for another distro to test (Artix). Thus, there was no GRUB menu until yesterday. This error occurs on the top-level entry for Endeavour.

I’ve tried running sudo grub-mkconfig -o /boot/grub/grub.cfg but to no avail. However, my system still boots up fine through fallback initramfs within the advanced settings. I could just use that, but I would prefer solving this too, just in case. The following is my /boot/grub/grub.cfg, which might be slightly wonky as I’ve done some bad edits in the past:

#
# 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_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
else
  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
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=en_SG
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
else
  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
fi
insmod gfxmenu
loadfont ($root)/boot/grub/themes/EndeavourOS/unifont-regular-16.pf2
insmod png
set theme=($root)/boot/grub/themes/EndeavourOS/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=0
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=0
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'EndeavourOS, on linux-lts' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-351535a3-0bf8-400d-9874-620525011419' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
	else
	  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
	fi
	echo	'Loading kernel linux-lts ...'
	linux	/boot/vmlinuz-linux-lts root=UUID=351535a3-0bf8-400d-9874-620525011419 rw  quiet loglevel=3 nowatchdog
	echo	'Loading initial ramdisk ...'
	initrd	/boot/intel-ucode.img /boot/initramfs-linux-lts.img
}
menuentry 'EndeavourOS, on linux-lts (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-351535a3-0bf8-400d-9874-620525011419' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
	else
	  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
	fi
	echo	'Loading kernel linux-lts ...'
	linux	/boot/vmlinuz-linux-lts root=UUID=351535a3-0bf8-400d-9874-620525011419 rw  quiet loglevel=3 nowatchdog
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-linux-lts-fallback.img
}
menuentry 'EndeavourOS, on linux' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-351535a3-0bf8-400d-9874-620525011419' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
	else
	  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
	fi
	echo	'Loading kernel linux ...'
	linux	/boot/vmlinuz-linux root=UUID=351535a3-0bf8-400d-9874-620525011419 rw  quiet loglevel=3 nowatchdog
	echo	'Loading initial ramdisk ...'
	initrd	/boot/intel-ucode.img /boot/initramfs-linux.img
}
menuentry 'EndeavourOS, on linux (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-351535a3-0bf8-400d-9874-620525011419' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
	else
	  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
	fi
	echo	'Loading kernel linux ...'
	linux	/boot/vmlinuz-linux root=UUID=351535a3-0bf8-400d-9874-620525011419 rw  quiet loglevel=3 nowatchdog
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-linux-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/30_os-prober ###
	menuentry 'Artix Linux (on /dev/sda2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--f60b376d-d371-4792-8e2e-9b19fd55567b' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos2' --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  f60b376d-d371-4792-8e2e-9b19fd55567b
		else
		  search --no-floppy --fs-uuid --set=root f60b376d-d371-4792-8e2e-9b19fd55567b
		fi
		linux /boot/vmlinuz-linux root=UUID=f60b376d-d371-4792-8e2e-9b19fd55567b rw net.ifnames=0 quiet
		initrd /boot/initramfs-linux.img
	}
	menuentry 'Artix Linux, with Linux linux (on /dev/sda2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--f60b376d-d371-4792-8e2e-9b19fd55567b' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos2' --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  f60b376d-d371-4792-8e2e-9b19fd55567b
		else
		  search --no-floppy --fs-uuid --set=root f60b376d-d371-4792-8e2e-9b19fd55567b
		fi
		linux /boot/vmlinuz-linux root=UUID=f60b376d-d371-4792-8e2e-9b19fd55567b rw net.ifnames=0 quiet
		initrd /boot/initramfs-linux.img
	}
	menuentry 'Artix Linux, with Linux linux (fallback initramfs) (on /dev/sda2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--f60b376d-d371-4792-8e2e-9b19fd55567b' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos2' --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  f60b376d-d371-4792-8e2e-9b19fd55567b
		else
		  search --no-floppy --fs-uuid --set=root f60b376d-d371-4792-8e2e-9b19fd55567b
		fi
		linux /boot/vmlinuz-linux root=UUID=f60b376d-d371-4792-8e2e-9b19fd55567b rw net.ifnames=0 quiet
		initrd /boot/initramfs-linux-fallback.img
	}

### END /etc/grub.d/30_os-prober ###

### 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-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
        linux16 /boot/memtest86+/memtest.bin 
    }
fi
### END /etc/grub.d/60_memtest86+ ###

Try rebuilding the initramfs and test if that would resolve the issue: sudo mkinitcpio -P

I hope you made a backup of your partition before repartitioning the drive. It is always risky to do so.

Thanks for your suggestion. Unfortunately, it does not work with the default/normal entry! The fallback initramfs option still works as normal, so at least I’ve got that. What might be the difference between the “normal” and “fallback” entry that might cause the former to break but the latter to work normally?

Below are the 2 relevant entries:

menuentry 'EndeavourOS, on linux' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-351535a3-0bf8-400d-9874-620525011419' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
	else
	  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
	fi
	echo	'Loading kernel linux ...'
	linux	/boot/vmlinuz-linux root=UUID=351535a3-0bf8-400d-9874-620525011419 rw  quiet loglevel=3 nowatchdog
	echo	'Loading initial ramdisk ...'
	initrd	/boot/intel-ucode.img /boot/initramfs-linux.img
}
menuentry 'EndeavourOS, on linux (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-351535a3-0bf8-400d-9874-620525011419' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
	else
	  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
	fi
	echo	'Loading kernel linux ...'
	linux	/boot/vmlinuz-linux root=UUID=351535a3-0bf8-400d-9874-620525011419 rw  quiet loglevel=3 nowatchdog
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initramfs-linux-fallback.img
}

To my untrained eye, it seems that the only difference that I can tell is that the the “normal” entry boots initramfs-linux.img but the “fallback” boots initramfs-linux-fallback.img instead. What could be messed up with regards to the non-fallback image?

Every time a kernel is installed or upgraded, a pacman hook automatically generates a .preset file saved in /etc/mkinitcpio.d/. For example linux.preset for the official stable linux kernel package. A preset is simply a list of information required to create initial ramdisk images, instead of manually specifying the various parameters and the location of the output files. By default, it contains the instructions to create two images:

  1. the default ramdisk image created following the directives specified in the mkinitcpio #Configuration, and
  2. the fallback ramdisk image, same as above except that the autodetect hook is skipped during creation, thus including a full range of modules which supports most systems.

https://wiki.archlinux.org/index.php/Mkinitcpio#Image_creation_and_activation

I would think that the fact your system boots up at all implies that the filesystem and the bootloader etc. are intact. Why then the default image is unbootable is beyond me. I thought a regeneration of the images could remedy that. Apparently it didn’t.

You might want to try installing another kernel and/or reinstall the current one.

Edit:

I came to think of, since you installed Artix after Endeavour, it is it’s grub which is in control of the boot process. Perhaps it didn’t generate the right boot entry for EnOS in it’s grub.cfg.

You could try booting up EnOS in fallback mode and reinstall the grub bootloader. It should generate correct boot entries for both systems.

1 Like

Reinstalling GRUB and regenerating the config worked for me! Endeavour now boots up fine.

I’ve done the following (BIOS):
sudo grub-install --target=i386-pc /dev/sda
sudo grub-mkconfig -o /boot/grub/grub.cfg

Well, it almost works. Now, the GRUB menu isn’t shown and it loads Endeavour immediately, as if it’s the only OS on the system.

How could I get GRUB to recognize Artix as well, and show its menu so I can dual boot?

1 Like

Bring up the one time boot menu when starting up your system by pressing the relevant Fn-key for your machine. Boot into Artix and make sure that the package lsb-release is installed. Boot back into EnOS and regenerate grub.cfg.

1 Like

I couldn’t boot into Artix through the BIOS menu as it couldn’t detect individual OS/partitions, just the physical disk itself.

Nevertheless, I’ve installed lsb-release in Artix through chroot instead. Regenerating grub.cfg via sudo grub-mkconfig -o /boot/grub/grub.cfg still doesn’t show me the GRUB menu after a few reboots into Endeavour!

The output implies that it’s detecting Artix on /dev/sda2:

Generating grub configuration file ...
Found theme: /boot/grub/themes/EndeavourOS/theme.txt
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Found Artix Linux (rolling) on /dev/sda2
Found memtest86+ image: /boot/memtest86+/memtest.bin
done

Yet, the GRUB menu isn’t shown. Truly bizarre!

Try this and hopefully it will work:

Edit /etc/default/grub file and add GRUB_TIMEOUT_STYLE=menu after the GRUB_DEFAULT line.
Regenerate grub.cfg again.

I gave it a try:

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR="EndeavourOS"
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 nowatchdog"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

But it doesn’t work, as it boots right into Endeavour without the GRUB menu again. To complicate things further, GRUB_TIMEOUT_STYLE=menu already existed before I added another line at the top, as seen from the last line of my paste.

As a bonus, I tried chrooting into Artix to reinstall GRUB and regenerate grub.cfg. Doing so gave me back the original GRUB menu, together with the quirk of the “normal” Endeavour entry going into the same VFS kernel panic, while the “fallback” boots fine.

One of the 7 Mysteries of Linux at this point?

I am not sure why EnOS should fail adding the entry for Artix to the grub boot menu.

You could try the following workaround in Artix:

Create the file custom.cfg in /boot/grub directory with the following content:

menuentry 'EndeavourOS, on linux' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-351535a3-0bf8-400d-9874-620525011419' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  351535a3-0bf8-400d-9874-620525011419
	else
	  search --no-floppy --fs-uuid --set=root 351535a3-0bf8-400d-9874-620525011419
	fi
	echo	'Loading kernel linux ...'
	linux	/boot/vmlinuz-linux root=UUID=351535a3-0bf8-400d-9874-620525011419 rw  quiet loglevel=3 nowatchdog
	echo	'Loading initial ramdisk ...'
	initrd	/boot/intel-ucode.img /boot/initramfs-linux.img

Reboot and try the new boot entry in the grub boot menu. Hope this helps!

@Hyperspace
Repartitioning may change UUIDs of partitions.

Have you checked /boot/grub/grub.cfg and /etc/fstab files for changed UUIDs on all installed systems?

can you return

sudo parted -l
inxi -MCza
sudo efibootmgr -v

sudo parted -l:

Model: ATA INTEL SSDSC2BP24 (scsi)
Disk /dev/sda: 240GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size    Type     File system  Flags
 1      1049kB  224GB  224GB   primary  ext4
 2      224GB   240GB  15.7GB  primary  ext4         boot

inxi wasn’t installed by default, so I did it. inxi -MCza:

Machine:   Type: Laptop System: Notebook product: W35xSS_370SS v: N/A serial: <filter> Chassis: 
           type: 9 serial: <filter> 
           Mobo: Notebook model: W35xSS_370SS serial: <filter> BIOS: American Megatrends 
           v: 4.6.5 date: 02/21/2014 
CPU:       Info: Quad Core model: Intel Core i7-4710MQ bits: 64 type: MT MCP arch: Haswell 
           family: 6 model-id: 3C (60) stepping: 3 microcode: 28 L2 cache: 6 MiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 39926 
           Speed: 2495 MHz min/max: 800/3500 MHz Core speeds (MHz): 1: 2495 2: 2495 3: 2494 
           4: 2494 5: 2495 6: 2497 7: 2495 8: 2497 
           Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
           Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
           Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
           Type: meltdown mitigation: PTI 
           Type: spec_store_bypass 
           mitigation: Speculative Store Bypass disabled via prctl and seccomp 
           Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization 
           Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, 
           STIBP: conditional, RSB filling 
           Type: srbds mitigation: Microcode 
           Type: tsx_async_abort status: Not affected 

BTW, I’m on a BIOS system but here it is. sudo efibootmgr -v:

EFI variables are not supported on this system.

Thanks, I don’t doubt that it will work, but for now I’ll like to see what I can do solving the issue the proper way. The fallback image still works anyway.

At this point, I’m more invested in the academic side of things than the practical…

I suspect you might be on to something, my Artix partition isn’t showing up on /etc/fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=351535a3-0bf8-400d-9874-620525011419 /              ext4    defaults,noatime 0 1
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0

According to /boot/grub/grub.cfg, Artix’s UUID is supposed to be UUID=f60b376d-d371-4792-8e2e-9b19fd55567b but it’s missing from fstab.

Fair enough. Good luck!
By the way, your Artix partition won’t show in fstab in EnOS. Check both mentioned files in Artix.

If you mean EndeavourOS /etc/fstab, it shouldn’t automatically be there.
But Artix should appear in the /boot/grub/grub.cfg of EndeavourOS (unless you have removed os-prober).

Anyway, the UUID values (real values compared to values in those files) is a thing to check.