Не много о самописном grub.cfg

Holden
в uefi выходит окно No bootable после перезагрузки. Ставил с разными загрузчиками, refind также не грузит систему. Возможно, какая-то несовместимость в биосе. Ноут Aser
возможно что не позволяет биос использовать его как загрузочный
Проверьте видит ли этот диск груб

вики
ls -lh
И видит ли установленное на этот диск ядро арча.
Если видит то можно держать загрузчик на другом диске или даже флешке, а грузить ядро и систему с этого диска.
vs220
Проверьте видит ли этот диск груб
Проверял. В режиме msdos не видит, в uefi определяет, но после установки не загружается. Причем не загружается даже если ставлю на стандартный SATA диск. Secure boot отключаю, есно. До этого был Asus, проблем не было. Ладно, все работает и хорошо.
Holden
Есть у меня слот для SSD M2 (nvme0n1).

Предполагаю, что у меня тоже M2, коли SSD &


ls /dev/nv
nvme0      nvme0n1    nvme0n1p1  nvme0n1p2  nvme0n1p3  nvme0n1p4  nvme0n1p5
.

Про имя - я дал ему имя arch.iso, его и пишу. Смонтированный диск все равно имеет имя вида ARCH_202012.
wau
Предполагаю, что у меня тоже M2, коли SSD &
NVMe или M.2 или SATA
Holden
не загружается даже если ставлю на стандартный SATA диск
При загрузке груба перейдите в его консоль и гляньте виден ли диск и его содержимое, инструкцию выше в вике давал
прописал я ему, ненасытному, img_loop=archlinux-2020.12.01-x86_64.iso. Толку ноль - он и ранее писал, что там на момент поиска исошного файла уже смонтирована корневая система - /run/archiso/img_dev/здесь уже директории корневой системы и никаких исо, совсем.
vs220
При загрузке груба перейдите в его консоль и гляньте виден ли диск и его содержимое
Попробую еще раз на выходные на старом SSD.
wau
(hd0,3)
нет такого раздела в grub-2.04*. Просто нет. Есть (hd0,msdos3), а (hd0,3) нет.
wau
probe (я, конечно, пробовал) - моя консоль такого не знает.
Какая консоль? Это команда grub.
Родилось подозрение, что у вас или первый grub или grub4dos.
PS. В части msdos может и не прав, grub на такой, (hd0,3), синтаксис отзывается.
Wau с русской вики возьмите конфиг,
и у вас исошка на бтрфс разделе? В ядре исошки может не быть его модуля, надо проверить
Сейчас загрузился с образа archiso, расположенного на sda3 в /ISO ... опишу для понимания подробнее что делал
PS - Лучше пробовать для начала загрузку из консоли grub не с образа, а с системы, что на много проще. Описание команд grub можно посмотреть в указанном выше мануале (подробно их не описываю).
- смотрим список дисков и разделов
grub > ls
(hd0,msdos7)  (hd0,msdos6)  (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd0,msdos0)

- переходим на нужный нам раздел 3
grub > set root=(hd0,3)  # msdos можно не писать, grub понимает и так

- смотрим наши ядра и убеждаемся, что все на месте
grub > ls /boot
grub initramfs-linux-lts.img  initramfs-linux.img  memdisk  vmlinuz-linux  vmlinuz-linux-lts

- смотрим наши образы и убеждаемся, что нужный нам образ archlinux-2020.08.01-x86_64.iso на месте
grub > ls /ISO
archlinux-2020.08.01-x86_64.iso  systemrescuecd-amd64-6.1.5.iso

Раз все на месте, пробуем загрузиться
- вводим переменную isofile, чтобы каждый раз не писать /ISO/archlinux-2020.08.01-x86_64.iso
grub > set isofile=/ISO/archlinux-2020.08.01-x86_64.iso

- создаем устройство из образа файловой системы
grub > loopback loop (hd0,3)$isofile

- получаем нужную информацию об устройстве и присваиваем результат соответствующей переменной
grub > probe -s root_uuid -u $root

- загружаем ядро linux
grub > linux (loop)/arch/boot/x86_64/vmlinuz-linux img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$isofile  earlymodules=loop

- загружаем initramfs для образа ядра
grub > initrd (loop)/arch/boot/x86_64/archiso.img

- финальная загрузка …
grub > boot
все проверено, загрузился успешно ...

PS - не забываем - на новом iso изменилось название initramfs .... вместо archiso.img нужно initramfs-linux.img

EDIT 1 - исправил описку ... было earlymodules=boot , а нужно earlymodules=loop
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.