All Projects → slytomcat → UEFI-Boot

slytomcat / UEFI-Boot

Licence: GPL-2.0 license
Boot Linux directly from UEFI firmware (without any bootloader)

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to UEFI-Boot

Aio Boot
AIO Boot is an All-in-One bootable software for USB and HDD. Is one of the best Multiboot USB Creator for Windows.
Stars: ✭ 300 (+689.47%)
Mutual labels:  uefi, bootloader
Tomatboot
A UEFI 64bit Bootloader
Stars: ✭ 109 (+186.84%)
Mutual labels:  uefi, bootloader
systemboot
SystemBoot is a LinuxBoot distribution that works as a system firmware + bootloader, based on u-root
Stars: ✭ 103 (+171.05%)
Mutual labels:  uefi, bootloader
uefi-elf-bootloader
UEFI ELF Bootloader example
Stars: ✭ 40 (+5.26%)
Mutual labels:  uefi, bootloader
efi
Ergonomic Rust framework for writing UEFI applications.
Stars: ✭ 44 (+15.79%)
Mutual labels:  uefi, bootloader
Refind Minimal
A stunningly clean theme for the rEFInd UEFI boot manager.
Stars: ✭ 1,585 (+4071.05%)
Mutual labels:  uefi, bootloader
Veracrypt Dcs
VeraCrypt EFI Bootloader for EFI Windows system encryption (LGPL)
Stars: ✭ 81 (+113.16%)
Mutual labels:  uefi, bootloader
MetalOS
Homebrew x64 OS written in C++ that runs Doom!
Stars: ✭ 33 (-13.16%)
Mutual labels:  uefi, bootloader
Hackintosh-ASUS-A455LF-Notebook
EFI Folder for ASUS A455LF-WX039D Notebook Series with Clover/OpenCore Legacy or UEFI
Stars: ✭ 27 (-28.95%)
Mutual labels:  uefi, bootloader
Hekate
hekate - A GUI based Nintendo Switch Bootloader
Stars: ✭ 3,286 (+8547.37%)
Mutual labels:  uefi, bootloader
sicherboot
Unmaintained systemd-boot integration with secure boot support; consider https://github.com/Foxboron/sbctl instead.
Stars: ✭ 31 (-18.42%)
Mutual labels:  uefi, bootloader
CloverEFI-4MU
Manually install Clover EFI Bootloader via Linux System on Legacy BIOS or UEFI Firmware.
Stars: ✭ 93 (+144.74%)
Mutual labels:  uefi, bootloader
go-uefi
Linux UEFI library written in pure Go.
Stars: ✭ 78 (+105.26%)
Mutual labels:  uefi
PIC16F1-USB-DFU-Bootloader
DFU protocol variant of Matt Sarnoff's PIC16F1-USB-Bootloader
Stars: ✭ 39 (+2.63%)
Mutual labels:  bootloader
mandelbrot
Mandelbrot set drawers for vintage hardware
Stars: ✭ 15 (-60.53%)
Mutual labels:  bootloader
bfloader
🧠 Brainfuck IDE and interpreter in 512 bytes. (boot sector)
Stars: ✭ 41 (+7.89%)
Mutual labels:  bootloader
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (+23.68%)
Mutual labels:  uefi
BGRTInjector
Customize Windows 10 boot logo without modifying UEFI firmware.
Stars: ✭ 39 (+2.63%)
Mutual labels:  uefi
SmmExploit
The report and the exploit of CVE-2021-26943, the kernel-to-SMM local privilege escalation vulnerability in ASUS UX360CA BIOS version 303.
Stars: ✭ 98 (+157.89%)
Mutual labels:  uefi
pipxe
iPXE for the Raspberry Pi
Stars: ✭ 154 (+305.26%)
Mutual labels:  uefi
UEFI-Boot - is a small and simple project aimed to organize the loading of linux kernel directly via UEFI firmware (without any bootloader).

Utility uefuboot-update synchronizes UEFI boot options with installed kernel versions.
It may be triggered via /etc/kernel/postinst.d and /etc/kernel/postrm.d kernel triggers to do it's job when a new kernel installed or old one is removed.

Boot options of UEFI boot menu will have labels formed of three parts
  - distribution name 
  - distribution identity
  - the kernel version

After the syncronization the latest kernel will became the first option to load on next boot.

Script parameters:

All the script parameters have default values.
Default values can be redefined by values from config file /etc/uefiboot.conf. 
Any value specified via command line options overides its default and config value.

Default values:

- the reference to root filesystem (requered for boot process) is taken from /etc/fstab
- root filesystem mount options (important for btrfs in other cases) is taken from /etc/fstab
- kernel boot options are "ro quiet"
- disk with botable EFS partition is "/dev/sda" or "/dev/nvme0n1" when "/dev/sda" is not exists 
- EFS partition number is determined from output of gdisk
- distribution name is determined as "$(lsb_release -d -s)"
- distribution identity is determined as "$(lsb_release -r -s) $(lsb_release -c -s)"

Сommand line option:
  
-l name  Distributive name to be included in EFI boot option (default: value of 'lsb_release -i -s')
-i id    Distributive version (default: values of 'lsb_release -r -s' and 'lsb_release -c -s')
-d disk  Disk with EFI partition (default: '/dev/sda' or '/dev/nvme0n1' when '/dev/sda' is not exists)
-p p#    EFI partition number on disk (default: the number of partiotion with type EF00)
-o opt   Boot options (default: 'ro quiet')
-r root  Root partition (default: the root partition from /etc/fstab)
-f opt   Root partition mout options (default: the root partition options from /etc/fstab, usually 'defaults')
-b path  Path to boot directory (default '/boot')
-n       Don't write to EFI, only output the commands instead of execution them
-h       Prints the help message and exits

Files:
readme - this file
license - GPL license
setup.sh - setup and initialization script (see notes below)
usr/bin/uefuboot-update - utility to update UEFI boot options according to installed kernel versions
etc/uefiboot.conf - configuration file of uefuboot-update utility (see comments inside).
keys/ - set of known keys for SecureBoot support.

IMPORTANT NOTES:

Setup script is designed to work on Ubuntu system that is installed with UEFI support (grub-efi is in use instead of grub-pc). 
It's very important to review and verify that commands in this file corresponds to your configuration before you run it.
It may be better to execute commands from this file indvidually (copy from script and paste to terminal). 



IMPORTANT:

Be very careful with script parameters! If you make a mistake in parameters values and update UEFI boot options then the system startup will fall in to initramfs shell. There will be three options to recover normal boot:
1. From initramfs shell: try to mount root device into /root catalog and exit from initramfs shell.
2. Using UEFI Shell (if it is available on your system): you can manualy start the kernel and specify correct parameters for it. The uefuboot-update utility creates special file startup.nsh in the EFS that contains the start command for last added kernel. This file (startup.nsh) is started automatically by UEFIShell. But as it created from the same options it may also fail.
3. Using LiveUSB/CD: boot in UEFI mode from LiveUSB/CD and use efibootmgr utility to define correct UEFI boot option.
After loading system you have to run uefiboot-update utility with correct parametres. 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].