3.9 KiB
3.9 KiB
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
- i386-pc
-
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
│ ├── main.sh
│ ├── menu
│ │ ├── cmd.sh
│ │ ├── env.sh
│ │ ├── gfx.sh
│ │ ├── pause.sh
│ │ ├── scan.sh
│ │ └── set.sh
│ └── source
│ ├── boot.sh
│ ├── env.sh
│ ├── menu.sh
│ ├── probe.sh
│ ├── scan.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
│ ├── main.sh
│ ├── menu
│ │ ├── cmd.sh
│ │ ├── env.sh
│ │ ├── gfx.sh
│ │ ├── pause.sh
│ │ ├── scan.sh
│ │ └── set.sh
│ └── source
│ ├── boot.sh
│ ├── env.sh
│ ├── menu.sh
│ ├── probe.sh
│ ├── scan.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
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
Python
…