Po dwóch latach prac wprowadzono stabilną wersję modułowego menedżera rozruchu GNU GRUB 2.06 (GRand Unified Bootloader). GRUB obsługuje szeroki zakres platform, w tym zwykłe komputery PC z BIOS, platformy IEEE-1275 (sprzęt oparty na PowerPC/Sparc64), systemy EFI, RISC-V, urządzenia oparte na procesorze MIPS-compatibile Loongson 2E, systemy Itanium, ARM, ARM64 oraz ARCS (SGI), urządzenia wykorzystujące przestrzeń nazw CoreBoot.
Główne nowości:
- Dodano wsparcie dla mechanizmu SBAT (UEFI Secure Boot Advanced Targeting), który rozwiązuje problemy z unieważnianiem certyfikatów stosowanych do podpisywania bootloaderów dla UEFI Secure Boot. SBAT polega na dodaniu nowych metadanych, które są podpisywane cyfrowo i mogą być dodatkowo włączane do list dozwolonych lub zabronionych komponentów dla UEFI Secure Boot. Te metadane umożliwiają manipulowanie numerami wersji komponentów bez konieczności regenerowania kluczy dla Secure Boot oraz bez wytwarzania nowych podpisów.
- Dodano wsparcie dla formatu szyfrowania dysków LUKS2, który różni się od LUKS1 uproszczonym systemem zarządzania kluczami, możliwością używania większych sektorów (4096 zamiast 512, co zmniejsza obciążenie podczas deszyfrowania), wykorzystaniem symbolicznych identyfikatorów partycji oraz narzędziami do rezerwacji metadanych z możliwością automatycznego przywracania z kopii w przypadku wykrycia uszkodzenia.
- Zaprzestano wsparcia dla krótkiego MBR gap (obszar między MBR a początkiem partycji dyskowej, w GRUB używany do przechowywania części bootloadera, która nie mieści się w sektorze MBR).
- Dodano wsparcie dla modułów XSM (Xen Security Modules), które pozwalają na określenie dodatkowych ograniczeń i uprawnień dla hipernadzorcy Xen, maszyn wirtualnych oraz powiązanych z nimi zasobów.
- Wprowadzono mechanizm lockdown, podobny do analogicznego zestawu ograniczeń w jądrze Linux. Lockdown blokuje możliwe drogi omijania UEFI Secure Boot, na przykład zabrania dostępu do niektórych interfejsów ACPI oraz rejestrów MSR CPU, ogranicza użycie DMA dla urządzeń PCI, blokuje import kodu ACPI z zmiennych EFI, uniemożliwia manipulacje z portami wejścia/wyjścia.
- Domyślnie wyłączono narzędzie os-prober, które znajduje partycje rozruchowe innych systemów operacyjnych i dodaje je do menu rozruchowego.
- Zalany nadrukowano poprawki przygotowane przez różne dystrybucje Linuksa.
- Usunięto luki BootHole i BootHole2.
- Możliwość kompilacji za pomocą GCC 10 i Clang 10 została zrealizowana.
Źródło: opennet.ru
