Live Scan Grub Menu
Find a file
2023-11-30 13:34:21 +01:00
images readme,to_ram 2023-11-21 14:29:08 +01:00
live main,static,sys 2023-11-30 13:34:21 +01:00
readme main,static,sys 2023-11-30 13:34:21 +01:00
.gitignore main → init 2023-10-17 10:01:56 +02:00
__init__.py main → init 2023-10-17 10:01:56 +02:00
__main__.py main → init 2023-10-17 10:01:56 +02:00
build.mod probe_ 2023-09-30 14:46:03 +02:00
build.sh env,pause 2023-11-22 22:56:22 +01:00
doc.py main → init 2023-10-17 10:01:56 +02:00
esp.py main → init 2023-10-17 10:01:56 +02:00
grub.cfg.sh main,static,sys 2023-11-30 13:34:21 +01:00
grubx64.efi.signed.sh grub_shigned 2023-11-12 19:05:36 +01:00
license.md probe_ 2023-09-30 14:46:03 +02:00
readme.md main,static,sys 2023-11-30 13:34:21 +01:00
todo.gv probe_ 2023-09-30 14:46:03 +02:00
todo.svg probe_ 2023-09-30 14:46:03 +02:00

Live Scan Grub Menu

Build an ESP File System including:

  • standalone EFI & BIOS GRUB images
  • boot time dynamic GRUB menu

Dependencies

  • grub-common

    • grub-mkimage
  • grub-efi-amd64-bin

    • x86_64-efi
  • grub-efi-amd64-signed

    • grubx64.efi.signed
  • grub-pc-bin

    • i386-pc
      • boot.img
      • grub-bios-setup
  • shim-signed

    • shimx64.efi.signed
  • grub-theme-breeze

    • themes/breeze
  • grub-theme-starfield

    • themes/starfield

Project

├── __init__.py
├── __main__.py
├── build.mod
├── build.sh
├── doc.py
├── esp.py
├── grub.cfg.sh
├── grubx64.efi.signed.sh
├── images
│  └── nightly.png
├── license.md
├── live
│  ├── menu
│  │  ├── cmd.sh
│  │  ├── env.sh
│  │  ├── gfx.sh
│  │  ├── main.sh
│  │  ├── pause.sh
│  │  ├── scan.sh
│  │  ├── set.sh
│  │  └── static.sh
│  └── source
│     ├── boot.sh
│     ├── env.sh
│     ├── menu.sh
│     ├── probe.sh
│     ├── scan.sh
│     ├── sys.sh
│     └── util.sh
├── readme
│  └── grub.md
├── readme.md
├── todo.gv
└── todo.svg

Usage

build

build.sh pgp_fingerprint /esp/mount/point [/data/mount/point]

example

/rwx/lsgm/build.sh 9C7613450C80C24F /media/ssd/esp /media/ssd/data

output

├── bios
│  ├── boot.img
│  ├── core.img
│  └── setup.sh
├── boot
│  ├── grub
│  │  ├── fonts
│  │  │  └── *.pf2
│  │  ├── grub.cfg
│  │  ├── grub.pgp
│  │  ├── grubenv
│  │  ├── i386-pc
│  │  │  ├── *.lst
│  │  │  └── *.mod
│  │  ├── locale
│  │  │  └── *.mo
│  │  ├── themes
│  │  │  ├── breeze
│  │  │  │  ├── theme.txt
│  │  │  │  ├── *.pf2
│  │  │  │  ├── *.pf2.license
│  │  │  │  ├── *.png
│  │  │  │  └── *.png.license
│  │  │  └── starfield
│  │  │     ├── README
│  │  │     ├── theme.txt
│  │  │     ├── *.pf2
│  │  │     ├── *.pf2.license
│  │  │     ├── *.png
│  │  │     └── *.png.license
│  │  └── x86_64-efi
│  │     ├── *.lst
│  │     └── *.mod
│  └── lsgm
│     ├── menu
│     │  ├── cmd.sh
│     │  ├── env.sh
│     │  ├── gfx.sh
│     │  ├── main.sh
│     │  ├── pause.sh
│     │  ├── scan.sh
│     │  ├── set.sh
│     │  └── static.sh
│     └── source
│        ├── boot.sh
│        ├── env.sh
│        ├── menu.sh
│        ├── probe.sh
│        ├── scan.sh
│        ├── sys.sh
│        └── util.sh
├── efi
│  └── boot
│     ├── bootx64.efi
│     ├── core.efi
│     └── grubx64.efi
└── grub.env

setup

setup.sh /dev/device
  • example:
bash /media/ssd/esp/bios/setup.sh /dev/sda

Roadmap

Graph

BASH

build

  • make custom

    • fonts
    • keyboard layouts
  • make images

    • mimic grubx64.efi.signed

    • targets

      • arm
      • i386-pc
      • x86_64-efi
      • x86_64-efi-signed
    • embed extra

      • fonts
      • keyboard layouts
      • locales
  • copy

    • fonts
    • locales
    • themes
  • sign files

  • setup bios

    • write for manual call

      • boot image
      • core image
      • setup script
    • auto

      • find esp device
      • write bios_grub partition

live

  • check signatures

  • options

    • check signatures for *.squashfs
    • boot to ram
    • locales
    • themes
  • target specific live-media

    • try -mount-opts
  • refactor grub list_{const,vars,xtra} & split

  • setparams probe_unset & smbios_unset

Python