Как стать автором
Обновить

Как я победил ошибку rEFInd с Arch Linux после обновления ядра

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.4K

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

После обычного обновления 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 видит актуальные образы, и система загружается без ошибок.


Теги:
Хабы:
+3
Комментарии4

Публикации

Ближайшие события