GNU GRUB is a Multiboot boot loader. It was derived from GRUB, the GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn.
BURG is a brand-new boot loader based on GRUB. It uses a new object format which allows it to be built in a wider range of OS, including Linux/Windows/OSX/Solaris/FreeBSD, etc. It also has a highly configurable menu system which works in both text and graphic mode.
Links
- http://grub.enbug.org - GRUB: GRand Unified Bootloader
- http://burgloader.com - BURG: Brand-new Universal loadeR from GRUB
- http://acritox.com/hellfire/burg/ - Meine Versuche mit BURG für Kanotix Hellfire
Screenshot
So könnte z.B. ein BURG-Theme für Kanotix (auf Basis des "burg"-Themes) aussehen:
Erweiterungen
GRUB2/BURG: Disable cache for huge files
Für GRUB2/BURG habe ich einen Patch geschrieben, der den Cache beim Laden von größeren Dateien (> 1MB) deaktiviert. Das sorgt auf einigen Rechnern für ein erheblich schnelleres Booten, da die Zeit zum Laden des Kernels und der Initrd so verkürzt wird:
Normalerweise läd GRUB2/BURG immer nur einen Block von der maximalen Größe des Caches (4KB per default), kopiert die gelesenen Daten in den Cache und liest den nächsten Block.
Um einen Block zu lesen wird der Int 13h verwendet; da GRUB2/BURG aber als 32bit-Programm im Protected-Mode läuft, muss es um diesen Interrupt zu benutzen jedes mal in den Real-Mode und wieder zurück wechseln - dieses Hin-und-Herwechseln dauert auf manchen PCs allerdings sehr lange...
Deshalb habe ich den Code so umgeschrieben, dass für große Dateien (wie eben Kernel und Initrd, für die der Cache ja irrelevant sein dürfte) der Cache nicht benutzt wird, sondern direkt mit voller Blockgröße (512KB) gelesen wird.
Dies hat zur Folge, dass insgesamt wesentlich weniger Blöcke gelesen werden müssen und somit das Hin-und-Herwechseln zwischen Real- und Protected-Mode nicht mehr so oft ausgeführt werden muss.
Tests zeigen, dass damit das Laden des Kernels und der Initrd auch auf den PCs, die ohne den Patch langsamer waren, jetzt in etwa so schnell sind wie mit isolinux (welches komplett im 16bit Realmodus läuft und bei dem somit das Wechseln entfällt)
burg_disable-cache-for-huge-files.patch
isohybrid-bg2
Da das originale isohybrid (aus dem syslinux-Paket) nur für ISOs funktioniert welche isolinux verwenden, ich aber ein Hybrid-ISO mit BURG als Bootloader erstellen wollte (v.a. wegen dem grafischen Theme-Support von BURG) habe ich eine eigene Variante des Scripts geschrieben...
Die Funktionsweise, kurz und knapp erklärt:
- in die ersten 32MB des ISOs muss eine Datei mit eingebettet werden, welche ein 512b Pattern (zum finden der Position mit isohybrid-bg2 später) und das core.img (von GRUB2/BURG) enthält
- der GRUB2/BURG MBR (boot.img) wird von isohybrid-bg2 nachträglich in den MBR des ISOs geschrieben (die ersten 512b)
- es wird eine Fake-Partitionstabelle geschrieben, mit einer ersten Partition die beim Offset 0 beginnt, wie beim originalen isohybrid
- isohybrid-bg2 sucht nach dem 512b Pattern und trägt die Position der Fundstelle für die Sprungmarken im MBR und in der präparierten core.img ein
- Booten klappt jetzt sowohl als LiveCD/DVD wie auch als USB-Stick
live-build: Added support for BURG Bootloader (and isohybrid-bg2)
Wie der Titel schon sagt, die oben beschriebenen Erweiterungen auch für live-build angewendet: