Skip to main content
Topic solved
This topic has been marked as solved and requires no further attention.
Topic: [SOLVED] Can't boot with Linux x86_64. (Read 743 times) previous topic - next topic
0 Members and 4 Guests are viewing this topic.

[SOLVED] Can't boot with Linux x86_64.

When booting I have 3 options:
1. Artix Linux, with Linux linux x86_64
2. Artix Linux, with Linux linux
3. Artix Linux, with Linux linux (fallback initramfs)

For some reason the first one stopped working (2. and 3. works) and I get warning:
ERROR: '/dev/disk/by-label/' device did not show up after 30 seconds
Falling back to interactive prompt. You can try to fix problem manually. Log out when you are finished.
Have anyone got any ideas how to fix this?

Re: Can't boot with Linux x86_64.

Reply #1
Stopped working? Did you upgrade?


Re: Can't boot with Linux x86_64.

Reply #3
Boot with 2 or 3 and re-install linux, which should autocatically also run mkinitcpio - if not do it yourself. (Guessing here, you should have posted /boot/grub/grub.cfg too).

Re: Can't boot with Linux x86_64.

Reply #4
nano /etc/mkinitcpio.d/linux.preset
Code: [Select]
# mkinitcpio preset file for the 'linux' package

ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux"

PRESETS=('default' 'fallback')

#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-linux.img"
#default_options=""

#fallback_config="/etc/mkinitcpio.conf"
fallback_image="/boot/initramfs-linux-fallback.img"
fallback_options="-S autodetect"
Grub.cfg
Code: [Select]
#
# 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
}

set menu_color_normal=light-blue/black
set menu_color_highlight=light-cyan/blue

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=1024x768,800x600
  load_video
  insmod gfxterm
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
insmod gfxmenu
loadfont ($root)/usr/share/grub/themes/artix/u_vga16_16.pf2
insmod png
set theme=($root)/usr/share/grub/themes/artix/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=3
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=3
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-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
echo 'Loading Linux x86_64 ...'
linux /boot/vmlinuz-x86_64 root=UUID=9a344add-11ec-4cad-9ac9-b22fbc56c973 rw net.ifnames=0 efi=runtime quiet acpi_enforce_resources=lax
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-x86_64.img
}
submenu 'Advanced options for Artix Linux' $menuentry_id_option 'gnulinux-advanced-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
menuentry 'Artix Linux, with Linux x86_64' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-x86_64-advanced-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
echo 'Loading Linux x86_64 ...'
linux /boot/vmlinuz-x86_64 root=UUID=9a344add-11ec-4cad-9ac9-b22fbc56c973 rw net.ifnames=0 efi=runtime quiet acpi_enforce_resources=lax
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-x86_64.img
}
menuentry 'Artix Linux, with Linux linux' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=9a344add-11ec-4cad-9ac9-b22fbc56c973 rw net.ifnames=0 efi=runtime quiet acpi_enforce_resources=lax
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-linux.img
}
menuentry 'Artix Linux, with Linux linux (fallback initramfs)' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=9a344add-11ec-4cad-9ac9-b22fbc56c973 rw net.ifnames=0 efi=runtime quiet acpi_enforce_resources=lax
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/amd-ucode.img /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 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-6634-038D' {
savedefault
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 6634-038D
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/35_fwupd ###
### END /etc/grub.d/35_fwupd ###

### 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  9a344add-11ec-4cad-9ac9-b22fbc56c973
        linux16 /boot/memtest86+/memtest.bin
    }
fi
### END /etc/grub.d/60_memtest86+ ###

I guess it is missing /boot/initramfs-x86_64.img in /boot/initramfs-x86_64.img?

/etc/mkinitcpio.conf

Code: [Select]
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(usbhid xhci_hcd)
MODULES=()

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=()

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No RAID, lvm2, or encrypted root is needed.
#    HOOKS=(base)
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS=(base udev autodetect modconf block filesystems fsck)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev modconf block filesystems fsck)
#
##   This setup assembles a mdadm array with an encrypted root file system.
##   Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
#    HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
##   This setup loads an lvm2 volume group.
#    HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr and fsck hooks.
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck)

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"

