Product SiteDocumentation Site

8.8. Oppsett av oppstartslaster (bootloader)

It is probably already functional, but it is always good to know how to configure and install the bootloader in case it “disappears“. This can occur after an installation or an upgrade of another operating system, such as Windows. The following information can also help you to modify the bootloader configuration if needed.

8.8.1. Identifisere diskene

Oppsettet av oppstartslasteren må identifisere alle ulike harddisker og deres partisjoner. Linux bruker «blokk»-spesialfiler lagret i /dev/-mappen til dette formålet. Etter Debian Squeeze, har navngivingsnomenklaturen for harddisker blitt forent av Linux-kjernen, og alle harddisker (IDE/PATA, SATA, SCSI, USB, IEEE 1394) er nå representert som /dev/sd*.
Hver partisjon er representert med sitt nummer på disken der den ligger, for eksempel er /dev/sda1 den første partisjonen på den første disken, og /dev/sdb3 er den tredje partisjonen på den andre disken.
PC-arkitekturen (eller «i386», inkludert sin yngre fetter «AMD64») har lenge vært begrenset til å bruke «MS-DOS» partisjonstabellformatet, som bare tillater fire «primære» partisjoner per disk. Å gå utover denne begrensningen under denne ordningen, må én av dem opprettes som «utvidet» partisjon, og kan da inneholde flere «sekundære» partisjoner. Disse sekundære partisjonene er nummerert fra 5. Dermed kan den første sekundærpartisjonen være /dev/sda5, fulgt av /dev/sda6 og så videre.
Another restriction of the MS-DOS partition table format is that it only allows disks up to 2 TiB in size, which was becoming a real problem with recent disks.
Et nytt partisjonstabellformat, kalt GPT (GUID-partisjonstabell) løsner begrensningene på antall partisjoner (det tillater opp til 128 partisjoner når du bruker forvalgsinnstillingene), og på størrelsen på diskene (opp til 8 ZiB, som er mer enn 8 milliarder terabyte). Hvis du har tenkt å lage mange fysiske partisjoner på samme disk, bør du derfor sørge for at du oppretter partisjonstabellen i GPT-format når disken partisjoneres.
Det er ikke alltid lett å huske hvilken disk som er koblet til hvilken SATA-kontroller, eller i tredje posisjon i SCSI-kjeden, spesielt når navngivingen av harddisker som kobles til i fart (som inkluderer blant annet de fleste SATA-disker og eksterne disker) kan endre seg mellom oppstarter. Heldigvis lager udev, i tillegg til /dev/sd*, symbolske lenker med et fast navn, som du deretter kan bruke hvis du ønsket å identifisere en harddisk på en ikke-tvetydig måte. Disse symbolske lenkene er lagret i /dev/disk/by-id/. På en maskin med to fysiske disker kan man for eksempel finne følgende:
mirexpress:/dev/disk/by-id# ls -l
total 0
lrwxrwxrwx 1 root root  9 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-STM3500418AS_9VM3L3KP-part2 -> ../../sda2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697 -> ../../sdb
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part2 -> ../../sdb2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part2 -> ../../sda2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697 -> ../../sdb
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 23 jul. 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part2 -> ../../sdb2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 23 jul. 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part2 -> ../../sdc2
[...]
lrwxrwxrwx 1 root root  9 23 jul. 08:58 wwn-0x5000c50015c4842f -> ../../sda
lrwxrwxrwx 1 root root 10 23 jul. 08:58 wwn-0x5000c50015c4842f-part1 -> ../../sda1
[...]
mirexpress:/dev/disk/by-id# 
Merk at noen disker listes opp flere ganger (fordi de oppfører seg både som ATA og SCSI-disker samtidig), men den relevante infoen er hovedsakelig i modell- og serienummeret til diskene, som du kan utlede tilleggsutstyrsfilen fra. Mens lenkene i /dev/disk/by-id/ opprettes ved bruk av enhetens serienummer og fysiske sti er det flere beleilighetslenker i for eksempel /dev/disk/by-label/ (basert på tildelte merkelapper), /dev/disk/by-uuid/ (basert på unike identifikatorer, som kan endre seg ved omformatering av en enhet med mkfs.* eller mkswap), /dev/disk/by-path/ (basert på korteste fysiske sti), og /dev/disk/by-partlabel/ og /dev/disk/by-partuuid/ (kun partisjoner med GPT-merkelapper og deres unike identifikatorer). Du bør alltid foretrekke unike identifikatorer istedenfor merkelapper hvis du bruker disse lenkene, for eksempel i /etc/fstab. Du kan også hente ut og endre denne infoen for hver partisjon eller enhet ved bruk av kommandoene lsblk og blkid.
Oppsettsfilene brukt som eksempler i de neste avsnittene er basert på det samme oppsettet: Én SATA-disk, der den første partisjonen er en gammel Windows-installasjon, og den andre med Debian GNU/Linux.

