System not booting after recent update - HELP!

Hi - so I ran a sudo pacman -Syyu this morning, and rebooted my system after it was complete, at the boot screen I am getting the following error message:

Loading kernel linux ...
error: file 'boot/vmlinuz-linuz' not found.
Loading initial ramdisk ...
error: you need to load a kernel first.

 Press any key to continue..._

But if I press any key, it just loops me back.

After doing some cursory searching online it looks like something happened during my update and the kernel did not load correctly…okay…

So I boot up a live disk and chrooted into the system. I tried running mkinitcpio -P and get returned with bash: mkinitcpio: command not found

Then I tried to just reinstall the kernel and headers with sudo pacman -Syu linux linux-headers and it almost gets through the reinstall but at the end it fails with the following error: (4/4) Check if user should be informed about rebooting after certain system package upgrades. /usr/bin/eos-reboot-required2: line 20: /usr/share/endeavouros/scripts/eos-script-lib-yad: No such file or directory which I believe is an eos error.

So as of right now I am stuck and in need of help. I would like to try to fix the system, if someone could point me in the right direction.

Also below is my system specs from inxi -Fxxc0z | eos-sendlog, (although this is just copied from another post as currently in the chroot environment I get back the error bash: eos-sendlog: command not found)

System:
  Kernel: 6.1.12-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
    Desktop: KDE Plasma v: 5.27.1 tk: Qt v: 5.15.8 wm: kwin_x11 dm: SDDM
    Distro: EndeavourOS base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: X510UNR v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: X510UNR v: 1.0 serial: <superuser required>
    UEFI: American Megatrends v: X510UNR.309 date: 05/14/2019
Battery:
  ID-1: BAT0 charge: 23.8 Wh (100.0%) condition: 23.8/42.1 Wh (56.6%)
    volts: 11.5 min: 11.5 model: ASUSTeK ASUS Battery serial: N/A
    status: not charging
