You will first need to create a preconfiguration file and place it in the location from where you want to use it. Creating the preconfiguration file is covered later in this appendix. Putting it in the correct location is fairly straightforward for network preseeding or if you want to read the file off a usb-stick. If you want to include the file in an installation ISO image, you will have to remaster the image. How to get the preconfiguration file included in the initrd is outside the scope of this document; please consult the developers' documentation for debian-installer
.
An example preconfiguration file that you can use as basis for your own preconfiguration file is available from https://www.debian.org/releases/bullseye/example-preseed.txt. This file is based on the configuration fragments included in this appendix.
If you are using initrd preseeding, you only have to make sure a file named preseed.cfg
is included in the root directory of the initrd. The installer will automatically check if this file is present and load it.
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
.
To make sure the installer gets the right preconfiguration file, you can optionally specify a checksum for the file. Currently this needs to be a md5sum, and if specified it must match the preconfiguration file or the installer will refuse to use it.
Boot parameters to specify: - if you're netbooting: 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 - if you're booting a remastered installation image: preseed/file=/cdrom/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d - if you're installing from USB media (put the preconfiguration file in the toplevel directory of the USB stick): 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[21] 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. Se Afsnit 5.1.7, “Opstartsskærmen” for information om hvordan en opstartsparameter tilføjes.
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/bullseye/./preseed.cfg
.
Den sidste del af den adresse (d-i/bullseye/./preseed.cfg
) tages fra auto-install/defaultroot
. Som standard inkluderer dette at mappen bullseye
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 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/bullseye/./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 |
language | debian-installer/language |
country | debian-installer/country |
locale | debian-installer/locale |
theme | debian-installer/theme |
auto | auto-install/enable |
classes | auto-install/classes |
fil | preseed/file |
url | preseed/url |
domain | netcfg/get_domain |
hostname | netcfg/get_hostname |
interface | netcfg/choose_interface |
protocol | mirror/protocol |
suite | mirror/suite |
modules | anna/choose_modules |
recommends | base-installer/install-recommends |
tasks | tasksel:tasksel/first |
desktop | tasksel:tasksel/desktop |
dmraid | disk-detect/dmraid/enable |
keymap | keyboard-configuration/xkb-keymap |
preseed-md5 | preseed/file/checksum |
Here are some examples of how the boot prompt might look like (you will need to adapt this to your needs; also see Afsnit 5.1.7, “Opstartsskærmen”).
# To set French as language and France as country: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=fr country=FR --- quiet # To set English as language and Germany as country, and use a German keyboard layout: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=en country=DE locale=en_US.UTF-8 keymap=de --- quiet # To install the MATE desktop: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz desktop=mate-desktop --- quiet # To install the web-server task: /install.amd/vmlinuz initrd=/install.amd/initrd.gz tasksel:tasksel/first=web-server ---
It's also possible to use DHCP to specify a preconfiguration file to download from the network. DHCP allows specifying a filename. Normally this is a file to netboot, but if it appears to be an URL then installation media that support network preseeding will download the file from the URL and use it as a preconfiguration file. Here is an example of how to set it up in the dhcpd.conf for version 3 of the ISC DHCP server (the isc-dhcp-server Debian package).
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.
A good way to use the DHCP preseeding is to only preseed values specific to your network, such as the Debian mirror to use. This way installs on your network will automatically get a good mirror selected, but the rest of the installation can be performed interactively. Using DHCP preseeding to fully automate Debian installs should only be done with care.
[21] 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.