LINUX.ORG.RU

REFInd + Arch (LVM)

 ,


0

1

Всем привет. Ребят, помогите советом, не могу настроить REFind для работы c LVM. Не могу понять какой указать Volume в конфиге, и хочу спросить правильно ли я указал root=

Refind пишет, что указывать в volume, нужно метку форматирования, которой у меня нету. ФС кстати xfs. Пробовал указывать /dev/LVM-PRIME/root, эффект отрицательный :(

Разметка жесткого диска

 /dev/sda1 - boot (EFI)
 /dev/sda2 - LVM

Структура LVM

  --- Logical volume ---
  LV Path                /dev/LVM-PRIME/swap
  LV Name                swap
  VG Name                LVM-PRIME
  LV UUID                6ezyzQ-aElf-zmKF-oDIE-vwNq-b2Qu-aFJH3Q

   
  --- Logical volume ---
  LV Path                /dev/LVM-PRIME/root
  LV Name                root
  VG Name                LVM-PRIME
  LV UUID                r56u5q-FbOU-uRfL-6cBu-Rxoo-7nqm-QYM37I
  
   
  --- Logical volume ---
  LV Path                /dev/LVM-PRIME/home
  LV Name                home
  VG Name                LVM-PRIME
  LV UUID                o5WbJb-JtsQ-jNCm-PAv3-gn0b-o4Bf-oMPHyz
  

Структура /boot

EFI
|
|----->refind
|        |------> refind.conf
|
|------>tools



initramfs-linux-fallback.img
initramfs-linux.img
intel-ucode.img
refind_linux.conf
vmlinuz-linux

Файл EFI/refind/refind.conf

## Settings ###############################################################################

timeout 20
shutdown_after_timeout
use_nvram true

resolution 1366 768

enable_mouse
mouse_size 16
mouse_speed 4

use_graphics_for linux

#showtools memtest

scan_delay 5

###########################################################################################


## Menus ##################################################################################

menuentry "Arch Linux" {
    icon     /EFI/refind/icons/os_arch.png
    volume   "????????"
    loader   /boot/vmlinuz-linux
    initrd   /boot/initramfs-linux.img
    options  "root=/dev/LVM-PRIME/root rw add_efi_memmap"
}

###########################################################################################

Гугл ничего внятного сказать не может, только примеры настройки grub или bootctl. А хочется красоты, т.к будет несколько ОС и несколько ядер.

Буду рад любой помощи, спасибо!)

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

Спасибо за ответ)

Первый вариант: ты refind_linux.conf имеешь введу, он сконфигурирован правильно, и загрузить систему с помощью него можно, но вот только не через EFI/refind/refind.conf, что в свою очередь не позволяет мне создать несколько пунктов меню с нужными мне ОС и параметрами :(

Второй вариант: поддержка драйверов, для запуска системы с xfs.
Удалил загрузчик, установил refind-install --userdefault /dev/sda1 --alldrivers.
Структура /boot изменилась, файл refind_linux.conf не создался.

EFI
|
|---> BOOT
       |
       |---> refind.conf

Но по прежнему нужно прописать параметры в menuentry, в секцию Volume. И опять я не могу понять, что именно нужно прописать. Говорит, что можно использовать partition GUID number, который у LVM: E6D6D379-F507-44C2-A23C-238F2A3DF928, но что-то мне подсказывает, что ход мыслей неверный, т.к томов три, а раздел один....

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

Ладно, дам подсказку. Подумай, ЗАЧЕМ в конфиге указывается id. Для какой цели? Когда дойдет, вопрос исчезнет.

но вот только не через EFI/refind/refind.conf, что в свою очередь не позволяет мне создать несколько пунктов меню с нужными мне ОС и параметрами

тут тоже мимо
https://www.rodsbooks.com/refind/configfile.html

anonymous
()

Гениально. и reFIND - броско и красиво.

Но зачем?

Покажешь строку из /etc/mkinitcpio.conf | grep HOOK ?

это нужно видеть для работы bootctl.

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

Ладно, дам подсказку. Подумай, ЗАЧЕМ в конфиге указывается id. Для какой цели? Когда дойдет, вопрос исчезнет.

Эм...что бы обозначить раздел на котором находиться рам диск и ядро для последующей загрузки. (По любому чушь сказал :D)

У меня этот раздел «BOOT». Его и указывал в конфигурации.

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

Хотя погоди, если учесть, что refind все таки создает нужный пункт меню, хоть и не рабочий, но с нужной иконкой - значит он понимает, что находится на нужном разделе, и все таки видит нужный мне refind.conf. Следовательно, все лоадеры и инитрд-хи, а так же путь к ним, он тоже понимает правильно. Но загрузить не может, т.к kernel panic.

Это должно навести меня на мысли, что он просто не может смонтировать корневой раздел?

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

Кстати, я совсем забыл, сказать о самой ошибке, простите) Если вкратце то

