| Summary: | Поддержка образа syslinux/alt0/vmlinuz и boot/vmlinuz | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Andrey Cherepanov <cas> |
| Component: | alterator-netinst | Assignee: | Anton V. Boyarshinov <boyarsh> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | aen, andy, antohami, boyarsh, snowmix |
| Version: | unstable | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
|
Description
Andrey Cherepanov
2021-06-08 15:45:25 MSK
Он ещё и на 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, то остальной код можно оставить как есть. (Ответ для 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. Спасибо! |