LINUX.ORG.RU

Refind не видит arch

 , ,


0

1

Есть ноут, на нем установлена windows и archlinux (UEFI, GPT).GRUBбыл удален, вместо него установлен rEFInd.

Разметка:

Устр-во       начало     Конец   Секторы Размер Тип
/dev/sda1       2048    923647    921600   450M Среда для восстановления Microsoft
/dev/sda2     923648   1128447    204800   100M EFI
/dev/sda3    1128448   1161215     32768    16M Зарезервированный раздел Microsoft
/dev/sda4    1161216 314574847 313413632 149,5G Microsoft basic data
/dev/sda5  314574848 771971071 457396224 218,1G Microsoft basic data
/dev/sda6  771971072 976773134 204802063  97,7G Корневой раздел Linux (x86-64)
EFI раздел монтируется в /boot/efi, соответсвенно rEFInd не может искать образ в /boot (правильно я понимаю ?), а образ ядра и загрузчик лежат именно в /boot. Временное решение: скопировать vmlinux и initramfs в /boot/efi/EFI/arch, тогда они находятся и успешно загружается archlinux.

Что пробовал сделать:

  • В refind.conf есть параметр also_scan_dirs, но я не смог заставить сканировать корень, вводил очень много чего (от /.. до /dev/sda2)
  • Создать точку входа:
        menuentry "MY ARCH" {
            icon     /EFI/themes/rEFInd-minimal/icons/os_arch.png
            volume   Boot
            loader   /vmlinuz-linux
            initrd   /initramfs-linux.img
            options  "root=/dev/sda4 ro"
            submenuentry "Boot using fallback initramfs" {
                    initrd /initramfs-linux-fallback.img
            }
    
    И тут тоже пытался играть с путями к файлам, безуспешно.

Вопрос: как мне попросить rEFInd искать эти два файла в /boot, или попросить систему генерировать образ ядра и loader в /boot/efi/EFI/arch а не в /boot ? и какой из этих вариантов верный. P.S: с загрузкой windows проблем нет.

Ты всё зачем-то себе усложнил. EFI — уже загрузчик, Arch уже умеет в EFI_VARS / EFI_STUB, венда тоже прекрасно справляется с загрузкой (в том числе без Secure Boot).

У меня в профиле есть ссылка на статью, которая тебе будет полезна к ознакомлению.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

https://lorwiki.ru/wiki/Установка_Linux_на_EFI в этой статье автор собирает собственное ядро, и затем (как и я) копирует его в нужную директорию этой строкой:

# cp /usr/src/linux/arch/x86/boot/bzImage /boot/EFI/Distro/kernel.efi
а rEFInd это тоже boot manager а не bootloader, как и efibootmgr, только красивый. Так что отличий от описанного в статье я не вижу.

Aleksey88 ()
Ответ на: комментарий от Aleksey88

в этой статье автор собирает собственное ядро

Естественно, автор собирает ядро, у автора — гента, ибо автор — я. Но тебе раздел сборки ядра не нужен, у тебя ядро уже готово. Всё остальное старается раскрыть магию, чтобы было понятно.

Так что отличий от описанного в статье я не вижу.

В статье описан 100% рабочий метод, проверенный годами. Я занимаюсь ефями ещё со времён, когда они были редкостной дрянью редкостью, так что кое-какой опыт в этом имею.

Хотя, есть ещё Andrew, он тоже может внести вклад в тред, если захочет.

r3lgar ★★★★★ ()
Ответ на: комментарий от Aleksey88

хочу rEFInd

Ничем помочь не могу, мне оно тоже не давало.

r3lgar ★★★★★ ()

У тебя пути loader и initrd ведут к симлинкам, как я понимаю. Укажи действительный путь к файлам:

        loader   /boot/vmlinuz-linux
	initrd   /boot/initramfs-linux.img
Refind не нужно, чтобы ядра и initrd были в ESP.

Andrew ★★★ ()
Последнее исправление: Andrew (всего исправлений: 1)
Ответ на: комментарий от Andrew

У тебя пути loader и initrd ведут к симлинкам, как я понимаю.

нет, мне пришлось именно скопировать файлы из корня /boot в /boot/efi/EFI/arch. при обновлении ядра естественно придется копировать каждый раз заново.

# ln -s /boot/vmlinuz-linux /boot/efi/EFI/arch/vmlinuz-linux
ln: не удалось создать символьную ссылку '/boot/efi/EFI/arch/vmlinuz-linux': Операция не позволена
создать симлинк не разрешает.

трабл в том что везде пишут монтировать ESP надо в /boot/efi (я так и сделал), а ядра генерятся в /boot, т.е. не в ESP (если я все правильно понимаю, конечно).

Aleksey88 ()
Ответ на: комментарий от Andrew

можно ли сделать следующее ?

  • делаем бэкап ESP
  • форматируем ESP
  • монтируем ESP в /boot
  • копируем из бэкапа загрузчик винды и файлы refind
  • грузимся с live образа и генерим ядра

будет ли тогда при загрузке ESP монтироваться в /boot а не в /boot/efi, и вообще помогут ли эти действия ?

Aleksey88 ()
Ответ на: комментарий от Aleksey88

Ты не понял. У тебя в конфиге /vmlinuz-linux ведет, внезапно, к /vmlinuz-linux, а не в /boot/vmlinuz-linux. Для Refind здесь корень не ESP, а корень линуксовой ФС.

Andrew ★★★ ()
Последнее исправление: Andrew (всего исправлений: 1)
Ответ на: комментарий от Andrew

открывал из-под рута папку /boot в саблайме, и вместо remove folder from project нажал delete folder, поэтому спасибо большое за обьяснение, увы отписаться помогло ли решение не смогу уже. вот сейчас сижу и думаю насколько лохом надо быть чтоб так облажаться...

Aleksey88 ()

а доки почитать? http://www.rodsbooks.com/refind/linux.html

TLDR: проверяем, что refind может читать нашу файловую систему (http://www.rodsbooks.com/refind/drivers.html); кладем в /boot файл refind_linux.conf с прописанными опциями загрузки (примеры можно нагуглить). И все, должно заработать. Править refind.conf не надо.

anonymous ()
Ответ на: комментарий от Aleksey88

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

anonymous ()
Ответ на: комментарий от anonymous

Содержание /boot/refind_linux.conf

"Boot with standard options"        "ro root=UUID=f79e5893-5a8d-4d36-90d5-e48190967ca4   "
"Boot to single-user mode"          "ro root=UUID=f79e5893-5a8d-4d36-90d5-e48190967ca4   single"
"Boot with minimal options"         "ro root=UUID=f79e5893-5a8d-4d36-90d5-e48190967ca4"
а по поводу драйвера фс в rEFInd я не особо понял что там написано(у меня «/» в ext4): куда класть, где собственно нужные файлы в том репозитории(почему там и иконки и куча других файлов...). Если можете - объясните подробней.

Aleksey88 ()
Ответ на: комментарий от ChALkeR

а как же розовый background и hello kitty вместо значков ОС ?

хочу красиво :)

Aleksey88 ()
Ответ на: комментарий от anonymous

кстати, в папке /boot/efi/EFI/refind/drivers_x64 лежит файл ext4_x64.efi, я подозреваю что это и есть драйвер фс ext4...

Aleksey88 ()
Ответ на: комментарий от anonymous

ну да, и виндовый загрузчик надо восстановить, и тему заново установить...

Aleksey88 ()
Ответ на: комментарий от Aleksey88

разобрался с refind? у меня тоже ядро не находит, только винду

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.