Po dwóch latach prac, zaprezentowano stabilną wersję modułowego, wieloplatformowego menedżera rozruchu GNU GRUB 2.14 (GRand Unified Bootloader). GRUB obsługuje szeroki zakres platform, w tym tradycyjne komputery PC z BIOS, platformy IEEE-1275 (sprzęt oparty na PowerPC/Sparc64), systemy EFI, urządzenia z procesorami RISC-V, Loongson, Itanium, ARM, ARM64, LoongArch i ARCS (SGI), oraz urządzenia korzystające z pakietu CoreBoot. Kod projektu jest napisany w języku C i rozpowszechniany na podstawie licencji GPLv3.
Główne nowości:
- Dodano wsparcie dla kontroli integralności danych w logicznych wolumenach LVM (LVM LV), realizowane za pomocą dm-integrity.
- Dodano wsparcie dla konfiguracji wykorzystujących LVM cachevol w celu przyspieszenia dostępu do wolnych dysków poprzez buforowanie danych na szybkich nośnikach.
- Dodano wsparcie dla systemu plików EROFS (Extendable Read-Only File System), opracowanego przez Huawei do użycia na partycjach dostępnych tylko w trybie do odczytu. Struktura EROFS jest znacznie uproszczona, eliminując przy realizacji niektóre obszary metadanych, takie jak mapa bitowa wolnych bloków. EROFS wspiera przechowywanie danych w formie skompresowanej, ale wykorzystuje inny sposób przechowywania skompresowanych bloków, zoptymalizowany do osiągania wysokiej wydajności przy losowym dostępie do danych.
- Dodano możliwość umieszczania bloku z zmiennymi środowiskowymi GRUB w zarezerwowanej strefie nagłówka systemu plików Btrfs. W takich zmiennych mogą być przechowywane informacje o domyślnie używanej partycji rozruchowej.
- Dodano wsparcie dla uruchamiania obrazów EFI GRUB w trybie ochrony NX (No Execute), który zabrania wykonywania instrukcji w obszarach pamięci, które nie zostały specjalnie oznaczone jako dozwolone do wykonania.
- Dodano wsparcie dla protokołu Shim loader, używanego do zweryfikowanego rozruchu shim, do uruchamiania w trybie UEFI Secure Boot.
- Dodano wsparcie dla uruchamiania zunifikowanych obrazów jądra UKI (Unified Kernel Image), które łączą obsługę uruchamiania jądra z UEFI (UEFI boot stub), obraz jądra Linux oraz ładowane do pamięci środowisko systemowe initrd, stosowane do początkowej inicjalizacji przed zamontowaniem głównego systemu plików. Obraz UKI jest prezentowany w postaci jednego pliku wykonywalnego w formacie PE, który może być uruchamiany za pomocą tradycyjnych menedżerów rozruchu lub bezpośrednio wywoływany z firmware UEFI.
- Dodano wsparcie dla uniwersalnej konfiguracji bootloadera w formacie BLS (Boot Loader Specification), dla której zaimplementowano polecenie blscfg.
- Dodano wsparcie dla schematu hashowania haseł Argon2.
- Dodano wsparcie dla mechanizmu „TPM2 key protector”, który automatycznie odblokowuje zaszyfrowaną partycję podczas uruchamiania, dzięki przechowywaniu informacji do deszyfracji kluczy w TPM (Trusted Platform Module).
- Dodano wsparcie dla dołączonego podpisu cyfrowego (Appended Signature, stosowanego do dołączania podpisu do modułów jądra Linux bez zmiany samego pliku) podczas weryfikacji uruchamiania w trybie Secure Boot na systemach PowerPC.
- Wdrożono opcję „—disable-cli” do zablokowania interfejsu wiersza poleceń GRUB i zakazu edytowania elementów menu.
- Dodano wsparcie dla dat, które nie mieszczą się w przedziale 1901-2038.
- Dodano wsparcie dla dekompresji danych skompresowanych za pomocą algorytmu ZSTD.
- Przeszliśmy na użycie nowej wersji biblioteki kryptograficznej Libgcrypt 1.11.0 (wcześniej używano wersji libgcrypt 1.5.3, opracowanej w 2013 roku).
- Usunięto zebrane podatności (1, 2).
Źródło: opennet.ru