8.8.2. Oppsett av GRUB 2

GRUB (GRand Unified Bootloader) er nyere. Det er ikke nødvendig å påkalle den etter hver oppdatering av kjernen; GRUB vet hvordan filsystemene skal leses, og selv finne posisjonen til kjernen på disken. For å installere den på MBR i den første disken, skriv bare grub-install /dev/sda. Dette vil overskrive MBR, så vær forsiktig med å ikke overskrive feil plassering. Selv om det også er mulig å installere GRUB inn på en partisjons oppstartsspor, må du ha i minnet at dette vanligvis er et feiltrinn, og at det å gjøre grub-install /dev/sda1 ikke har samme mening som grub-install /dev/sda.
Oppsett av GRUB 2 er lagret i /boot/grub/grub.cfg, men denne filen (i Debian) er generert fra andre. Vær forsiktig med å endre den for hånd, siden slike lokale endringer vil gå tapt neste gang update-grub kjøres (som kan skje ved oppdatering av ulike pakker). De vanligste endringene av /boot/grub/grub.cfg-filen (for å legge kommandolinjeparametere til kjernen, eller endre hvor lenge menyen vises, for eksempel) gjøres gjennom variabler i /etc/default/grub. For å legge til oppføringer i menyen kan du enten lage en /boot/grub/custom.cfg-fil, eller endre /etc/grub.d/40_custom-filen. For mer komplekse oppsett kan du endre andre filer i /etc/grub.d, eller legge til noen. Disse skriptene skal returnere oppsettssnutter, muligens ved å bruke eksterne programmer. Disse skriptene er de som vil oppdatere listen over kjerner som kan startes: 10_linux tar hensyn til installerte Linux-kjerner; 20_linux_xen tar i betraktning virtuelle systemer av Xen-typen, og 30_os-prober legger til kjerneavtrykk fra andre eksisterende operativsystemer (Windows, macOS, Hurd) og BIOS/EFI-tilgangsoppføringene i menyen.

8.8.3. Bruk av GRUB med EFI og sikker oppstart («Secure Boot»)

Bruk av GRUB for å starte opp enten et tradisjonelt BIOS system (gammeldags eller UEFI-CSM) eller et UEFI-system er ganske forskjellig fra hverandre. Heldigvis trenger ikke brukeren å kjenne forskjellene fordi Debian tilbyr forskjellige pakker for hvert formål og installasjonsprogrammet håndterer automatisk hvilke(t) av dem som skal velges. grub-pc-pakken velges for gammeldagse systemer, der GRUB er installert til MBR, der UEFI-systemer krever grub-efi-arkitektur, der GRUB er installert på EFI-systempartisjon (ESP). Sistnevnte krever en GPT-partisjonstabell såvel som en EFI-partisjon.
Endring av et eksisterende system (som støtter UEFI) fra gammeldags til UEFI-modus krever ikke bare at man bytter ut GRUB-pakkene på systemet, men også at man justerer partisjonstabellen og at man oppretter en EFI-partisjon (antagelig også at man endrer størrelsen på eksisterende partisjoner for å lage nødvendig ledig plass). Derfor er det en ganske omstendig prosess som ikke kan dekkes i sin helhet her. Heldigvis finnes det manualer laget av bloggere som beskriver de nødvendige trinnene.
Hvis du bruker et system med «Sikker oppstart» («Secure Boot») påskrudd og har installert shim-signed (sjekk sidefeltet KULTUR Sikker oppstart og shim-oppstarteren), må du også installere grub-efi-arkitektur-signed. Denne pakken hentes ikke inn automatisk, kun hvis installasjon av anbefalte pakker er påskrudd.