Re: Can't boot with Linux x86_64.

Reply #5
So, there are these /boot/{vmlinuz,initramfs}-x86_64 entries, which is weird. Which package owns those files? Post
Code: [Select]
pacman -Qo /boot/vmlinuz-x86_64 /boot/initramfs-x86_64.img

Re: Can't boot with Linux x86_64.

Reply #6
 
 @teyuss Do you have different partitions for boot, root etc? And if yes how big is your boot partition? It's a tiny possibility when there's
 an exaggerated small boot partition things can get messed up in there. Let's not forget that Arch is an upgrade always  hungry distro
 that constantly writes into boot and root and in case of an ageing disk combined with a bad habit (of choosing too small boot or root
 partitions) some inconsistencies may happen.

 In case you did not fix the problem the way @nous suggested here you may wanna try fsck-ing your boot and root partitions from a
 live environment. But first I would backup files before anything nasty can happen to those disks.

 As a more general rule, I for one don't see any extraordinary benefit of making millions partitions as it reduces the life span of an ssd
 or even maybe of a more resilient hdd.


Re: Can't boot with Linux x86_64.

Reply #7
So, there are these /boot/{vmlinuz,initramfs}-x86_64 entries, which is weird. Which package owns those files? Post
Code: [Select]
pacman -Qo /boot/vmlinuz-x86_64 /boot/initramfs-x86_64.img
error: No package owns /boot/vmlinuz-x86_64
error: No package owns /boot/initramfs-x86_64.img
I have one partition for root and boot.

Re: Can't boot with Linux x86_64.

Reply #8
I've never had these *x86_64* files. (vmlinuz-x86_64 & initramfs-x86_64.img)

What I would try:
Move them somewhere else eg /root  (Or delete them but moving them gives you the option of moving them back)

Code: [Select]
sudo grub-mkconfig -o /boot/grub/grub.cfg

Re: Can't boot with Linux x86_64.

Reply #9
There is something, apparently not a package or in the AUR, called "Archboot" which creates or installs files with these names, is it anything to do with using that in the past?
https://pkgbuild.com/~tpowa/archboot/web/archboot.html
There are some instructions there for installing, removing and updating what seem to be described as "unified kernel images":
https://wiki.archlinux.org/title/Unified_kernel_image

Re: Can't boot with Linux x86_64.

Reply #10
Ok, I installed artix and there are not "x86_64" files. Beforehand I deleted "x86_64" files and ran sudo grub-mkconfig -o /boot/grub/grub.cfg and I was left with two options (no x86_64).
Code: [Select]
menuentry 'Artix Linux' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=9a344add-11ec-4cad-9ac9-b22fbc56c973 rw net.ifnames=0 efi=runtime quiet acpi_enforce_resources=lax
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-linux.img
}
submenu 'Advanced options for Artix Linux' $menuentry_id_option 'gnulinux-advanced-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
menuentry 'Artix Linux, with Linux linux' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=9a344add-11ec-4cad-9ac9-b22fbc56c973 rw net.ifnames=0 efi=runtime quiet acpi_enforce_resources=lax
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-linux.img
}
menuentry 'Artix Linux, with Linux linux (fallback initramfs)' --class artix --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-9a344add-11ec-4cad-9ac9-b22fbc56c973' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9a344add-11ec-4cad-9ac9-b22fbc56c973
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=9a344add-11ec-4cad-9ac9-b22fbc56c973 rw net.ifnames=0 efi=runtime quiet acpi_enforce_resources=lax
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-linux-fallback.img
}
}

There is something, apparently not a package or in the AUR, called "Archboot" which creates or installs files with these names, is it anything to do with using that in the past?
https://pkgbuild.com/~tpowa/archboot/web/archboot.html
There are some instructions there for installing, removing and updating what seem to be described as "unified kernel images":
https://wiki.archlinux.org/title/Unified_kernel_image

Unfortunately, I do not recall messing with Archboot but somehow these files had to be placed there. Anyway I mark thread as SOLVED.