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://d-i.debian.org/manual/example-preseed.txt. Denne fil er baseret på konfigurationsfragmenter inkluderet i dette appendiks.
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.
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
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[19] af variablen som i 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. ejer
:sti/til/variabel
=værdi
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 | |
---|---|
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 | |
---|---|
Det er ikke altid muligt at specificere værdier med mellemrum for opstartsparametre, selv ikke hvis du afgrænser dem med citationstegn. |
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/trixie/./preseed.cfg
.
Den sidste del af den adresse (d-i/trixie/./preseed.cfg
) tages fra auto-install/defaultroot
. Som standard inkluderer dette at mappen trixie
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/trixie/./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 <debian-boot@lists.debian.org>
, 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 | |
---|---|
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. |
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 |
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 ---
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.
[19] 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.