B.2. Brug af forhåndskonfiguration

Du skal først oprette en prækonfigurationsfil og placere den samme sted, hvor du ønsker at bruge den. Oprettelse af prækonfigurationsfilen er dækket senere i dette appendiks. Placering af den det korrekte sted er ret nemt for forhåndskonfiguration via netværket, eller hvis du ønsker at læse filen fra et usb-drev. Hvis du ønsker at inkludere filen i et ISO-installationsaftryk, så skal du ændre aftrykket. Hvordan du får prækonfigurationsfilen inkluderet i initrd er uden for dette dokuments område; se venligst udviklerens dokumentation for debian-installer.

Et eksempel på en prækonfigurationsfil, du kan bruge som grundlag for din egen prækonfiguraitonsfil er tilgængelig fra https://www.debian.org/releases/bookworm/example-preseed.txt. Denne fil er baseret på konfigurationsfragmenter inkluderet i dette appendiks.

B.2.1. Indlæsning af filen til forhåndskonfiguration

Hvis du bruger initrd-forhåndskonfiugration, så skal du kun sikre at en fil navngivet preseed.cfg er inkluderet i rodmappen for initrd. Installationsprogramemt vil automatisk kontrollere om denne fil er til stede og indlæse den.

For the other preseeding methods you need to tell the installer what file to use when you boot it. This is normally done by passing the kernel a boot parameter, either manually at boot time or by editing the bootloader configuration file (e.g. syslinux.cfg) and adding the parameter to the end of the append line(s) for the kernel.

If you do specify the preconfiguration file in the bootloader configuration, you might change the configuration so you don't need to hit enter to boot the installer. For syslinux this means setting the timeout to 1 in syslinux.cfg.

For at sikre at installationsprogrammet får fat i den korrekte prækonfigurationsfil, så kan du valgfrit angive en kontrolsum for filen. I øjeblikket skal det være en md5sum og hvis angivet, så skal den matche prækonfigurationsfilen ellers vil installationsprogrammet afvise at bruge den.

Opstartsparametre at angive:
- hvis du bruger opstart for nettet:
  preseed/url=http://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d
- or
  preseed/url=tftp://host/path/to/preseed.cfg
  preseed/url/checksum=5da499872becccfeda2c4872f9171c3d

- hvis du starter op fra et remastered installationsaftryk:
  preseed/file=/cdrom/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

- hvis du installerer fra USB-medie (placer prækonfigurationsfilen i
  den øverste mappe af USB-drevet):
  preseed/file=/hd-media/preseed.cfg
  preseed/file/checksum=5da499872becccfeda2c4872f9171c3d

Bemærk at preseed/url kan forkortes til bare url, preseed/file til bare file og preseed/file/checksum til bare preseed-md5, når de sendes som opstartsparametre.

B.2.2. Brug af opstartsparametre til at forhåndskonfigurere spørgsmål

Hvis en forhåndskonfigurationsfil ikke kan bruges til at forhåndskonfigurere nogle trin, så kan installationen stadig automatiseres, da du kan sende forhåndskonfigurerede værdier på kommandolinjen når installationsprogrammet startes op.

Opstartsparametere kan også bruges hvis du ikke reelt ønsker at bruge forhåndskonfiguration, men bare ønsker at tilbyder et svar på et specifikt spørgsmål. Nogle eksempler hvor dette kan være nyttigt er dokumenteret et andet sted i denne manual.

For at angive en værdi til brug inden i debian-installer, så send bare sti/til/variabel=værdi for enhver af variablerne vist i eksemplet i dette appendiks. hvis en værdi skal bruges til at konfigure pakker for målsystemet, så skal du foranstille ejeren[18] af variablen som i ejer:sti/til/variabel=værdi. Hvis du ikke angiver ejeren, vil værdien for variablen ikke blive kopieret til debconf-databasen i målsystemet og forbliver dermed ubrugt under konfiguration af den relevante pakke.

Normalt vil forhåndskonfiguration af et spørgsmål på den måde betyde, at spørgsmålet ikke vil blive stillet. For at angive en specifik standardværdi for et spørgsmål, men stadig få spørgsmålet, så brug ?= i stedet for = som operatør. Se også Afsnit B.5.2, “Brug af forhåndskonfiguration til at ændre standardværdier”.

Bemærk at nogle variabler som ofte angives ved opstartsprompten har et kortere alias. Hvis et alias er tilgængelig, så bruges det i eksemplerne i dette appendiks i stedet for den fulde variabel. Variablen preseed/url har for eksempel et alias som url. Et andet eksempel er aliasset tasks, som oversættes til tasksel:tasksel/first.

