After sudo pacman -Syu, linux file missing

I have had this issue multiple times now.

I have not been able to address it properly this time.

After a pacman -Syu updates linux headers, the EFI partition lacks a linux file. initrd, and initramfs are properly created, but not the linux system file.

Typically, it means a bootctl list gives:

type: Boot Loader Specification Type #1 (.conf)
        title: EndeavourOS (6.5.4-arch2-1) (default) (not reported/new)
           id: 2b9af3d6a9134b098bef542b429019b7-6.5.4-arch2-1.conf
       source: /efi//loader/entries/2b9af3d6a9134b098bef542b429019b7-6.5.4-arch2-1.conf
     sort-key: endeavouros-6.5.4-arch3-1
      version: 6.5.4-arch2-1
   machine-id: 2b9af3d6a9134b098bef542b429019b7
        linux: /efi//2b9af3d6a9134b098bef542b429019b7/6.5.4-arch2-1/linux (No such file or directory)
       initrd: /efi//2b9af3d6a9134b098bef542b429019b7/6.5.4-arch2-1/initrd
      options: nvme_load=YES nowatchdog rw root=UUID=1ce8fca0-d412-48cc-a63d-a3960dc90b65 systemd.machine_id=2b9af3d6a9134b098bef542b429019b7

The fallback is 6.5.3-arch1 so it cannot be copied over.

How can I get this linux system file created now? (I have not reboot so I’m still with an activate 6.5.3 system).

Can you share some baseline information so we can be more helpful with troubleshooting this?

Can you share the output of pacman -Q | grep -E "linux|dracut" and the contents of /etc/pacman.conf

The pacman -Q | grep -E “linux|dracut” gives:

archlinux-keyring 20230918-1
archlinux-xdg-menu 0.7.6.6-1
dracut 059-3
kernel-install-for-dracut 1.9.1-1
linux 6.5.4.arch2-1
linux-api-headers 6.4-1
linux-firmware 20230804.7be2766d-2
linux-firmware-whence 20230804.7be2766d-2
linux-headers 6.5.4.arch2-1
ms-teams-for-linux-bin 1.3.5-1
util-linux 2.39.2-1
util-linux-libs 2.39.2-1

and /etc/pacman.conf is:

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
#HookDir     = /etc/pacman.d/hooks/
HoldPkg     = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
Color
ILoveCandy
#NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

[endeavouros]
SigLevel = PackageRequired
Include = /etc/pacman.d/endeavouros-mirrorlist

#[core-testing]
#Include = /etc/pacman.d/mirrorlist

[core]
Include = /etc/pacman.d/mirrorlist

#[extra-testing]
#Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

Can you share the full output of sudo reinstall-kernels

