Необходимо поддерживать расположение vmlinuz в разных каталогах.
Он ещё и на syslinux завязан: [ -d "$MNT/syslinux" ] || fatal "Error: bad image: no syslinux directory" [ -d "$TFTPDIR" ] || fatal "Error: no $TFTPDIR" cp -f "/usr/lib/syslinux/pxelinux.0" "$TFTPDIR/pxelinux.0" || fatal "Error: can't copy pxelinux.0 to $TFTPDIR" cp -fr "$MNT/syslinux" "$TFTPDIR/syslinux" || fatal "Error: can't copy syslinux directory to $TFTPDIR" mkdir -p "$TFTPDIR/pxelinux.cfg" || fatal "Error: can't create $TFTPDIR/pxelinux.cfg" Только для Legacy? По багу. Нужно исправить вот это место в alterator-netinst/bin/alterator-netinst: # Setting up pxelinux.cfg sed -e " 1i\ default $default s%\(kernel\)[[:space:]]\+\([^[:space:]]\+\)%\1 syslinux/\2% s%timeout[[:space:]]\+\([^[:space:]]\+\)%timeout 100% /^default[[:space:]]/d s/.*gfxboot bootlogo.*// /^[[:space:]]*append/{ s%initrd=\([^[:space:]]\+\)%initrd=syslinux/\1% s%automatic=[^[:space:]]\+%% s%\$% automatic=method:nfs,network:dhcp${tz:+ tz=$tz} ${lang:+ lang=$lang} ${krb5:+ krb5} $vnc% }"\ "$TFTPDIR/syslinux/isolinux.cfg" \ > "$TFTPDIR/pxelinux.cfg/default" Т.е. проблема в том, что раньше был относительный путь: alt0/vmlinuz теперь же абсолютный: /boot/vmlimuz Думаю, нужно уточнить s%\(kernel\)[[:space:]]\+\([^[:space:]]\+\)%\1 syslinux/\2% s%initrd=\([^[:space:]]\+\)%initrd=syslinux/\1% каталогом alt0, чтобы не добавлял перед /boot syslinux. И заменять дополнительно: kernel /boot/ initrd /boot/ на kernel boot/ initrd boot/
(Ответ для Антон Мидюков на комментарий #1) > И заменять дополнительно: > > kernel /boot/ > initrd /boot/ > > на > > kernel boot/ > initrd boot/ initrd=/boot/ на initrd=boot/ разумеется.
Этот /boot ещё нужно скопировать в $TFTPDIR/ :-) А вот если его скопировать (при наличии /boot в корне образа) в $TFTPDIR/syslinux, то остальной код можно оставить как есть.
Как-то так: http://git.altlinux.org/tasks/274065/gears/100/git
(Ответ для Andrew Vasilyev на комментарий #3) > Этот /boot ещё нужно скопировать в $TFTPDIR/ :-) > А вот если его скопировать (при наличии /boot в корне образа) в > $TFTPDIR/syslinux, то остальной код можно оставить как есть. Ага. Задание сразу увидел и посмотрел. Только может не копировать каталоги, вложенные в boot/ ? Лишние мегабайты же (10 МБ).
(Ответ для Антон Мидюков на комментарий #5) > (Ответ для Andrew Vasilyev на комментарий #3) > > Этот /boot ещё нужно скопировать в $TFTPDIR/ :-) > > А вот если его скопировать (при наличии /boot в корне образа) в > > $TFTPDIR/syslinux, то остальной код можно оставить как есть. > > Ага. Задание сразу увидел и посмотрел. > Только может не копировать каталоги, вложенные в boot/ ? Лишние мегабайты же > (10 МБ). Т.е. копировать только /boot/{vm*,full.cz}? А никаких других имён быть не может? И возникла ещё одна ошибка: если в isolinux.cfg есть, например в начале ui menu.c32 то ей тоже нужно добавить префикс syslinux/ (или удалить), иначе возникает ошибка.
(Ответ для Andrew Vasilyev на комментарий #6) > (Ответ для Антон Мидюков на комментарий #5) > > (Ответ для Andrew Vasilyev на комментарий #3) > > > Этот /boot ещё нужно скопировать в $TFTPDIR/ :-) > > > А вот если его скопировать (при наличии /boot в корне образа) в > > > $TFTPDIR/syslinux, то остальной код можно оставить как есть. > > > > Ага. Задание сразу увидел и посмотрел. > > Только может не копировать каталоги, вложенные в boot/ ? Лишние мегабайты же > > (10 МБ). > > Т.е. копировать только /boot/{vm*,full.cz}? А никаких других имён быть не > может? Конечно же нет. Создать каталог $TFTPDIR/syslinux/boot. Найти в каталоге boot файлы с глубиной поиска 0. Скопировать их в $TFTPDIR/syslinux/boot. Просто мало ли чего там лишнего лежит. Ну или каталоги после копирования удалить из $TFTPDIR/syslinux/boot. Но может и не стоит за копейки переживать. > > И возникла ещё одна ошибка: если в isolinux.cfg есть, например в начале > > ui menu.c32 > > то ей тоже нужно добавить префикс syslinux/ (или удалить), иначе > возникает ошибка. Так может проблема эта и раньше была? Непохоже, что с этой как-то связана.
(Ответ для Антон Мидюков на комментарий #7) > > Т.е. копировать только /boot/{vm*,full.cz}? А никаких других имён быть не > > может? > > Конечно же нет. Создать каталог $TFTPDIR/syslinux/boot. Найти в каталоге > boot файлы с глубиной поиска 0. Скопировать их в $TFTPDIR/syslinux/boot. > Просто мало ли чего там лишнего лежит. Ну или каталоги после копирования > удалить из $TFTPDIR/syslinux/boot. Но может и не стоит за копейки переживать. Если не переписывать всю логику (как предложил cas@: искать vmlinuz и т.п. и подставлять полные пути), а сделать простой fix, то не стоит усложнять. > > И возникла ещё одна ошибка: если в isolinux.cfg есть, например в начале > > ui menu.c32 > > то ей тоже нужно добавить префикс syslinux/ (или удалить), иначе > > возникает ошибка. > > Так может проблема эта и раньше была? Непохоже, что с этой как-то связана. Да, но её тоже нужно исправлять. См. http://git.altlinux.org/tasks/274065/gears/200/git
Добавил копирование pxelinux.0 с образа, если он там есть. http://git.altlinux.org/tasks/274065/gears/300/git
(Ответ для Антон Мидюков на комментарий #1) > Он ещё и на syslinux завязан: > > Только для Legacy? > А кто-нибудь знает, как в UEFI вообще сетевая загрузка работает? Подозреваю, что в alterator-netinst на эту тему вообще ничего нет.
(Ответ для Anton V. Boyarshinov на комментарий #10) > (Ответ для Антон Мидюков на комментарий #1) > > Он ещё и на syslinux завязан: > > > > > Только для Legacy? > > > А кто-нибудь знает, как в UEFI вообще сетевая загрузка работает? Подозреваю, > что в alterator-netinst на эту тему вообще ничего нет. Проверяли сетевую установку в UEFI, точно работает с FTP, NFS. Так же проверяли автоустановку. Требуется выполнить дополнительные настройки, которые были добавлены в https://www.altlinux.org/Autoinstall#Автоустановка_в_UEFI начиная со слов "Скопировать файлы full.cz и vmlinuz ..."
В Сизифе исправлено, в p9 отправлено. * Tue Jun 08 2021 Andrew A. Vasilyev <andy@altlinux.org> 1.9.1-alt4 - Copy /boot from new images to syslinux directory. - Remove user menu. - Copy pxelinux.0 from image if exists.
Спасибо!