ISO: латинские подписи меню, свой текст отсчёта, hotkey b, chmod перед записью
По результатам первого реального boot-теста образа (QEMU/OVMF, BIOS + UEFI + UEFI Secure Boot — все три доходят до меню, наш пункт по умолчанию): - подписи пунктов латиницей: vesamenu (BIOS) кириллицу не отображает — были кракозябры; в grub тот же риск со шрифтом темы; - подсказка обратного отсчёта своя («Bridge&Join install starts in # seconds») и пишется в конец isolinux.cfg ПОСЛЕ include menu.cfg — внутри menu.cfg подменю Advanced повторно включает stdmenu.cfg и перебивало autoboot из txt.cfg; - горячая клавиша b (i занята родным «Install» в grub); - без «(Debian 13)» в подписи — обрезалось краем бокса темы UEFI, и так в заголовке; - chmod u+w перед >> в isolinux.cfg: файлы, извлечённые xorriso из ISO, 0444. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
@@ -34,8 +34,9 @@ KERNEL=$(awk '/^\s*kernel/{print $2; exit}' "$WORK/isolinux/txt.orig")
|
|||||||
INITRD=$(grep -o 'initrd=[^ ]*' "$WORK/isolinux/txt.orig" | head -1 | cut -d= -f2)
|
INITRD=$(grep -o 'initrd=[^ ]*' "$WORK/isolinux/txt.orig" | head -1 | cut -d= -f2)
|
||||||
{
|
{
|
||||||
echo "default bj"
|
echo "default bj"
|
||||||
|
# Подпись — латиницей: vesamenu (BIOS) кириллицу не отображает (кракозябры).
|
||||||
echo "label bj"
|
echo "label bj"
|
||||||
echo " menu label ^Установить Bridge&Join $VERSION (Debian 13)"
|
echo " menu label ^Install Bridge&Join $VERSION"
|
||||||
echo " menu default"
|
echo " menu default"
|
||||||
echo " kernel $KERNEL"
|
echo " kernel $KERNEL"
|
||||||
echo " append vga=788 initrd=$INITRD $BOOT --- quiet"
|
echo " append vga=788 initrd=$INITRD $BOOT --- quiet"
|
||||||
@@ -44,6 +45,11 @@ INITRD=$(grep -o 'initrd=[^ ]*' "$WORK/isolinux/txt.orig" | head -1 | cut -d= -f
|
|||||||
xorriso -osirrox on -indev "$SRC" -extract /isolinux/isolinux.cfg "$WORK/isolinux/isolinux.cfg" >/dev/null 2>&1
|
xorriso -osirrox on -indev "$SRC" -extract /isolinux/isolinux.cfg "$WORK/isolinux/isolinux.cfg" >/dev/null 2>&1
|
||||||
sed -i 's/^timeout .*/timeout 100/; s/^prompt .*/prompt 0/' "$WORK/isolinux/isolinux.cfg"
|
sed -i 's/^timeout .*/timeout 100/; s/^prompt .*/prompt 0/' "$WORK/isolinux/isolinux.cfg"
|
||||||
grep -q '^timeout' "$WORK/isolinux/isolinux.cfg" || echo "timeout 100" >> "$WORK/isolinux/isolinux.cfg"
|
grep -q '^timeout' "$WORK/isolinux/isolinux.cfg" || echo "timeout 100" >> "$WORK/isolinux/isolinux.cfg"
|
||||||
|
# Подсказка обратного отсчёта — в конец isolinux.cfg, ПОСЛЕ include menu.cfg: внутри
|
||||||
|
# menu.cfg подменю «Advanced» повторно включает stdmenu.cfg и перебивает autoboot из txt.cfg.
|
||||||
|
# (файл, извлечённый xorriso, имеет права 0444: sed -i пересоздаёт его, а >> без chmod не запишет)
|
||||||
|
chmod u+w "$WORK/isolinux/isolinux.cfg"
|
||||||
|
echo "menu autoboot Bridge&Join install starts in # seconds, press a key to choose" >> "$WORK/isolinux/isolinux.cfg"
|
||||||
|
|
||||||
# UEFI: первый пункт в grub
|
# UEFI: первый пункт в grub
|
||||||
xorriso -osirrox on -indev "$SRC" -extract /boot/grub/grub.cfg "$WORK/grub/grub.orig" >/dev/null 2>&1
|
xorriso -osirrox on -indev "$SRC" -extract /boot/grub/grub.cfg "$WORK/grub/grub.orig" >/dev/null 2>&1
|
||||||
@@ -53,7 +59,8 @@ INITRDG=$(awk '/^\s*initrd\s/ && $2 !~ /gtk/ {print $2; exit}' "$WORK/grub/grub.
|
|||||||
{
|
{
|
||||||
echo "set default=0"
|
echo "set default=0"
|
||||||
echo "set timeout=10"
|
echo "set timeout=10"
|
||||||
echo "menuentry --hotkey=i 'Установить Bridge&Join $VERSION (Debian 13)' {"
|
# латиницей (шрифт grub-темы без кириллицы), горячая клавиша b — у родного «Install» занята i
|
||||||
|
echo "menuentry --hotkey=b 'Install Bridge&Join $VERSION' {"
|
||||||
echo " set background_color=black"
|
echo " set background_color=black"
|
||||||
echo " linux $LINUX vga=788 $BOOT --- quiet"
|
echo " linux $LINUX vga=788 $BOOT --- quiet"
|
||||||
echo " initrd $INITRDG"
|
echo " initrd $INITRDG"
|
||||||
|
|||||||
Reference in New Issue
Block a user