Et --- i opstartstilvalget har speciel betydning. Kerneparametre som fremgår efter det sidste --- kan kopieres til opstartsindlæserens konfiguration for det installerede system (hvis understøttet af installationsprogrammet for opstartsindlæseren). Installationsprogrammet vil automatisk filtrere tilvalg væk (såsom forhåndskonfigurerede tilvalg), som den genkender.

[Bemærk] Bemærk

Nuværnede Linuxkerner (2.6.9 og senere) accepterer et maksimum på 32 kommandolinjetilvalg og 32 miljøtilvalg, inklusive eventuelle tilvalg tilføjet som standard for installationsprogrammet. Hvis der anvendes højere antal, vil kernen gå i panik (nedbrud). (For tidligere kerner er disse antal lavere).

For de fleste installationer kan nogle af standardtilvalgene i opstartsindlæserens konfigurationsfil, såsom vga=normal, fjernes uden problemer, hvilket giver mulighed for at tilføje flere tilvalg for forhåndskonfigurationen.

[Bemærk] Bemærk

Det er ikke altid muligt at specificere værdier med mellemrum for opstartsparametre, selv ikke hvis du afgrænser dem med citationstegn.

B.2.3. Auto-tilstand

Der er flere funktioner i Debian-installationsprogrammet, som kombineret medfører at ret så simple kommandolinjer på opstartsprompten medfører arbitrære og komplekse tilpassede automatiske installationer.

Dette aktiveres ved at bruge opstartsvalget Automatiseret installation, også kaldt auto for nogle arkitekturer eller opstartsmetoder. I dette afsnit, er auto derfor ikke en parameter, det betyder valg af opstartindstillingen, og tilføjelse af den efterfølgende opstartsparameter på opstartsprompten.

For at illustrere dette er her nogle eksempler, som kan bruges ved opstartsprompten:

auto url=autoserver

Dette afhænger af, at der er en DHCP-server, som vil få maskinen til det punkt hvor autoserver kan slås op via DNS, måske efter tilføjelse af det lokale domæne, hvis det blev angivet af DHCP. Hvis dette blev gjort et sted hvor domænet er eksempel.com, og de har en fornuftig DHCP-opsætning, vil det medføre at filen med forhåndskonfigurationen hentes fra http://autoserver.eksempel.com/d-i/bookworm/./preseed.cfg.

Den sidste del af den adresse (d-i/bookworm/./preseed.cfg) tages fra auto-install/defaultroot. Som standard inkluderer dette at mappen bookworm tillader fremtidige versioner at angive deres eget kodenavn og lade folk migrere videre på en kontrolleret måde. Delen /./ bruges til at indikere en rod, relativ til hvilke efterfølgende stier kan forankres (for brug i preseed/include og pressed/run). Dette gør det muligt at filer angives enten som fulde adresser, stier startende med / som dermed forankres eller endda stier relative til stedet hvor den sidste fil til forhåndskonfiguration blev fundet. Dette kan bruges til at konstruere mere flytbare skripter, hvor et helt hierarki af skripter kan flyttes til en ny placering uden at blive ødelagt, for eksempel kopiere filerne ned på et USB-drev, når de startede på en internetserver. I dette eksempel, hvis filen til forhåndskonfiguration indstiller preseed/run til /scripts/late_command.sh så vil filen blive hentet fra http://autoserver.eksempel.com/d-i/bookworm/./scripts/late_command.sh.

Hvis der ingen lokal DHCP- eller DNS-infrastruktur er, eller hvis du ikke ønsker at bruge standardstien til preseed.cfg, så kan du stadig bruge en eksplicit adresse, og hvis du ikke bruger /./-elementet, så vil det blive forankret til begyndelsen af stien (dvs. den tredje / i adressen). Her er et eksempel, der kræver minimal understøttelse fra den lokale netværksinfrastruktur:

auto url=http://192.168.1.2/path/to/mypreseed.file

Måden dette fungerer på er:

  • hvis adressen mangler en protokol, så anvendes http,

  • hvis værtsnavnafsnittet ikke indeholder punktummer, så bliver domænet afledt fra HDCP tilføjet til det, og

  • hvis der ikke er nogle / efter værtsnavnet, så tilføjes standardstien.

Udover at angive adressen, så kan du også angive indstillinger, som ikke har en direkte påvirkning på opførelsen hos selve debian-installer, men som kan sendes videre igennem til skripter angivet via preseed/run i den indlæste fil til forhåndskonfiguration. I øjeblikket er det eneste eksempel på dette auto-install/classes, der har et alias classes. Dette kan bruges således:

auto url=example.com classes=class_A;class_B

Klasserne kan for eksempel betegne typen af system til installation, eller oversættelsen.

Det er selvfølgelig muligt at udvide dette koncept, og hvis du gør det, er det fornuftigt at bruge det automatisk installerede navnerum til dette formål. Så man kan have noget ala dette auto-install/style, som så bruges i dine skripter. Hvis du har brug for dette, så nævn det på postlisten , så vi kan undgå navnerumskonflikter, og måske tilføje et alias for parameteren for dig.

