Описание ситуации

После обычного обновления Arch Linux с помощью pacman (хотя чаще я обновляюсь с помощью yay) система обновила ядро, и загрузчик rEFInd начал выдавать ошибку:

Not a valid image

Причина в том, что rEFInd смотрит на файлы в:

/boot/EFI/refind

А pacman или yay туда не копируют обновлённое ядро автоматически.
В итоге rEFInd видит старый или некорректный файл.


Что я сделал

Я написал скрипт и подключил его через pacman hook, чтобы файлы автоматически копировались после каждого обновления пакета linux.


Скрипт: /etc/pacman.d/hooks/copy-kernel.sh

#!/bin/bash
if ! mountpoint -q /boot; then
echo "/boot is not mounted, skipping kernel copy" >&2
exit 0
fi
cp -v /usr/lib/modules/$(uname -r)/vmlinuz /boot/EFI/refind/vmlinuz-linux
cp -v /boot/initramfs-linux.img /boot/EFI/refind/initramfs-linux.img
cp -v /boot/initramfs-linux-fallback.img /boot/EFI/refind/initramfs-linux-fallback.img


Хук: /etc/pacman.d/hooks/copy-kernel.hook

[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = linux

[Action]
Description = Copying kernel and initramfs to EFI partition...
When = PostTransaction
Exec = /etc/pacman.d/hooks/copy-kernel.sh


Почему так происходит

Когда pacman или yay обновляют пакет linux, новые файлы ядра и initramfs кладутся в:

/boot

Но если rEFInd настроен смотреть в:

/boot/EFI/refind

он не находит там свежие файлы, потому что pacman их туда не копирует.

В результате после перезагрузки rEFInd может показывать:

Not a valid image

или просто не загружать систему.


Как это решает проблему

Hook срабатывает после завершения pacman, вызывая мой скрипт, который:

  • Проверяет, смонтирован ли /boot,

  • Копирует свежие файлы ядра и initramfs в нужное место, которое использует rEFInd.

После этого при следующей перезагрузке rEFInd видит актуальные образы, и система загружается без ошибок.


Комментарии (4)


  1. Johan_Palych
    10.05.2025 17:39

    1. sergio_nsk
      10.05.2025 17:39

      Да ты что, автор даже не осилил блоки кода в редакторе Хабра, а читать wiki - это надо быть сверхразумом.


  1. Ch1tachok
    10.05.2025 17:39

    Использовать grub и не знать проблем❌

    Я не нормис✅✅✅


  1. CrazyHackGUT
    10.05.2025 17:39

    А у вас кернел что-ли на лету подгружается обновленный, или почему через uname версию дергаете?