GRUB-2.12 for EFI

Introduksjon til GRUB

GRUB pakken gir GRand Unified Bootloader. På denne siden vil den bygges med UEFI støtte, som ikke er aktivert for GRUB innebygd i LFS.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

  • Nedlasting (HTTP): https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz

  • Nedlasting MD5 sum: 60c564b1bdc39d8e43b3aab4bc0fb140

  • Nedlastingsstørrelse: 6.4 MB

  • Estimert diskplass som kreves: 183 MB

  • Estimert byggetid: 0.4 SBU (på 64-bits LFS, ved å bruke parallellisme=4)

Ytterligere nedlastinger

Unicode skriftdata som brukes til å vise GRUB menyen

GCC (bare nødvendig hvis du bygger på 32-bits LFS)

  • Referer til GCC-14.2.0 siden for nedlastingsinformasjon.

GRUB Avhengigheter

Anbefalt

Valgfri

LVM2-2.03.27 og Fuse-3.16.2

Installasjon av GRUB

Installer først skriftdata som root bruker:

mkdir -pv /usr/share/fonts/unifont &&
gunzip -c ../unifont-16.0.01.pcf.gz > /usr/share/fonts/unifont/unifont.pcf
[Advarsel]

Advarsel

Fjern eventuelle miljøvariabler som kan påvirke byggingen:

unset {C,CPP,CXX,LD}FLAGS

Ikke prøv å «tilpasse» denne pakken med tilpassete kompilasjonsflagg: denne pakken er en oppstartslaster, med lav nivå operasjoner i kildekoden som sannsynligvis vil bli ødelagt av aggressive optimaliseringer.

Legg til en fil som mangler fra utgivelsens tarball:

echo depends bli part_gpt > grub-core/extra_deps.lst

Hvis du kjører en 32-bits LFS, klargjør en 64-bits kompilator:

case $(uname -m) in i?86 )
    tar xf ../gcc-14.2.0.tar.xz
    mkdir gcc-14.2.0/build
    pushd gcc-14.2.0/build
        ../configure --prefix=$PWD/../../x86_64-gcc \
                     --target=x86_64-linux-gnu      \
                     --with-system-zlib             \
                     --enable-languages=c,c++       \
                     --with-ld=/usr/bin/ld
        make all-gcc
        make install-gcc
    popd
    export TARGET_CC=$PWD/x86_64-gcc/bin/x86_64-linux-gnu-gcc
esac

Bygg GRUB med følgende kommandoer:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --disable-efiemu     \
            --enable-grub-mkfont \
            --with-platform=efi  \
            --target=x86_64      \
            --disable-werror     &&
unset TARGET_CC &&
make

Denne pakken har ikke en testpakke som gir meningsfulle resultater.

Nå, hvis du har hoppet over LFS GRUB pakken, som root user:

make install &&
mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions

Hvis du ikke har hoppet over LFS GRUB pakken, som root bruker, installer bare komponentene som ikke er installert fra LFS GRUB pakken i stedet:

make DESTDIR=$PWD/dest install
cp -av dest/usr/lib/grub/x86_64-efi -T /usr/lib/grub/x86_64-efi
cp -av dest/usr/share/grub/*.{pf2,h}   /usr/share/grub
cp -av dest/usr/bin/grub-mkfont        /usr/bin

Hvis de valgfrie avhengighetene er installert, installer også grub-mount programmet:

cp -av dest/usr/bin/grub-mount /usr/bin

Parameterforklaringer

--enable-grub-mkfont: Bygg verktøyet som heter grub-mkfont for å generere fontfilen for oppstartslasteren fra fontdataene vi har installert.

[Advarsel]

Advarsel

Hvis den anbefalte avhengigheten FreeType-2.13.3 ikke er installert, er det mulig å utelate dette alternativet og bygge GRUB. Derimot, hvis grub-mkfont ikke er bygget, eller unicode fontdataen ikke er tilgjengelig på det tidspunktet GRUB bygges, vil GRUB ikke installere hvilken som helst font for oppstartslasteren. GRUB oppstartsmenyen vil vises ved hjelp av en grov skrift eller i et mindre område på skjermen.

--with-platform=efi: Sikrer å bygge GRUB med EFI aktivert.

--target=x86_64: Sikrer at GRUB bygges for x86_64 selv om du bygger på et 32-bits LFS system. De fleste EFI fastvare på x86_64 støtter ikke 32-biters oppstartslastere.

--target=i386: Noen få 32-bits x86 plattformer har EFI støtte. Og noen x86_64 plattformer har en 32-biters EFI implementering, men de er veldig gamle og sjeldne. Bruk dette i stedet for --target=x86_64 hvis du er helt sikker på at LFS kjører på et slikt system.

Konfigurere GRUB

Å bruke GRUB for å gjøre LFS systemet oppstartbart på UEFI plattformen vil bli diskutert i Using GRUB to Set Up the Boot Process with UEFI.

Innhold

En liste over installerte filer, sammen med deres korte beskrivelser finner du på ../../../../lfs/view/development/chapter08/grub.html#contents-gRUB.

Listet nedenfor er de nylig installerte programmene sammen med korte beskrivelser.

Installerte Programmer: grub-mkfont and grub-mount (optional)
Installerte Mapper: /usr/lib/grub/x86_64-efi

Korte Beskrivelser

grub-mkfont

konverterer vanlige fontfilformater til PF2

grub-mount

er et feilsøkingsverktøy for filsystemdriver