85 lines
3.3 KiB
Plaintext
85 lines
3.3 KiB
Plaintext
#!ipxe
|
|
|
|
# Configuración inicial
|
|
set ISODIR ogLive
|
|
|
|
# Detectar si se está ejecutando en modo UEFI o BIOS
|
|
iseq ${platform} efi && goto uefi_boot || goto bios_boot
|
|
|
|
# BIOS Boot Logic
|
|
:bios_boot
|
|
echo "Running in BIOS mode..."
|
|
echo "Starting firstboot and secondboot flow using GRUB4DOS..."
|
|
chain http://__SERVERIP__/tftpboot/grub.exe --config-file="
|
|
timeout 0
|
|
set ISODIR=${ISODIR};
|
|
|
|
# Firstboot
|
|
find --set-root --ignore-floppies --ignore-cd /ogboot.me checkrange 0x07 parttype > nul;
|
|
cmp /ogboot.me /ogboot.firstboot || goto secondboot;
|
|
write /ogboot.firstboot iniciado;
|
|
pause Firstboot passed. File updated. Press any key to continue...;
|
|
chainloader +1;
|
|
boot;
|
|
|
|
# Secondboot
|
|
:secondboot
|
|
find --set-root --ignore-floppies --ignore-cd /ogboot.me checkrange 0x07 parttype > nul;
|
|
cmp /ogboot.me /ogboot.secondboot || goto fallback;
|
|
write /ogboot.secondboot iniciado;
|
|
pause Secondboot passed. File updated. Press any key to continue...;
|
|
chainloader +1;
|
|
boot;
|
|
|
|
# Fallback
|
|
:fallback
|
|
pause Firstboot and Secondboot failed. Press any key to continue...;
|
|
quit;
|
|
|
|
# OpenGnsys-CACHE
|
|
echo "Booting OpenGnsys-CACHE"
|
|
kernel tftp://__SERVERIP__/${ISODIR}/ogvmlinuz ro boot=oginit quiet splash vga=788 irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=false ogdebug=false ogupdateinitrd=true ogtmpfs=15 oglivedir=${ISODIR} INFOHOST
|
|
initrd tftp://__SERVERIP__/${ISODIR}/oginitrd.img
|
|
boot || echo "Failed to boot OpenGnsys-CACHE"
|
|
|
|
# OpenGnsys-NET
|
|
echo "Booting OpenGnsys-NET"
|
|
kernel tftp://__SERVERIP__/${ISODIR}/ogvmlinuz ro boot=oginit quiet splash vga=788 irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=false ogdebug=false ogtmpfs=15 oglivedir=${ISODIR} INFOHOST
|
|
initrd tftp://__SERVERIP__/${ISODIR}/oginitrd.img
|
|
boot || echo "Failed to boot OpenGnsys-NET"
|
|
|
|
# OpenGnsys-NET Default
|
|
echo "Booting OpenGnsys-NET Default"
|
|
kernel tftp://__SERVERIP__/ogLive/ogvmlinuz ro boot=oginit quiet splash vga=788 irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=false ogdebug=false ogtmpfs=15 oglivedir=ogLive INFOHOST
|
|
initrd tftp://__SERVERIP__/ogLive/oginitrd.img
|
|
boot || echo "Failed to boot OpenGnsys-NET Default"
|
|
exit
|
|
|
|
# UEFI Boot Logic
|
|
:uefi_boot
|
|
echo "Running in UEFI mode..."
|
|
set timeout 30
|
|
|
|
# Verificar y buscar cargadores en orden de prioridad
|
|
echo "Searching Grub loader..."
|
|
sanboot --no-describe --drive 0 --filename \EFI\grub\Boot\grubx64.efi && exit || echo "Grub not found."
|
|
|
|
echo "Searching rEFInd loader..."
|
|
sanboot --no-describe --drive 0 --filename \EFI\refind\shimx64.efi.signed && exit || echo "rEFInd not found."
|
|
|
|
echo "Searching Part-01-02 loader..."
|
|
sanboot --no-describe --drive 0 --filename \EFI\Part-01-02\Boot\ogloader.efi && exit || echo "Part-01-02 not found."
|
|
|
|
echo "Searching Part-01-03 loader..."
|
|
sanboot --no-describe --drive 0 --filename \EFI\Part-01-03\Boot\ogloader.efi && exit || echo "Part-01-03 not found."
|
|
|
|
echo "Searching Microsoft loader..."
|
|
sanboot --no-describe --drive 0 --filename \EFI\Microsoft\Boot\bootmgfw.efi && exit || echo "Microsoft loader not found."
|
|
|
|
echo "Searching Ubuntu loader..."
|
|
sanboot --no-describe --drive 0 --filename \EFI\ubuntu\grubx64.efi && exit || echo "Ubuntu loader not found."
|
|
|
|
# Fallback: Si no hay cargadores encontrados
|
|
echo "No bootable operating system detected by OpenGnsys. Falling back..."
|
|
exit
|