[решено] Загадка про ядра и rEFInd

Всем известно, что refind по умолчанию грузит самое новое по времени установленное ядро. В отличии от grub, который по умолчанию грузит ядро, которое более «свежее» по выпуску. т.е при установленных ядрах 6.11 и 6.6 груб загрузит (по умолчанию) 6.11, а вот rEFInd загрузит то ядро, которое скачано последним. При обновлении ядер первым всегда скачивается более новое ядро, таким образом (в моем случае) rEFInd будет по умолчанию грузить ядро 6.6. самое простое решение этой неприятности после обновления выполнить в терминале

sudo touch -m /boot/vmlinuz-6.11-x86_64

Однако, это как то неестественно выглядит. может кто знает как изменить ситуацию и привести rEFInd к стандарту grub ?

Комментарии: 12
5 дней
1

Ну, ИМХО, или юзай, что написал, или правь руками конфиг rEFInd-а или, как идея, попробуй постинсталл хук, который так же будет делать твой touch

автор
5 дней
0

я не поверю, что это ненастраиваемая опция rEFInd, просто мы чего-то не знаем. хук то я напишу, но не нравится мне это

автор
5 дней
0

сварганил на коленке такой скрипт:

#!/bin/bash
lin=$(pacman -Q | grep -E "linux[0-9]{2}(\s|[0-9])[^-]" | head -n 1 | awk '{ print $2 }' | awk -F. '{ print "/boot/vmlinuz-"$1"."$2"-x86_64" }')
if [ -e $lin ]; then touch -m $lin; fi

посмотрю что как и засуну в хук))

5 дней
1

Вот, что гласит официальная документация

rEFInd sorts boot loader entries within each directory by time stamp, so that the most recent entry comes first. Thus, if you specify a directory name (or a volume label, for loaders stored in a volume’s root directory) as the default_selection, rEFInd will make the most recent loader in the directory the default. This can obviate the need to adjust this configuration parameter when you add a new kernel; chances are you want the most recently-added kernel to be the default, and rEFInd makes it so when you set the default_selection in this way. If you don’t want the latest kernel to become the default, you can use touch to give the desired kernel (or other boot loader) in the directory a more recent time stamp, or you can set default_selection to a value that uniquely identifies your desired default loader. One caveat you should keep in mind is that the EFI and Windows interpret the hardware clock as local time, whereas macOS uses Coordinated Universal Time (UTC). Linux can work either way. Thus, time stamps for boot loaders can be skewed by several hours depending on the environment in which they were created or last modified.

автор
5 дней
0

нелепо это выглядит, особенно рассуждение про то, какое я ядро хочу сделать загружаемым по умолчанию))). а в рамках политики обновления манжароядер — так вообще неуместно. надо филу сказать, что бы ядра в обратной последовательности скачивал)))

5 дней
1

Опять же, вроде можно в настройках указать, чтобы дополнительные ядра не складывались в подменю, а были отдельными ярлыками (если я ничего не путаю)
fold_linux_kernels = false
Тогда, я думаю, один и тот же ярлык должен остаться активными по умолчанию

автор
5 дней
0

да, я гуглопереводил, но пока мой мозг спит и не понимает как это реализовать

5 дней
1

т.к. тут комментарии черт знает как устроены, то отвечу тут
параметр:
fold_linux_kernels = false
https://www.rodsbooks.com/refind/configfile.html

автор
5 дней
0

т.е. вот в этом файле /boot/efi/EFI/refind/refind.conf
надо раскоментить fold_linux_kernels = false ?

автор
5 дней
0

вот так вот верно?

автор
4 дня
0

вместо одного решения неприятности получил два, помимо того, что хук работает, та еще и у rEFInd-а появилось в меню второе ядро. всем спасибо, я щастлив))) . те, кто не хочет чтобы меню рефайнда разросталось — используют хук, а те, кому пофиг — используют редактирование конфига рефайнда. вариант загрузки сохраняется и будет использоваться по умолчанию