Hvis systemet ditt har UEFI støtte og du ønsker å starte LFS med
UEFI, bør du hoppe over instruksjonene på denne siden, men likevel
lære deg syntaksen til grub.cfg
og
metoden for å spesifisere en partisjon i filen fra denne siden, og
konfigurer GRUB med UEFI støtte ved å bruke instruksjonene gitt i
BLFS siden.
Å konfigurere GRUB feil kan gjøre systemet ditt ubrukelig uten en alternativ oppstartsenhet som en CD-ROM eller oppstartbar USB-stasjon. Denne delen er ikke nødvendig for å starte opp LFS systemet. Du kan bare endre din nåværende oppstartslaster, f.eks. Grub-Legacy, GRUB2 eller LILO.
Sørg for at en nødoppstartsdiskett er klar til å “redde” datamaskinen hvis
datamaskinen blir ubrukelig (ikke-oppstartbar). Hvis du ikke
allerede har en oppstartsenhet, kan du opprette en. For at
prosedyren nedenfor skal fungere, så må du hoppe til BLFS og
installere xorriso
fra
libisoburn pakken.
cd /tmp grub-mkrescue --output=grub-img.iso xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
GRUB bruker sin egen navnestruktur for stasjoner og partisjoner i
formen (hdn,m), hvor
n er harddisknummeret og
m er partisjonensnummeret.
Harddisknummeret starter fra null, men partisjonsnummeret starter
fra en for vanlige partisjoner og fem for utvidede partisjoner.
Merk at dette er forskjellig fra tidligere versjoner hvor begge
tallene startet fra null. For eksempel partisjon sda1
er (hd0,1) for GRUB og sdb3
er (hd1,3). I motsetning til Linux anser
ikke GRUB CD-ROM-stasjoner som harddisker. For eksempel hvis du
bruker en CD på hdb
og en ekstra
harddisk på hdc
, vil den andre
harddisken fortsatt være (hd1).
GRUB fungerer ved å skrive data til det første fysiske sporet til en hardisk. Dette området er ikke en del av noe filsystem. programmene der gir tilgang til GRUB moduler i oppstartspartisjonen. Standardplasseringen er /boot/grub/.
Plasseringen av oppstartspartisjonen er et valg av brukeren som
påvirker konfigurasjonen. En anbefaling er å ha en egen liten
(foreslått størrelse er 200 MB) partisjon kun for
oppstartsinformasjon. På den måten kan hvert bygg, enten LFS eller
en kommersiell distro, få tilgang til den samme oppstartsfilen og
tilgang kan gjøres fra hvilket som helst oppstartssystem. Hvis du
velger å gjøre dette må du montere den separate partisjonen, flytte
alle filene i nåværende /boot
mappen
(f.eks linuxkjernen du nettopp bygde i forrige seksjon) til den nye
partisjonen. Du må da avmontere partisjonen og montere den på nytt
som /boot
. Hvis du gjør dette, sørg
for å oppdatere /etc/fstab
.
Å la /boot
være på nåværende LFS
partisjon vil også virke, men konfigurasjonen for flere systemer er
mer vanskelig.
Bruk informasjonen ovenfor, finn ut hva som er riktig designator
for rotpartisjonen (eller oppstartspartisjonen, hvis en separat er
brukt). For det følgende eksempelet antas det at rot (eller separat
oppstart) partisjon er sda2
.
Installer GRUB filene i /boot/grub
og
sett opp oppstartssporet:
Følgende kommando vil overskrive gjeldende oppstartslaster. Ikke kjør kommandoen hvis dette ikke er ønsket, for eksempel hvis du bruker en tredjeparts oppstartsbehandler for å administrere Master Boot Record (MBR).
grub-install /dev/sda
Hvis systemet har blitt startet opp med UEFI, grub-install vil prøve å
installere filer for x86_64-efi målet, men disse filene er
ikke installert i
Kapittel 8. Hvis dette er tilfelle, legg til
--target i386-pc
til kommandoen
ovenfor.
Generer /boot/grub/grub.cfg
:
cat > /boot/grub/grub.cfg << "EOF"
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5
insmod part_gpt
insmod ext2
set root=(hd0,2)
menuentry "GNU/Linux, Linux 6.7.4-lfs-12.1-systemd" {
linux /boot/vmlinuz-6.7.4-lfs-12.1-systemd root=/dev/sda2 ro
}
EOF
insmod kommandoer
laster inn GRUB moduler navngitt
part_gpt
og ext2
. Til tross for navngivningen, støtter
ext2
faktisk ext2
, ext3
, og
ext4
filsystemer. grub-install kommandoen har bygd
inn noen moduler inn i hoveddelen av GRUB bildet (installert i MBR- eller GRUB
BIOS-partisjonen) for å få tilgang til de andre modulene (i
/boot/grub/i386-pc
) uten et
kylling-eller-egg-problem, så med en typisk konfigurasjon er disse
to modulene allerede innebygd og de to insmod kommandoer vil ikke gjøre
noe. Men de gjør ingen skade uansett, og det kan være nødvendig med
noen sjeldne konfigurasjoner.
Fra GRUB sitt perspektiv, kjernefilene er i forhold til partisjonen som brukes. Hvis du brukte en separat /boot-partisjon, fjern /boot fra ovenstående linux linjen. Du må også endre set root linjen for å peke på oppstartspartisjonen.
GRUB betegnelsen for en partisjon kan endres hvis du la til eller
fjernet noen disker (inkludert flyttbare disker som USB-enheter).
Endringen kan forårsake oppstartsfeil pga grub.cfg
refererer til noen “gamle” betegnelser.
Hvis du ønsker å unngå et slikt problem, kan du bruke UUID for
partisjon og filsystem i stedet for GRUB betegnelser til å angi
en partisjon. Kjør lsblk -o
UUID,PARTUUID,PATH,MOUNTPOINT for å vise UUID-ene
til filsystemene dine (i UUID
kolonnen) og partisjoner (i PARTUUID
kolonnen). Bytt deretter ut set
root=(hdx,y)
med search --set=root
--fs-uuid
, og erstatt
<UUID for filsystemet
der kjernen er installert>
root=/dev/sda2
med root=PARTUUID=
.
<UUID
for partisjonen der LFS er bygget>
Merk at partisjonens UUID og filsystemets UUID i denne
partisjonen er helt annerledes. Noen nettressurser kan instruere
deg om å bruke root=UUID=
i
stedet for <filesystem UUID>
root=PARTUUID=
,
men å gjøre det vil kreve en initramfs som er utenfor omfanget av
LFS.
<partition UUID>
Navnet på enhetsnoden for en partisjon i /dev
kan også endres (mer usannsynlig enn GRUB
betegnelsesendring). Du kan også bytte ut stier til enhetsnoder
som /dev/sda1
med PARTUUID=
, i <partition
UUID>
/etc/fstab
, for å unngå en potensiell
oppstartsfeil i tilfelle enhetens nodenavn er endret.
GRUB er et ekstremt kraftig program og det gir en enorm antall alternativer for oppstart fra et bredt utvalg av enheter, operativ systemer og partisjonstyper. Det er også mange muligheter for tilpasning som grafiske splash-skjermer, avspilling av lyder, museinngang, etc. Detaljer om disse alternativene er utenfor rammen av disse introduksjonene.
Det er en kommando, grub-mkconfig, som kan skrive en konfigurasjonsfil automatisk. Den bruker et sett med skript i /etc/grub.d/ og vil ødelegge eventuelle tilpasninger du gjør. Disse skriptene er først og fremst designet for distribusjoner uten kilder og anbefales ikke for LFS. Hvis du installerer en kommersiell Linux distribusjon, er det en god sjanse at dette programmet skal kjøres. Sørg for å sikkerhetskopiere grub.cfg filen.