Opstartsvalget auto er ikke defineret på alle arkitekturer. Den samme effekt kan opnås ved at tilføje de to parametre auto=true priority=critical til kernens kommandolinje. Kerneparameteren auto er et alias for auto-install/enable og angivelse af den til true forsinker spørgsmålene om sprog og tastatur indtil efter, at der har været en mulighed for at forhåndskonfigurere dem, mens priority er et alias for debconf/priority og angivelse af den til critical stopper alle spørgsmål med en lavere prioritet i at blive stillet.

Yderligere indstililnger som kan have interesse under forsøget på at automatisere en installation mens DHCP anvendes: interface=auto netcfg/dhcp_timeout=60 som får maskinen til at vælge den første levedygtige NIC og være tålmodig med at få et svar til dets DHCP-forespørgsel.

[Vink] Vink

Et omfattende eksempel på hvordan denne ramme anvendes, inklusive eksemplskripter og klasser, kan findes på hjemmesiden for udvikleren. Eksemplerne der viser også mange andre gode effekter, som kan opnås ved kreativ brug af forhåndskonfiguration.

B.2.4. Aliassser nyttig under forhåndskonfiguration

De følgende aliasser kan være nyttige når forhåndskonfiguration (auto-tilstand) anvendes. Bemærk at dette er simple korte aliasser for spørgsmålnavne, og at du altid også skal specificere en værdi: For eksempel, auto=true eller interface=eth0.

priority debconf/priority
fb debian-installer/framebuffer
auto auto-install/enable
classes auto-install/classes
fil preseed/file
url preseed/url
theme debian-installer/theme
language debian-installer/language
country debian-installer/country
locale debian-installer/locale
keymap keyboard-configuration/xkb-keymap
modules anna/choose_modules
firmware hw-detect/firmware-lookup
interface netcfg/choose_interface
domain netcfg/get_domain
hostname    netcfg/get_hostname
protocol mirror/protocol
suite mirror/suite
recommends base-installer/install-recommends
tasks tasksel:tasksel/first
desktop tasksel:tasksel/desktop
preseed-md5 preseed/file/checksum

B.2.5. Eksempler på forhåndskonfiguration af opstart via prompten

Her er nogle eksempler på hvordan opstartsprompten kan se ud (du skal tilpasse dette til dine behov).

# Fransk som sprog og Frankrig som land:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=fr country=FR --- quiet
# Engelsk som sprog og Tyskland som land, og brug en et tysk tastaturlayout:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=en country=DE locale=en_US.UTF-8 keymap=de --- quiet
# Installation af MATE-skrivebordet:
/install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz desktop=mate-desktop --- quiet
# Installaiton af opgaven web-server:
/install.amd/vmlinuz initrd=/install.amd/initrd.gz tasksel:tasksel/first=web-server ---

B.2.6. Brug af en DHCP-server til at specificere forhåndskonfigurationsfiler

Det er også muligt at bruge DHCP til at specificere en prækonfigurationsfil, der skal hentes via netværket. DHCP gør det muligt at specificere et filnavn. Normalt er dette en fil til netboot, men hvis det fremstår som en adresse (URL), så vil intallationsmediet, der understøtter netværksforhåndskonfiguration, hente filen fra adressen og bruge den som en prækonfigurationsfil. Her er et eksemepl på hvordan det opsættes i dhcpd.conf for version 3 af ISC DHCP-serveren (Debian-pakken isc-dhcp-server).

if substring (option vendor-class-identifier, 0, 3) = "d-i" {
    filename "http://host/preseed.cfg";
}

Bemærk at det ovenstående eksempel begrænser dette filnavn til DHCP-klineter, som identificerer sig selv som d-i, så det vil ikke påvirke normale DHCP-klienter, men kun installationsprogrammet. Du kan også placere teksten i en stanza for en bestemt vært for at undgå forhåndskonfiguration af alle installationer på dit netværk.

En god måde at bruge DHCP-forhåndskonfiguration er kun at forhåndskonfigurere værdier specifikke for dit netværk, såsom Debian-spejlet. Med denne metode vil installationer på dit netværk automatisk få et godt spejl valgt, mens resten af installationen kan udføres interaktivt. Brug af DHCP-forhåndskonfiguration til helt automatiserede Debian-installationer bør kun udføres med omhyggelighed.



[18] Ejeren af en debconf-variabel (eller skabelon) er normalt navnet på pakken, der indeholder den tilsvarende debconf-skabelon. For variabler brugt i selve installationsprogrammet er ejeren d-i. Skabeloner og variabler kan have mere end en ejer, hvilket hjælper med at bestemme om de kan fjernes fra debconf-databasen, hvis pakken fjernes.