• Recompilar grubx64.efi para que busque grub.cfg en una ubicación determinada

    Si queremos que grub cargue el archivo grub.cfg desde una carpeta específica no estándar, deberemos compilarlo manualmente con esa configuración:

    grub-mkimage \
      -O x86_64-efi \
      -o grubx64.efi \
      -p '(hd0,gpt1)/EFI/OpenWrt' \
      part_gpt fat normal configfile search search_fs_file echo

    También podemos llamarlo bootx64.efi y hacer que busque directamente en /EFI/OpenWrt/grub.cfg:

    grub-mkimage \
      -O x86_64-efi \
      -o bootx64.efi \
      -p '(hd0,gpt1)/EFI/OpenWrt' \
      part_gpt fat normal configfile search search_fs_file echo

    Si sólo queremos cambiar la ruta, sin compilar nada, la forma más parecida a como Debian lo hace es no recompilar a mano con grub-mkimage, sino usar grub-install con –bootloader-id=OpenWrt. En sistemas UEFI, Debian instala GRUB bajo \EFI\debian\grubx64.efi por defecto, y grub-install permite cambiar ese identificador con –bootloader-id=ID, que es precisamente lo que determina el subdirectorio bajo EFI. Lo haríamos así:

    1. Crear imagen FAT32

    dd if=/dev/zero of=/tmp/esp.img bs=1M count=64
    sudo mkfs.vfat /tmp/esp.img

    2. Montarla como loop

    sudo mkdir -p /efi
    sudo mount -o loop /tmp/esp.img /efi

    3. Instalar grub ahí

    sudo grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=OpenWrt

    Ese archivo grubx64.efi, una vez cargado por la EFI, buscará el archivo grub.cfg en la misma partición desde la que se cargue grubx64.efi, pero en la carpeta /EFI/OpenWrt/


    Los comentarios están cerrados.