LINUX.ORG.RU

Нужна помощь с установкой арча на uefi

 , ,


1

2

Раздел uefi примонтирован к /boot. В качестве загрузчика - systemd-boot (раньше до слияния использовал gummiboot, но уже не помню, как тогда решил проблему). Загрузчик установил так:

bootctl --path=/boot install
Ядро лежит в /boot/EFI. Конфиг загрузчика:
title          Arch Linux
linux          /boot/EFI/vmlinuz-linux
initrd         /boot/EFI/initramfs-linux.img
При загрузке ОС оно мне пишет, что не нашло vmlinuz-linux в \boot\EFI\vmlinuz-linux. Чяднт?


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

Оно там и лежало сначала, но толку всё равно 0.

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

То же, что и всеми остальными его комментами: ему нечего сказать по теме, но придраться хоть к чему-нибудь, дабы наяривать шкворец, ему нужно.

Deleted
()

Потому что надо указывать путь относительно корневого каталога EFI-раздела, а не корневой ФС Linux. Загрузчик ничего про fstab не знает, а без него определить какая ФС куда смонтируется невозможно (в свою очередь определить какая ФС содержит fstab тоже нельзя - для этого надо парсить параметры ядра, которые, кстати, можно задать при компиляции ядра, а не указывать в конфиге загрузчика, к тому же часть из них влияет на скрипты из initrd, а не само ядро, а в initrd можно что угодно запихать). В общем, с точки зрения загрузчика существуют только отдельные разделы с каким-то ФС (причём gummyboot не содержит драйверов ФС, а полагается сугубо на сервисы UEFI, которые умеют только в FAT), которые не известно куда смонтируются и смонтируются ли.

Напиши:

linux          /EFI/vmlinuz-linux
initrd         /EFI/initramfs-linux.img

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)
ls -lR /boot
mount | grep /boot
pacman -Ql linux | grep /boot

Вангую, что у тебя boot отдельным разделом (разумеется, ведь это ESP), а пути в конфиге загрузчика должны быть прописаны относительно самого раздела с загрузчиком, а не относительно линуксового корня. Действительно, загрузчик ведь не знает ничего про загружаемый линукс и про то, что в нём этот раздел на самом деле /boot.

Поэтому убери /boot из путей в конфиге загрузчика (так, чтобы осталось /vmlinuz-linux или /EFI/vmlinuz-linux и аналогично для initramfs).

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

Ага. Добавлю ещё, что это всё истинно для любого загрузчика, в том числе всякие GRUB, которые настолько продвинуты, что содержат собственные драйвера ФС (а значит не обязательно класть ядро на ESP). Просто иногда умные скрипты генерации конфигов (например, grub-mkconfig) автоматом определяют на каком разделе что лежит и указывают это в конфиге, используя данные, которые доступны с уже загруженного Linux. А у gummyboot таких скриптов нет, там вообще надо вручную пункты меню создавать.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)

Ссылка на хауту у меня в профиле.

r3lgar ★★★★★
()
$ tree /boot
/boot
├── EFI
│   ├── Boot
│   │   └── BOOTX64.EFI
│   └── systemd
│       └── systemd-bootx64.efi
├── initramfs-linux-fallback.img
├── initramfs-linux.img
├── initramfs-linux-lts-fallback.img
├── initramfs-linux-lts.img
├── intel-ucode.img
├── loader
│   ├── entries
│   │   ├── arch.conf
│   │   └── arch-lts.conf
│   └── loader.conf
├── vmlinuz-linux
└── vmlinuz-linux-lts
$ cat /boot/loader/entries/arch.conf 
title		Arch Linux
linux		/vmlinuz-linux
initrd		/intel-ucode.img
initrd		/initramfs-linux.img
options		root=/dev/sda2 rw radeon.dpm=1
Medar ★★★★★
()
Ответ на: комментарий от Deleted

Лорчую, достал уже своим неприкрытым тупняком, ещё и не стесняется.

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

Хехнул тебе защекан. Проверяй.

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

Всё успешно получилось. Чтобы не мучаться с обновлением ядра, закинул его обратно в /boot.

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