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

Ну так пишите вместо "ArchLinux" нужное название
Логично. А поизучать мануалы мне все же на НГ придется.
используйте uuid или label
Спасибо, так и сделаю
Holden
по сути нужна только поддержка Parted Magic
Раньше делал так в загрузочной флэшке, правда образ старый от 2013г., но привожу в качестве примера
## Загрузка Parted Magic
menuentry "Parted Magic (64 bit) - pmagic_2013_05_01" {
    set isofile="/images/pmagic_2013_05_01.iso"
    loopback loop $isofile
    linux (loop)/pmagic/bzImage64
    echo   'Loading initramfs ...'
    initrd (loop)/pmagic/initrd.img
}
Немного пояснения в части нахождения путей ядра и initrd: монтируем образ (в pcmanfm это делается просто) и ищем где находятся эти нужные файла.
В части образа 2013г. - находим в директории /pmagic (в смонтированном образе) 3 файла - два ядра и один initrd
bzImage,  bzImage64,  initrd.img
bzImage - для 32-битной архитектуры, а bzImage64 - для 64-битной архитектуры.
Пути найдены, остается их правильно прописать в конфиг.
Но не во всех образах все так просто ...
Ошибки не исчезают с опытом - они просто умнеют
Holden
Можно-ли каким-то образом его идентифицировать в меню GRUB, не, как "ArchLinux", а по его истинному названию?
vs220 уже объяснил ... просто привожу для уточнения и понимания, как это трактуется в DOC (привожу не дословно, а упрощенно, чтобы не путать)
menuentry title { command; … }
Это определяет пункт меню GRUB с именем title. Когда эта запись выбрана в меню, GRUB выполнит список команд, указанный в фигурных скобках, и если последняя команда в списке вернулась успешно и ядро было загружено, оно выполнит команду загрузки.
То есть запись title будет отображаться в меню Grub соответсвующего пункта - что напишешь, то и будет отображено, а к выполнению команд это не относится.
Ошибки не исчезают с опытом - они просто умнеют
vs220
проверить что не ошиблись с диском hd0,3
Да, мне покоя не давало то, что нигде не указано устройство. Давно такого не видел hd0,3. У меня в dev это так -/dev/nvme0n1p4

т.е. указывать так? -
nvme0n1p,4
wau
Не работает. При загрузке груб пишет - не найден файл /arch/boot/x86_64/archiso.img. ЧЯДНТ?
если меняешь содержание приведенного конфига, то нужно менять только то, что у тебя отличается, например,
- местоположение образа - рекомендую на первом этапе особо не менять - создай директорию /ISO и положи туда образ
- название образа: у меня archlinux-2020.08.01-x86_64.iso - пропиши свое, без ошибок
- (hdX,Y) : X - номер диска, отсчет с 0 (у меня всего один диск, значит X=0), Y - номер основного раздела, отсчет с 1 (у меня раздел 3, значит Y=3)

PS - для уточнения, можешь зайти в консоль Grub (в меню нажимаешь с) ... и далее тренируйся, как в консоли
ls - список доступных дисков и разделов
echo $prefix - покажет куда установлен grub
set root=(hdX,Y) - задаем диск и раздел, в который нужно перейти
ls /boot - смотрим список ядер
... и так далее ... и даже отсюда же можно загрузиться ...

EDIT 1 - У тебя, кстати, даже не правильно записана 1-ая строчка
Ошибки не исчезают с опытом - они просто умнеют
loopback loop (hd0,3)$isofile - соответствует моей ситуации. Но ругается. Исо файл только что (тогда) был скачанный, развернут на флэшку (dd) и работает с флэшки исправно. Но в текущей редакции исо нет такого файла - /arch/boot/x86_64/archiso.img, там -


ls -R /run/media/us/ARCH_20201*
/run/media/us/ARCH_202012:
arch  EFI  loader  shellx64.efi  syslinux

/run/media/us/ARCH_202012/arch:
boot  pkglist.x86_64.txt  x86_64