CPU:
  Info: quad core model: Intel Core i7-8550U bits: 64 type: MT MCP
    arch: Coffee Lake rev: A cache: L1: 256 KiB L2: 1024 KiB L3: 8 MiB
  Speed (MHz): avg: 1862 high: 2000 min/max: 400/4000 cores: 1: 2000 2: 2000
    3: 2000 4: 900 5: 2000 6: 2000 7: 2000 8: 2000 bogomips: 32012
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel UHD Graphics 620 vendor: ASUSTeK driver: i915 v: kernel
    arch: Gen-9.5 ports: active: eDP-1 empty: HDMI-A-1 bus-ID: 00:02.0
    chip-ID: 8086:5917
  Device-2: NVIDIA GP108M [GeForce MX150] vendor: ASUSTeK driver: nvidia
    v: 525.89.02 arch: Maxwell pcie: speed: 2.5 GT/s lanes: 4 bus-ID: 01:00.0
    chip-ID: 10de:1d10
  Device-3: IMC Networks VGA UVC WebCam type: USB driver: uvcvideo
    bus-ID: 1-6:2 chip-ID: 13d3:5a07
  Display: x11 server: X.Org v: 21.1.7 compositor: kwin_x11 driver: X:
    loaded: intel,nvidia unloaded: fbdev,modesetting,vesa alternate: nouveau,nv
    dri: i965 gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96
  Monitor-1: eDP-1 mapped: eDP1 model: AU Optronics 0x21ed res: 1920x1080
    dpi: 143 diag: 394mm (15.5")
  API: OpenGL v: 4.6 Mesa 22.3.6 renderer: Mesa Intel UHD Graphics 620 (KBL
    GT2) direct-render: Yes
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 00:1f.3 chip-ID: 8086:9d71
  Sound API: ALSA v: k6.1.12-arch1-1 running: yes
  Sound Server-1: JACK v: 1.9.22 running: no
  Sound Server-2: PulseAudio v: 16.1 running: yes
  Sound Server-3: PipeWire v: 0.3.66 running: yes
Network:
  Device-1: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel pcie:
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:24fd
  IF: wlan0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface type: USB driver: btusb v: 0.8
    bus-ID: 1-8:3 chip-ID: 8087:0a2b
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends
Drives:
  Local Storage: total: 1.14 TiB used: 147.03 GiB (12.6%)
  ID-1: /dev/sda vendor: Seagate model: ST1000LM035-1RK172 size: 931.51 GiB
    speed: 6.0 Gb/s serial: <filter>
  ID-2: /dev/sdb vendor: Micron model: 1100 MTFDDAV256TBN size: 238.47 GiB
    speed: 6.0 Gb/s serial: <filter>
Partition:
  ID-1: / size: 216.57 GiB used: 147.03 GiB (67.9%) fs: ext4 dev: /dev/dm-0
    mapped: luks-d79f1908-622d-42c0-9c4d-2826c932ae51
  ID-2: /boot/efi size: 299.4 MiB used: 452 KiB (0.1%) fs: vfat
    dev: /dev/sdb1
Swap:
  ID-1: swap-1 type: partition size: 17.07 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/dm-1 mapped: luks-426759bb-6a5a-47d3-8a59-620196bc91e8
Sensors:
  System Temperatures: cpu: 45.0 C pch: 36.0 C mobo: N/A
  Fan Speeds (RPM): cpu: 2700
Info:
  Processes: 262 Uptime: 35m Memory: 15.51 GiB used: 5.28 GiB (34.0%)
  Init: systemd v: 253 default: graphical Compilers: gcc: 12.2.1 clang: 15.0.7
  Packages: pm: pacman pkgs: 1693 Shell: Bash v: 5.1.16 running-in: konsole
  inxi: 3.3.25

I suppose worst case I will use my timeshift images and backup to yesterday.

UPDATE: ok so I was able to get booted back into my system.

From the chroot environment I ran sudo pacman -S mkinitcpio, for whatever reason one of the pgp signatures was invalid, so I deleted it. after that mkinitcpio seemed to be installed so I ran a sudo pacman -Syu linux linux-headers and it seemed to actually rebuild this time, although I still got the error: (4/4) Check if user should be informed about rebooting after certain system package upgrades. /usr/bin/eos-reboot-required2: line 20: /usr/share/endeavouros/scripts/eos-script-lib-yad: No such file or directory

I shut down the chroot and rebooted and was able to boot into the kernel. Going to install the lts kernel as a backup now.

If anyone has any thoughts on the last error please let me know.

Hello,
were you using dracut or mkinitcpio before this incident (I think newer EOS installs use dracut by default)?
As I am using mkinitcpio, I have a pacman hook /usr/share/libalpm/hooks/90-mkinitcpio-install.hook that triggers the script /usr/share/libalpm/scripts/mkinitcpio which takes care of necessary things after a kernel update. One of that things is to copy the vmlinuz to /boot/

So, since you apparently didn’t have to reinstall the kernel what probably happened is that either this hook (or the dracut pendant) wasn’t run (at least not as it was supposed to be) or the script didn’t work.

That’s apparently some pacman hook that should initiate the check whether you need to be informed about a necessary reboot in the notifier among others by running the script /usr/share/endeavouros/scripts/eos-script-lib-yad.

I don’t know by which package it’s provided. The easiest way to solve this would be to reinstall this package.
@manuel Is that part of eos-welcome?

This looks to be provided by the package eos-bash-shared.

Try: sudo pacman -S eos-bash-shared and see if it resolves the issue.

1 Like

Yes, package eos-bash-shared is the needed base package for many eos apps.

Appreciate everyone’s responses.

@PigOfDestiny Hmm so I am not sure if I was using dracut or mkinitcpio, I have an “older” EOS install (I want to say 2019? 2020?) so I assume mkinitcpio. I have not idea why that hook wouldn’t have run though…I don’t recall anything strange happening prior to this issue.

@pebcak @manuel I reinstalled eos-bash-shared.

Ok now I am having a new issue when trying to run pacman -Syyu (really not sure what I did to this machine!) - I get the following error message:

error: failed to commit transaction (conflicting files)
ostree: /etc/dracut.conf.d/ostree.conf exists in filesystem
ostree: /etc/ostree-mkinitcpio.conf exists in filesystem
ostree: /usr/bin/ostree exists in filesystem
ostree: /usr/bin/rofiles-fuse exists in filesystem
ostree: /usr/include/ostree-1/ostree-async-progress.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-autocleanups.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-bootconfig-parser.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-content-writer.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-core.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-deployment.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-diff.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-dummy-enumtypes.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-gpg-verify-result.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-kernel-args.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-mutable-tree.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-ref.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-remote.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo-deprecated.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo-file.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo-finder-avahi.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo-finder-config.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo-finder-mount.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo-finder-override.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo-finder.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo-os.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-repo.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-sepolicy.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-sign-ed25519.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-sign.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-sysroot-upgrader.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-sysroot.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-types.h exists in filesystem
ostree: /usr/include/ostree-1/ostree-version.h exists in filesystem
ostree: /usr/include/ostree-1/ostree.h exists in filesystem
ostree: /usr/lib/dracut/modules.d/98ostree/module-setup.sh exists in filesystem
ostree: /usr/lib/girepository-1.0/OSTree-1.0.typelib exists in filesystem
ostree: /usr/lib/initcpio/install/ostree exists in filesystem
ostree: /usr/lib/libostree-1.so exists in filesystem
ostree: /usr/lib/libostree-1.so.1 exists in filesystem
ostree: /usr/lib/libostree-1.so.1.0.0 exists in filesystem
ostree: /usr/lib/libostree/ostree-trivial-httpd exists in filesystem
ostree: /usr/lib/ostree/ostree-grub-generator exists in filesystem
ostree: /usr/lib/ostree/ostree-prepare-root exists in filesystem
ostree: /usr/lib/ostree/ostree-remount exists in filesystem
ostree: /usr/lib/pkgconfig/ostree-1.pc exists in filesystem
ostree: /usr/lib/systemd/system-generators/ostree-system-generator exists in filesystem
ostree: /usr/lib/systemd/system/ostree-boot-complete.service exists in filesystem
ostree: /usr/lib/systemd/system/ostree-finalize-staged-hold.service exists in filesystem
ostree: /usr/lib/systemd/system/ostree-finalize-staged.path exists in filesystem
ostree: /usr/lib/systemd/system/ostree-finalize-staged.service exists in filesystem
ostree: /usr/lib/systemd/system/ostree-prepare-root.service exists in filesystem
ostree: /usr/lib/systemd/system/ostree-remount.service exists in filesystem
ostree: /usr/lib/tmpfiles.d/ostree-tmpfiles.conf exists in filesystem
ostree: /usr/share/bash-completion/completions/ostree exists in filesystem
ostree: /usr/share/gir-1.0/OSTree-1.0.gir exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/home.png exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/index.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/left-insensitive.png exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/left.png exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-Core-repository-independent-functions.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-GPG-signature-verification-results.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-In-memory-modifiable-filesystem-tree.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-OstreeRepo.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-Progress-notification-system-for-asynchronous-operations.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-Root-partition-mount-point.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-SELinux-policy-management.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-Signature-management.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-Simple-upgrade-class.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-bootconfig-parser.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-chain-input-stream.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-checksum-input-stream.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-content-writer.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-deployment.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-diff.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-kernel-args.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-ref.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-remote.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-repo-file.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-repo-finder.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-repo-remote-finder.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree-ostree-version.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/ostree.devhelp2 exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/reference.html exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/right-insensitive.png exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/right.png exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/style.css exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/up-insensitive.png exists in filesystem
ostree: /usr/share/gtk-doc/html/ostree/up.png exists in filesystem
ostree: /usr/share/licenses/ostree/COPYING exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-cleanup.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-config-diff.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-deploy.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-init-fs.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-instutil.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-os-init.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-pin.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-set-origin.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-status.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-switch.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-undeploy.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-unlock.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin-upgrade.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-admin.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-cat.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-checkout.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-checksum.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-commit.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-config.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-create-usb.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-diff.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-export.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-find-remotes.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-fsck.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-gpg-sign.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-init.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-log.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-ls.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-prune.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-pull-local.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-pull.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-refs.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-remote.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-reset.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-rev-parse.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-show.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-sign.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-static-delta.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-summary.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree-trivial-httpd.1.gz exists in filesystem
ostree: /usr/share/man/man1/ostree.1.gz exists in filesystem
ostree: /usr/share/man/man1/rofiles-fuse.1.gz exists in filesystem
ostree: /usr/share/man/man5/ostree.repo-config.5.gz exists in filesystem
ostree: /usr/share/man/man5/ostree.repo.5.gz exists in filesystem
ostree: /usr/share/ostree/trusted.gpg.d/README-gpg exists in filesystem
Errors occurred, no packages were upgraded.

best for me to follow this link?

Tip: before doing anything else, it is recommended to backup all your personal data.

And yes, that link provides useful information.

1 Like

(Deleted by author)

This means that your packages database is probably corrupt or damaged, probably after a failed update. ostree should just replace itself (in pacman language), but pacman thinks ostree is not installed.

There are 2+ ways to deal with this.

  1. In depth investigation (pacman.log, pacman DB comparison)
  2. Force pacman to overwrite

+. Reinstall the system

All have advantages and disadvantages, so the choice is yours :person_shrugging:

1 Like

Ugh. Definitely don’t want to reinstall (I am quite comfy in my system these days).

I will force pacman to overwrite as a last option, what are my steps to investigate? (sorry this is why I posted in the newbie forum b/c while my linux skills are coming along, I still have a lot to learn!)

Appreciate the help @petsam @manuel

You can look at file /var/log/pacman.log on your system, e.g.

less /var/log/pacman.log

But, as said above, make sure you have a backup of your personal data on another (external) disk.

I did make a backup of /etc and /home/user on an external drive using rsync, I don’t think I need to backup and other directories though…at least I don’t believe I used them.

I looked in /var/log/pacman.log and I don’t see anything strange looking (at least to my eyes)…I was just looking at the last two updates prior to the incident. The only thing I can think is maybe I aborted an upgrade at somepoint? I don’t recall doing that but I see a pacman -Suyy started, then a pacman -Syyu started shortly after, thinking maybe I hit Ctrl-C because I thought I typed it wrong?

In any case - what else should I do? just go for the overwrite and hope for the best?

Edit: I also realize I have a timeshift backup from a month ago. Is that a better option?

Update - I used timeshift to restore to a previous state. So far so good.