Installing kernel 6.5.4-arch2-1
dracut: Executing: /usr/bin/dracut --no-hostonly --force /efi/2b9af3d6a9134b098bef542b429019b7/6.5.4-arch2-1/initrd-fallback 6.5.4-arch2-1
dracut: dracut module 'rngd' will not be installed, because command 'rngd' could not be found!
dracut: dracut module 'network-wicked' will not be installed, because command 'wicked' could not be found!
dracut: dracut module 'dmraid' will not be installed, because command 'kpartx' could not be found!
dracut: dracut module 'multipath' will not be installed, because command 'multipath' could not be found!
dracut: dracut module 'tpm2-tss' will not be installed, because command 'tpm2' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'dcbtool' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'fipvlan' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'lldpad' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'fcoemon' could not be found!
dracut: dracut module 'fcoe' will not be installed, because command 'fcoeadm' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'dcbtool' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'fipvlan' could not be found!
dracut: dracut module 'fcoe-uefi' will not be installed, because command 'lldpad' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsi-iname' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsiadm' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsid' could not be found!
dracut: dracut module 'nbd' will not be installed, because command 'nbd-client' could not be found!
dracut: dracut module 'nvmf' will not be installed, because command 'nvme' could not be found!
dracut: dracut module 'squash' will not be installed, because command 'mksquashfs' could not be found!
dracut: dracut module 'squash' will not be installed, because command 'unsquashfs' could not be found!
dracut: *** Including module: systemd ***
dracut: *** Including module: systemd-initrd ***
dracut: *** Including module: modsign ***
dracut: *** Including module: i18n ***
dracut: *** Including module: btrfs ***
dracut: *** Including module: crypt ***
dracut: *** Including module: dm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 60-persistent-storage-dm.rules
dracut: Skipping udev rule: 55-dm.rules
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: kernel-modules-extra ***
dracut: *** Including module: lvm ***
dracut: Skipping udev rule: 64-device-mapper.rules
dracut: Skipping udev rule: 56-lvm.rules
dracut: Skipping udev rule: 60-persistent-storage-lvm.rules
dracut: *** Including module: mdraid ***
dracut: Skipping udev rule: 64-md-raid.rules
dracut: *** Including module: nvdimm ***
dracut: *** Including module: qemu ***
dracut: *** Including module: qemu-net ***
dracut: *** Including module: lunmask ***
dracut: *** Including module: resume ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: terminfo ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: *** Including module: virtiofs ***
dracut: *** Including module: biosdevname ***
dracut: *** Including module: dracut-systemd ***
dracut: *** Including module: usrmount ***
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including module: memstrack ***
dracut: *** Including module: shutdown ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies ***
dracut: *** Installing kernel module dependencies done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done ***
dracut: *** Hardlinking files ***
dracut: Mode:                     real
dracut: Method:                   sha256
dracut: Files:                    2006
dracut: Linked:                   8 files
dracut: Compared:                 0 xattrs
dracut: Compared:                 451 files
dracut: Saved:                    1.42 MiB
dracut: Duration:                 0.029059 seconds
dracut: *** Hardlinking files done ***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Constructing AuthenticAMD.bin ***
dracut: *** Store current command line parameters ***
dracut: *** Stripping files ***
dracut: *** Stripping files done ***
dracut: *** Creating image file '/efi/2b9af3d6a9134b098bef542b429019b7/6.5.4-arch2-1/initrd-fallback' ***
dracut: *** Creating initramfs image file '/efi/2b9af3d6a9134b098bef542b429019b7/6.5.4-arch2-1/initrd-fallback' done ***
dracut: Executing: /usr/bin/dracut --hostonly --no-hostonly-cmdline -f /efi/2b9af3d6a9134b098bef542b429019b7/6.5.4-arch2-1/initrd 6.5.4-arch2-1
dracut: dracut module 'rngd' will not be installed, because command 'rngd' could not be found!
dracut: dracut module 'network-wicked' will not be installed, because command 'wicked' could not be found!
dracut: dracut module 'dmraid' will not be installed, because command 'kpartx' could not be found!
dracut: dracut module 'tpm2-tss' will not be installed, because command 'tpm2' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsi-iname' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsiadm' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsid' could not be found!
dracut: dracut module 'nvmf' will not be installed, because command 'nvme' could not be found!
dracut: dracut module 'squash' will not be installed, because command 'mksquashfs' could not be found!
dracut: dracut module 'squash' will not be installed, because command 'unsquashfs' could not be found!
dracut: dracut module 'rngd' will not be installed, because command 'rngd' could not be found!
dracut: dracut module 'network-wicked' will not be installed, because command 'wicked' could not be found!
dracut: dracut module 'dmraid' will not be installed, because command 'kpartx' could not be found!
dracut: dracut module 'tpm2-tss' will not be installed, because command 'tpm2' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsi-iname' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsiadm' could not be found!
dracut: dracut module 'iscsi' will not be installed, because command 'iscsid' could not be found!
dracut: dracut module 'nvmf' will not be installed, because command 'nvme' could not be found!
dracut: dracut module 'squash' will not be installed, because command 'mksquashfs' could not be found!
dracut: dracut module 'squash' will not be installed, because command 'unsquashfs' could not be found!
dracut: *** Including module: systemd ***
dracut: *** Including module: systemd-initrd ***
dracut: *** Including module: i18n ***
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: kernel-modules-extra ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: terminfo ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: Skipping udev rule: 70-persistent-net.rules
dracut: *** Including module: biosdevname ***
dracut: *** Including module: dracut-systemd ***
dracut: *** Including module: usrmount ***
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including module: memstrack ***
dracut: *** Including module: shutdown ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies ***
dracut: *** Installing kernel module dependencies done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done ***
dracut: *** Hardlinking files ***
dracut: Mode:                     real
dracut: Method:                   sha256
dracut: Files:                    793
dracut: Linked:                   2 files
dracut: Compared:                 0 xattrs
dracut: Compared:                 47 files
dracut: Saved:                    356.65 KiB
dracut: Duration:                 0.017332 seconds
dracut: *** Hardlinking files done ***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Store current command line parameters ***
dracut: *** Stripping files ***
dracut: *** Stripping files done ***
dracut: *** Creating image file '/efi/2b9af3d6a9134b098bef542b429019b7/6.5.4-arch2-1/initrd' ***
dracut: *** Creating initramfs image file '/efi/2b9af3d6a9134b098bef542b429019b7/6.5.4-arch2-1/initrd' done ***
unknown command: python3. Perhaps you have to reshim?
/usr/lib/kernel/install.d/60-ukify.install failed with exit status 1.

python3 --version works fine (output is below)
Python 3.11.5

Can you share ls -ld /usr/bin/pyth*

lrwxrwxrwx  14k root  2 Sep 10:16 /usr/bin/python -> python3
lrwxrwxrwx 3.2k root  2 Sep 10:16 /usr/bin/python-config -> python3-config
lrwxrwxrwx  14k root  2 Sep 10:16 /usr/bin/python3 -> python3.11
lrwxrwxrwx 3.2k root  2 Sep 10:16 /usr/bin/python3-config -> python3.11-config
.rwxr-xr-x  14k root  2 Sep 10:16 /usr/bin/python3.11
.rwxr-xr-x 3.2k root  2 Sep 10:16 /usr/bin/python3.11-config

That is really strange. kernel-install is failing because of Python being missing but it looks fine.

I would try reinstalling the package python and see if that fixes it.

After reinstalling python, same issue happened.

What happens is you type su -. Then put your password in and type /usr/bin/env python3

[root@XPS13 ~]# /usr/bin/env python3
Python 3.11.5 (main, Sep  2 2023, 14:16:33) [GCC 13.2.1 20230801] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Running reinstall-kernels after su - solved the issue (linux system file created, no warnings from bootctl list)

That sounds like there is something wrong with your environment if it works from su - but fails when running with sudo.

I would not take that as a solution. I think there is more fixing to be done there.

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.