/run/media/us/ARCH_202012/arch/boot:
amd-ucode.img  intel-ucode.img  licenses  memtest  x86_64

/run/media/us/ARCH_202012/arch/boot/licenses:
amd-ucode  intel-ucode  memtest86+

/run/media/us/ARCH_202012/arch/boot/licenses/amd-ucode:
LICENSE.amd-ucode

/run/media/us/ARCH_202012/arch/boot/licenses/intel-ucode:
LICENSE

/run/media/us/ARCH_202012/arch/boot/licenses/memtest86+:
license.txt

/run/media/us/ARCH_202012/arch/boot/x86_64:
initramfs-linux.img  vmlinuz-linux

/run/media/us/ARCH_202012/arch/x86_64:
airootfs.sfs  airootfs.sfs.sig  airootfs.sha512

/run/media/us/ARCH_202012/EFI:
BOOT

/run/media/us/ARCH_202012/EFI/BOOT:
BOOTx64.EFI

/run/media/us/ARCH_202012/loader:
entries  loader.conf

/run/media/us/ARCH_202012/loader/entries:
archiso-x86_64-linux.conf  archiso-x86_64-speech-linux.conf

/run/media/us/ARCH_202012/syslinux:
archiso_head.cfg       config.c32     elf.c32       ifplop.c32       libutil.c32  pmload.c32    syslinux.c32
archiso_pxe.cfg        cptime.c32     ethersel.c32  isohdpfx.bin     linux.c32    poweroff.c32  syslinux.cfg
archiso_pxe-linux.cfg  cpu.c32        gfxboot.c32   isolinux.bin     lpxelinux.0  prdhcp.c32    vesa.c32
archiso_sys.cfg        cpuid.c32      gpxecmd.c32   kbdmap.c32       ls.c32       pwd.c32       vesainfo.c32
archiso_sys-linux.cfg  cpuidtest.c32  hdt           kontron_wdt.c32  lua.c32      pxechn.c32    vesamenu.c32
archiso_tail.cfg       debug.c32      hdt.c32       ldlinux.c32      mboot.c32    reboot.c32    vpdtest.c32
boot.cat               dhcp.c32       hexdump.c32   lfs.c32          memdisk      rosh.c32      whichsys.c32
cat.c32                dir.c32        host.c32      libcom32.c32     meminfo.c32  sanboot.c32   zzjson.c32
chain.c32              disk.c32       ifcpu64.c32   libgpl.c32       menu.c32     sdi.c32
cmd.c32                dmi.c32        ifcpu.c32     liblua.c32       pci.c32      splash.png
cmenu.c32              dmitest.c32    ifmemdsk.c32  libmenu.c32      pcitest.c32  sysdump.c32

/run/media/us/ARCH_202012/syslinux/hdt:
modalias.gz  pciids.gz


т.е. нет слова archiso.img
С ошибкой в смысле menuentry вместо submenu? так я не планировал древовидность.

# пункт меню номер 3
submenu "archlinux-2020.08.01-x86_64.iso" {
 #set root=(hd0,3)
 set isofile=/ISO/archlinux-2020.08.01-x86_64.iso
 #loopback loop (hd0,3)/archlinux-2020.08.01-x86_64.iso
 loopback loop (hd0,3)$isofile
 probe -s root_uuid -u $root

я ошибаюсь, или в строке probe -s root_uuid -u $root ссылаются на незаданный параметр $root?
wau
нет слова archiso.img

На
initramfs-linux.img поменяйте
wau
т.е. нет слова archiso.img
Значит изменилось
wau
/run/media/us/ARCH_202012/arch/boot/x86_64:
initramfs-linux.img vmlinuz-linux
стало initramfs-linux.img ... посмотри размер, должен быть около 50М ... и пробуй ...
Всегда что то меняется, вот поэтому и нужно понимать, как это все прописывается и ищется ... то есть нужна практика и немного теории

PS - пока писал, vs220 ответил ...

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