Kernel panic - not syncing: VFS: Unable to mount rootfs on un know-block (0,0)

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

Всё правильно указано в HOOKS.

Однажды, пришлось менять список и ставить в таком порядке

HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block filesystems fsck)

Иначе, не получалось ввести правильно пассфразу для dm-crypt

И ещё. Почему данные options в кавычках?

options «root=/dev/LVM-PRIME/root rw add_efi_memmap»

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

Иначе, не получалось ввести правильно пассфразу для dm-crypt

А у меня LVM, без шифрования)

И ещё. Почему данные options в кавычках?

Эм...ошибочка, спасибо

alexandrovich_ff
() автор топика
Ответ на: комментарий от SturmFuerer

Проверил, кавычки все таки нужны. Без них, он вообще не видит путь, показывает root= место root=/dev/LVM-PRIME/root и сразу кернел паник:(

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

я Вас не понимаю

в первом ответе же anonymous всё подсказал... если сложно, там есть примеры кода конфига... наконец устаревший перевод на русский

Возможно, вам понадобится изменить volume на соответствующий либо метке тома файловой сисьтемы, либо названию раздела, либо UUID раздела, либо же номеру раздела (например, 0:), в котором находится образ ядра

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

От простого, к сложному.

/dev/sda1 - читается UEFI загрузчиком reFIND

Вопрос теперь, почему не находит указанный путь к rootfs в файле конфигурации?

Здесь, и в этом случае, можно сделать намеренную ошибку.

вместо
root=/dev/LVM-PRIME/root
поставить
root=/dev/sda4 и далее
root=/dev/sdb1

В файле конфигурации обязательно указывать/адресовать по LVM-PRIME?

И ещё одно литл мистейк. Не указан intel-ucode.img перед initramfs-linux.img

menuentry "Arch Linux" {
    icon     /EFI/refind/icons/os_arch.png
    volume   "????????"
    loader   /boot/vmlinuz-linux
    initrd   /boot/initramfs-linux.img
    options  "root=/dev/LVM-PRIME/root rw add_efi_memmap"
}
SturmFuerer
()
Ответ на: комментарий от anymouze

Kernel panic - not syncing: VFS: Unable to mount rootfs on un know-block (0,0)

Kernel panic - not syncing: VFS: Unable to mount rootfs on un know-block (0,0)

initrd в процессе исполнения.

Что такое un know-? unknown

Считаю, по практике своей - bootctl достойно использования без лишнего reFIND.

Ненавижу эти примочки со свистелками тарахтелками ненужнымы.

ТС, советую лишь посмотреть вывод комманды efibootmgr -v

SturmFuerer
()

Вообщем разобрался. Во первых все файлы ядра должны быть в директориях или поддиректориях каталога EFI. Во вторых файл refind-linux.conf нужно удалить, иначе появляется рабочий пункт меню, который работает и грузит напрямую vmlinuz-linux, но по какой-то непонятной причине вызывает kernel panic, если грузить через меню созданное в refind.conf. Вообщем лучше уж без него, все равно ведь все пункты меню создаем руками. В третьих для LVM в refind, нужно использовать /dev/mapper/, вместо /dev/LVMGROUP/, не знаю с чем это связано, вроде одно и тоже.

Ну и напоследок о том, что говорил anymouze в коментарии выше и оказался прав. В volume нужно указывать UUID /boot раздела. Что кстати противоречит указаниям документации refind.

Отрывок из созданного самим refind-ом конф. файла

# Sample manual configuration stanzas. Each begins with the "menuentry"
# keyword followed by a name that's to appear in the menu (use quotes
# if you want the name to contain a space) and an open curly brace
# ("{"). Each entry ends with a close curly brace ("}"). Common
# keywords within each stanza include:
#
#  volume    - identifies the filesystem from which subsequent files
#              are loaded. You can specify the volume by filesystem
#              label, by partition label, or by partition GUID number
#              (but NOT yet by filesystem UUID number).

Это меня и запутало, прошу прощения.

Ну и сам рабочий конфиг, кому интересно

menuentry "Arch Linux" {
    icon     /EFI/refind/themes/minimal-black/icons/os_arch.png
    volume   "507A-454E"
    loader   /EFI/Arch/vmlinuz-linux
    initrd   /EFI/Arch/intel-ucode.img
    initrd   /EFI/Arch/initramfs-linux.img
    options  "root=/dev/mapper/LVM--PRIME-root rw"
}

P.S всем большое спасибо за помощь)

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