Go to file
Alejandro Sirgo Rica 373c1b2a72 grub: replace legacy grub install scripts
Translate old legacy grub scripts into grub.py
Implement ogGrubInstallMbr as install_main_grub() and
ogGrubInstallPartition as install_linux_grub().

Add grub configuration file generator through the classes
GrubConfig and MenuEntry.

Ensure EFI tree structure compatibility with legacy code.
The structure of the created folders in the ESP is non-standard,
efi binaries are usually located in the folder below the EFI/
directory.

Structure used by ogClient:

EFI/
├── grub/
│   └── Boot/
│       ├── BOOTX64.CSV
│       ├── grub.cfg
│       ├── mmx64.efi
│       ├── shimx64.efi
│       ├── BOOTX64.EFI
│       ├── grubx64.efi
│       └── ogloader.efi
...

The function _mangle_efi_folder handles the folder structure after
grub-install to comply with the location expected by ogLive.

install_linux_grub() installs a grub local to each Linux install
to enable chainloading, each grub is located in EFI/Part-xx-yy/ in
UEFI. The local linux BIOS grub in legacy scripts is unreliable,
grub-install reports a failure during the install process.

install_main_grub() installs a global grub in EFI/grub/ to show a
grub menu when the pxe boot fails. The global grub contains entries
to every installed os. No global grub is installed for BIOS
systems, a Boot partition would be required to store the grub
configuration.
2024-10-22 16:47:38 +02:00
cfg src: improve logging 2022-06-08 10:27:06 +02:00
src grub: replace legacy grub install scripts 2024-10-22 16:47:38 +02:00
tests ogClient is AGPLv3+ 2021-05-14 00:19:28 +02:00
.gitignore Create new ogClient 2020-01-19 19:50:44 +01:00
COPYING Rename LICENSE to COPYING 2020-06-18 16:45:46 +02:00
ogclient ogclient: add --server-ip flag to override the server's IP 2024-10-02 10:38:03 +02:00
setup.py Rename 'linux' folder and operations to 'live' 2020-12-03 13:38:43 +01:00