Installazione automatica tramite preconfigurazione
Questa appendice spiega come preconfigurare le risposte alle domande poste
dal &d-i; per automatizzare la propria installazione.
I vari frammenti utilizzati in questa appendice sono disponibili anche nel
file di preconfigurazione di esempio &urlset-example-preseed;.
Introduzione
La preconfigurazione offre un modo per impostare le risposte alle domande
poste durante l'installazione senza doverle inserire manualmente. Questo
permette di automatizzare completamente la maggior parte dei tipi
d'installazione e offre persino alcune funzionalità che non sono disponibili
durante l'installazione tradizionale.
La preconfigurazione non è obbligatoria. Con un file di preconfigurazione
vuoto, il programma d'installazione si comporta allo stesso modo di una
normale installazione manuale. Ogni domanda preconfigurata (se la
preconfigurazione è corretta) modifica l'installazione rispetto a quella
di base.
Metodi di preconfigurazione
Per la preconfigurazione si possono usare tre metodi:
initrd, file e
network. La preconfigurazione initrd funziona con
tutti i metodi d'installazione e consente la preconfigurazione di parecchie
domande ma richiede la preparazione più lunga. Le preconfigurazioni file e
network si possono usare con metodi d'installazione diversi.
La tabella seguente mostra quali metodi di preconfigurazione possono essere
usati con i vari metodi d'installazione.
Metodo d'installazione
initrdfilenetwork
CD/DVD
sì
sì
sì
Solo se si dispone di un collegamento in rete e se
preseed/url è correttamente impostato.
netboot
sì
no
sì
hd-media (comprese le chiavette USB)
sì
sì
sì
floppy based (cd-drivers)
sì
sì
sì
floppy based (net-drivers)
sì
no
sì
generic/tape
sì
no
sì
Una differenza importante fra i vari metodi di preconfigurazione è il momento
in cui viene caricato e processato il file di preconfigurazione. Nel caso
della preconfigurazione con initrd avviene all'avvio dell'installazione,
prima che sia posta la prima domanda. Con la preconfigurazione con il
metodo file avviene dopo che è stata caricato il CD o l'immagine del CD.
Infine la preconfigurazione network ha effetti solo dopo la configurazione
della rete.
Ovviamente qualsiasi domanda elaborata prima che venga caricato il file
di preconfigurazione non può essere preconfigurata (tra cui quelle mostrate
solo quando la priorità è media o bassa, per esempio il primo riconoscimento
dell'hardware). In è descritto un modo
per evitare che queste domande siano poste.
Per evitare le domande normalmente poste prima che avvenga la
preconfigurazione, è possibile avviare l'installatore in modalità
auto
. Questa modalità rimanda le domande che sarebbero
poste troppo presto per la preconfigurazione (cioè la scelta di lingua,
nazione e tastiera) fino a che la rete non sia funzionante, in modo
da consentire la preconfigurazione; inoltre la priorità
dell'installazione viene forzata ad alta, evitando parecchie domande
trascurabili. Si veda per i dettagli.
Limitazioni
Nonostante che la maggior parte delle domande poste da &d-i; possa essere
preconfigurata, esistono delle eccezioni notevoli. Si deve partizionare
l'intero disco oppure usare solo lo spazio libero sul disco; non è possibile
usare delle partizioni esistenti.
Uso della preconfigurazione
Le prime cose da fare sono creare un file di preconfigurazione e
metterlo nella posizione da cui lo si vuole usare. La creazione del file
di preconfigurazione è trattata in seguito, invece lo spostamento del file
è molto semplice per la preconfigurazione network o quando si vuole leggere
il file da un dischetto o da una chiavetta USB. Invece se si vuole mettere il
file su un CD o DVD è necessario masterizzare una nuova immagine ISO. Come
preparare il file di preconfigurazione per initrd è fuori dagli scopi di
questo documento, si consulti la documentazione del &d-i; per gli
sviluppatori.
Un file di preconfigurazione di esempio, che può essere usato come
base per il proprio file di preconfigurazione è disponibile in
&urlset-example-preseed;. Questo file è creato partendo dai frammenti
utilizzati in questa appendice.
Caricamento del file di preconfigurazione
Se si utilizza la preconfigurazione initrd, bisogna assicurarsi solo che
il file preseed.cfg si trovi nella directory principale
del initrd. L'installatore automaticamente verifica se questo file è presente
e lo carica.
Per gli altri metodi di preconfigurazione è necessario specificare durante
l'avvio dell'installatore quale file usare. Normalmente questo può essere
fatto passando al kernel un determinato parametro d'avvio, manualmente durante
l'avvio oppure tramite il file di configurazione del boot loader
(p.e. syslinux.cfg) aggiungendo
il parametro alla fine delle righe append
per il kernel.
(p.e. grub.cfg) aggiungendo
il parametro in una nuova riga set per il kernel.
(p.e. grub.cfg) aggiungendo il
parametro alla fine della riga gnumach.gz.
Se si specifica un file di preconfigurazione nella configurazione del
boot loader, è possibile modificare la configurazione in modo che non sia
necessario premere Invio per avviare l'installazione.
Con syslinux si può ottenere questo risultato
impostando il timeout a 1 in
syslinux.cfg.
Con grub si può ottenere questo risultato
impostando il timeout a 0 in
grub.cfg.
Per essere sicuri che l'installatore usi il file di preconfigurazione
corretto si può, opzionalmente, specificare una checksum per il file.
Attualmente la checksum deve essere di tipo md5sum e, se viene specificata,
il file di preconfigurazione la deve verificare altrimenti l'installatore
non userà quel file.
Parametri di avvio da specificare:
- con avvio da rete:
preseed/url=http://host/percorso/di/preseed.cfg
preseed/url/checksum=5da499872becccfeda2c4872f9171c3d
- con avvio da un CD masterizzato:
preseed/file=/cdrom/preseed.cfg
preseed/file/checksum=5da499872becccfeda2c4872f9171c3d
- con installazione da un supporto USB (mettere il file di preconfigurazione
nella directory principale della chiavetta USB):
preseed/file=/hd-media/preseed.cfg
preseed/file/checksum=5da499872becccfeda2c4872f9171c3d
Notare che quando preseed/url,
preseed/file e
preseed/file/checksum sono passati come
parametri di avvio possono essere abbreviati rispettivamente con
url, file e
preseed-md5.
Uso dei parametri di avvio per la preconfigurazione
Anche se un file di preconfigurazione non può essere usato per preconfigurare
alcuni passi, l'installazione può avvenire ugualmente in modo completamente
automatico dato che è possibile passare i valori di preconfigurazione tramite
la riga di comando all'avvio dell'installatore.
I parametri di avvio possono essere usati anche per impostare le risposte ad
alcune domande senza usare la preconfigurazione. In questo manuale ci sono
esempi in cui questa funzionalità è particolarmente utile.
Per impostare un valore da usare all'interno di &d-i; è sufficiente passare
percorso/alla/variabile=valore
per qualsiasi variabile di preconfigurazione mostrata negli esempi di questa
appendice. Se un valore deve essere usato per configurare dei pacchetti sul
sistema installato è necessario inserire come prefisso il
proprietario
Il proprietario di una variabile debconf (o modello) è normalmente il nome
del pacchetto che contiene il corrispondente modello. Le variabili usate
all'interno dell'installatore hanno come proprietario d-i
.
I modelli e le variabili possono avere più di un proprietario, questo aiuta
a determinare in quali casi possono essere eliminati dal database di debconf
quando il pacchetto viene rimosso.
della variabile in questo modo
proprietario:percorso/alla/variabile=valore.
Se non si specifica il proprietario, il valore della variabile non viene
copiato nel database di debconf sul sistema installato e quindi non può essere
usato durante la successiva configurazione del relativo pacchetto.
Normalmente una domanda preconfigurata non viene posta. Per impostare la
risposta predefinita a una domanda e far in modo che la domanda sia comunque
posta, usare l'operatore ?=
al posto di =
. Si
veda .
Alcune delle variabili che più frequentemente sono impostate dal prompt
boot dispongono di un'abbreviazione. Negli esempi contenuti in questa
appendice è usata, quando disponibile, l'abbreviazione al posto della
variabile completa. Per esempio alla variabile preseed/url
è stato assegnato l'alias url. Un altro esempio è l'alias
tasks che viene tradotto in
tasksel:tasksel/first.
L'uso di --
nelle opzioni d'avvio ha un significato speciale,
i parametri del kernel che seguono l'ultimo --
potrebbero
essere copiati nella configurazione del bootloader nel sistema installato
(solo se il boot loader è supportato dall'installatore). L'installatore
filtra qualsiasi opzione (come le opzioni di preconfigurazione) che riesce
a riconoscere.
Gli attuali kernel linux (2.6.9 e successivi) accettano al massimo 32 opzioni
sulla riga di comando e 32 opzioni d'ambiente, comprese quelle aggiunte dal
sistema d'installazione. Nel caso si superino questi limiti il kernel si
blocca. Le versioni precedenti del kernel accettano un numero inferiore di
opzioni.
Nella maggior parte dei casi alcune delle opzioni predefinite nel file di
configurazione del boot loader, come vga=normal possono
essere tranquillamente rimosse per permettere l'aggiunta di ulteriori
opzioni di preconfigurazione.
Non sempre potrebbe essere possibile specificare valori con spazi come
parametro d'avvio, persino se si delimitano con delle virgolette.
Modalità auto
Ci sono alcune funzionalità di &debian; Installer che combinate insieme
permettono di ottenere installazioni automatiche e personalizzate (anche
molto complesse) semplicemente passando delle righe di comando al prompt
boot. Per illustrare queste funzionalità sono riportati alcuni esempi su
come possono essere usate dal prompt boot:
auto url=autoserver
Questa funzionalità assume la presenza di un server DHCP che indichi
alla macchina un server DNS per risolvere autoserver,
eventualmente aggiungendo il dominio locale se fornito dal DHCP.
Se questa funzione è usata su una macchina
del dominio esempio.com e se il DHCP è configurato
correttamente allora il file di preconfigurazione viene recuperato da
http://autoserver.esempio.com/d-i/&releasename;/./preseed.cfg.
L'ultima parte dell'URL (d-i/&releasename;/./preseed.cfg)
è impostata in
auto-install/defaultroot, il cui valore predefinito
contiene la directory &releasename; per permettere alle versioni
successive di specificare il proprio nome in codice e quindi permettere
migrazioni future in modo controllato. Il /./ viene
usato per indicare la directory principale relativamente a cui le restanti
parti del percorso possono essere ancorate (da usarsi in preseed/include e
preseed/run); questo permette di specificare file sia come URL completi,
come percorsi inizianti con / e quindi ancorati oppure
come percorsi relativi dalla posizione in cui è stato trovato l'ultimo file
di preconfigurazione. Questo può essere usato per costruire script più
portabili, dove l'intera gerarchia di script può essere spostata in una
nuova posizione senza comprometterne il funzionamento, per esempio copiando
i file in una chiavetta USB quando in precedenza erano ospitati da server
web. In questo esempio, se il file di preconfigurazione imposta
preseed/run al valore
/scripts/late_command.sh, il file viene prelevato da
http://autoserver.esempio.com/d-i/&releasename;/./scripts/late_command.sh.
Se non esiste un'infrastruttura DHCP o DNS locale oppure se non si vuole
usare il percorso predefinito per il file preseed.cfg,
è comunque possibile usare un URL esplicita oppure, quando non si usa
l'elemento /./, viene ancorata al punto di partenza del
percorso (cioè al terzo / nella URL). Segue un esempio
che richiede un minimo supporto da parte della rete locale:
auto url=http://192.168.1.2/percorso/di/mypreseed.file
Il modo in cui funziona è questo:
quando manca il protocollo nella URL, viene assunto http;
se la sezione per il nome host non contiene dei punti, viene aggiunto il
dominio indicato da DHCP;
se dopo il nome host non ci sono /, viene usato il
percorso predefinito.
Oltre l'URL è possibile specificare anche altre impostazioni che non
influenzano direttamente il comportamento del &d-i; ma che possono essere
passate a un qualsiasi script specificato con preseed/run
all'interno del file di preconfigurazione. Al momento l'unico esempio di
questa caratteristica è auto-install/classes
(che dispone dell'alias classes) e può essere usato
in questo modo:
auto url=esempio.com classes=classe_A;classe_B
Le classi possono, per esempio, indicare il tipo di sistema da installare
oppure la localizzazione da usare.
Ovviamente è possibile estendere questo concetto e, nel caso, è
ragionevole usare il namespace auto-install, usando nei propri script
qualcosa di simile a auto-install/style. Se si
necessitasse questa possibilità si consiglia di inviare una segnalazione
alla mailing list debian-boot@lists.debian.org in modo da
evitare conflitti nel namespace ed eventualmente aggiungere un alias per
i nuovi parametri.
L'etichetta d'avvio auto non è ancora definita
ovunque. Lo stesso effetto si può ottenere semplicemente aggiungendo
i parametri auto=true priority=critical nella riga di
comando per il kernel. Il parametro auto è un alias di
auto-install/enable e se impostato a
true ritarda le
domande su localizzazione e tastiera fino a quando non è data la possibilità
di preconfigurarle, mentre l'impostazione priority
è un alias di debconf/priority e impostarla a
critical blocca la richiesta di qualsiasi domanda
con priorità inferiore.
Altre opzioni che possono risultare utili quando si cerca di automatizzare
un'installazione con DHCP sono: interface=auto
netcfg/dhcp_timeout=60 che indica alla macchina di usare il
primo dispositivo di rete attivo e di essere un po' più paziente durante
l'attesa della risposta all'interrogazione DHCP.
Un esempio esaustivo su come utilizzare questa infrastruttura, compresi
degli script e delle classi d'esempio, può essere trovato sul
sito web dello sviluppatore.
Sono disponibili anche altri esempi che mostrano come, usando in modo
creativo la preconfigurazione, si possono ottenere molti altri interessati
effetti.
Alias utilizzati nella preconfigurazione
I seguenti alias possono risultare utili quando si usa la preconfigurazione
(in modalità auto). Notare che questi sono semplicemente degli alias
più brevi per i nomi delle domande e che è sempre necessario specificare
anche un valore, per esempio auto=true o
interface=eth0.
prioritydebconf/priority
fbdebian-installer/framebuffer
languagedebian-installer/language
countrydebian-installer/country
localedebian-installer/locale
themedebian-installer/theme
autoauto-install/enable
classesauto-install/classes
filepreseed/file
urlpreseed/url
domainnetcfg/get_domain
hostname netcfg/get_hostname
interfacenetcfg/choose_interface
protocolmirror/protocol
suitemirror/suite
modulesanna/choose_modules
recommendsbase-installer/install-recommends
taskstasksel:tasksel/first
desktoptasksel:tasksel/desktop
dmraiddisk-detect/dmraid/enable
keymapkeyboard-configuration/xkb-keymap
preseed-md5preseed/file/checksum
Uso di un server DHCP per specificare un file di preconfigurazione
È possibile usare anche DHCP per indicare un file di preconfigurazione da
scaricare dalla rete, questo è possibile perché DHCP consente il passaggio
del nome di un file fra server e client. Normalmente il file specificato è
quello per l'avvio dalla rete, però se al suo posto è inserito un URL allora
il programma d'installazione scarica il file dall'URL e lo usa come un file
di preconfigurazione. Segue un esempio di come deve essere impostato il file
dhcpd.conf per la versione 3 del server DHCP di ISC (il pacchetto &debian;
dhcp3-server).
if substring (option vendor-class-identifier, 0, 3) = "d-i" {
filename "http://host/preseed.cfg";
}
Notare che l'esempio precedente limita la specifica del nome del file ai
soli client DHCP che si identificano come d-i
, quindi ha
effetto solo sul programma d'installazione e non influenza i normali
client DHCP. Si può anche mettere il testo in una sezione del
file di configurazione in modo che sia usata da un solo host per impedire
la preconfigurazione di tutte le macchine che si installano sulla propria
rete.
Un modo corretto per usare la preconfigurazione tramite DHCP è preconfigurare
i soli valori specifici della propria rete, per esempio quale mirror &debian;
usare. In questo modo tutte le installazioni fatte sulla propria rete hanno
già attivo un buon mirror, ma il resto della configurazione deve essere
fatto interattivamente. L'uso della preconfigurazione tramite DHCP per fare
la completa configurazione delle installazioni &debian; deve essere fatto con
molta cautela.
Creazione di un file di preconfigurazione
Il file di preconfigurazione ha lo stesso formato utilizzato dal comando
debconf-set-selections. Il formato generico di una riga
del file di preconfigurazione è:
<proprietario> <nome domanda> <tipo domanda> <valore>
Ci sono alcune regole che si devono tenere in mente quando si scrive un
file di preconfigurazione.
Inserire un singolo spazio o un solo tab fra tipo e valore: ogni ulteriore
spazio viene interpretato come appartenente al valore.
Una riga può essere spezzata su più righe aggiungendo un backslash
(\
) come carattere di continuazione
della riga. Un buon punto in cui spezzare una riga è dopo il nome della
domanda; invece un punto pessimo è fra il tipo e il valore. Le righe
spezzate sono ricomposte in un'unica riga nella quale tutti gli spazi
bianchi in testa e in coda sono condensati in un solo spazio.
Le variabili debconf (modelli) usate solo nell'installatore stesso devono avere
come proprietario d-i
; per preconfigurare le variabili usate
nel sistema installato, si deve usare il nome del pacchetto che contiene il
corrispondente modello debconf. Solo le variabili che hanno un proprietario
diverso da d-i
saranno propagate al database debconf del
sistema installato.
La maggior parte delle domande deve essere preconfigurata usando i valori
validi per la lingua inglese e non usando i valori tradotti. Comunque,
esistono delle domande (per esempio in partman) in
cui è necessario usare i valori tradotti.
Alcune domande accettano come valore un codice anziché il testo in
inglese mostrato durante l'installazione.
Il modo più semplice per creare un file di preconfigurazione è usare il
file di preconfigurazione d'esempio in
come base per il proprio lavoro.
Un metodo alternativo è effettuare un'installazione manuale e poi, dopo
il riavvio, usare il comando debconf-get-selections,
contenuto nel pacchetto debconf-utils, per
riversare in un unico file il contenuto del database di debconf e del
database di cdebconf:
$ debconf-get-selections --installer > file
$ debconf-get-selections >> file
Comunque un file generato in questa maniera ha delle voci che potrebbero
non essere preconfigurate; il file d'esempio è decisamente un punto di
partenza migliore per la maggior parte degli utenti.
Questo metodo si basa sul fatto che, al termine dell'installazione, il
database di cdebconf è salvato nel sistema appena installato in
/var/log/installer/cdebconf. Poiché questo database
può contenere delle informazioni sensibili i file sono leggibili solo da
root.
La directory /var/log/installer e tutti i file in
essa contenuti sono cancellati dal sistema quando di elimina il pacchetto
installation-report.
Per verificare quali sono i valori validi per una domanda si può usare
nano per esaminare, quando l'installazione è in corso,
i file in /var/lib/cdebconf. In
templates.dat ci sono i modelli e in
questions.dat ci sono gli attuali valori e i valori
assegnati alle variabili.
Per verificare se il formato del proprio file di preconfigurazione è valido
prima di effettuare un'installazione si può usare il comando
debconf-set-selections -c
preseed.cfg.
Contenuto del file di preconfigurazione (per &releasename;)
I vari frammenti utilizzati in questa appendice sono disponibili anche nel
file di preconfigurazione di esempio &urlset-example-preseed;.
Si noti che l'esempio è valido per l'installazione sull'architettura Intel
x86. Se si vuole fare l'installazione su un'architettura diversa alcuni
degli esempi (come la scelta della tastiera e l'installazione del boot loader)
potrebbero non essere corretti e devono essere sostituiti con le impostazioni
per debconf adatte alla propria architettura.
I dettagli su come attualmente funzionano i componenti dell'installatore
possono essere trovati in .
Localizzazione
L'impostazione dei valori legati alla localizzazione funziona solo se si
usa la preconfigurazione initrd. Con tutti gli altri metodi il file di
preconfigurazione viene caricato solo dopo che queste domande sono state
poste.
Con locale
si possono specificare lingua e nazione, può
essere una qualsiasi combinazione fra una delle lingue supportate da
&d-i; e uno dei paesi riconosciuti. Se la combinazione non forma un
locale valido, l'installatore sceglie automaticamente un altro locale
valido per la lingua prescelta. Per specificare locale
fra i parametri di avvio utilizzare
locale=it_IT.
Questo metodo è molto semplice da usare, però non permette di
preconfigurare tutte le possibili combinazioni di lingua, nazione e
locale
La preconfiguraizone di locale a
en_NL comporta che il locale predefinito sul
sistema installato sarà en_US.UTF-8. Se, per esempio,
si volesse usare en_GB.UTF-8, sarà necessario
preconfigurare individualmente ciascun valore.
. In alternativa è possibile preconfigurare individualmente
ciascun valore. Lingua e nazione possono anche essere specificati tra i
parametri d'avvio.
# Con la sola preconfigurazione di locale si impostano lingua, nazione
# e locale.
d-i debian-installer/locale string it_IT
# Per una maggiore flessibilità è possibile preconfigurare singolarmente
# ciascun valore.
#d-i debian-installer/language string en
#d-i debian-installer/country string NL
#d-i debian-installer/locale string en_GB.UTF-8
# Opzionalmente è possibile specificare ulteriori locale da generare.
#d-i localechooser/supported-locales multiselect en_US.UTF-8, nl_NL.UTF-8
La configurazione della tastiera consiste nella scelta di una mappa di
tastiera e (per le mappe non-latine) di un tasto per passare dalla
mappa di tastiera non-latina alla mappa US e vice versa.
Durante l'installazione sono disponibili solo le varianti basiche delle
mappe di tastiera; le varianti più avanzate sono disponibili solo nel
sistema dopo l'installazione tramite dpkg-reconfigure
keyboard-configuration.
# Selezione della tastiera.
# keymap è un alias per keyboard-configuration/xkb-keymap
d-i keymap select it
# d-i keyboard-configuration/toggle select No toggling
Per saltare la configurazione della tastiera si deve preconfigurare
keymap con
skip-config. Questo comporta che la mappa di
tastiera del kernel rimane attiva.
Configurazione della rete
Naturalmente, la preconfigurazione non funziona se si sta caricando il
file di preconfigurazione dalla rete! Invece funziona se si sta avviando
da CD o da chiavetta USB. È anche possibile passare i parametri di
configurazione della rete sui parametri del kernel, se si stanno caricando
file di preconfigurazione dalla rete.
Se necessario è possibile scegliere una particolare interfaccia prima di
caricare il file di preconfigurazione dalla rete usando il parametro d'avvio
interface=eth1.
Nonostante la preconfigurazione della rete non sia normalmente disponibile
quando la preconfigurazione avviene tramite la rete (usando
preseed/url
), può essere fatta comunque ricorrendo a
un trucco; per esempio se si vuole forzare un indirizzo statico per
l'interfaccia di rete. Il trucco consiste nel forzare la ripetizione
della configurazione della rete dopo che il file di preconfigurazione
è stato caricato creando uno script da eseguire tramite
preseed/run
contenente i seguenti comandi:
kill-all-dhcp; netcfg
Le seguenti variabili debconf sono legate alla configurazione della rete.
# Disattiva completamente la configurazione della rete. Questa opzione
# è utile durante le installazioni da cdrom su dispositivi che non sono
# in rete; in questo caso le domande riguardo la rete, gli avvertimenti
# e le attese dei timeout sono solo una seccatura.
#d-i netcfg/enable boolean false
# netcfg sceglierà, se possibile, un'interfaccia che abbia un collegamento.
# Questo evita la visualizzazione di una lista se è presente più di
# un'interfaccia.
d-i netcfg/choose_interface select auto
# Oppure scegliere un'interfaccia ben precisa:
#d-i netcfg/choose_interface select eth1
# Per impostare il tempo di attesa della rilevazione del collegamento
# (il valore predefinito è 3 secondi). Valore espresso in secondi.
#d-i netcfg/link_detection_timeout string 10
# Se si ha un server dhcp lento e l'installatore va in timeout in attesa
# di esso, questo potrebbe essere utile.
#d-i netcfg/dhcp_timeout string 60
#d-i netcfg/dhcpv6_timeout string 60
# Se si preferisce configurare manualmente la rete, togliere il commento
# alla prossima riga e alle righe con la configurazione statica della rete.
#d-i netcfg/disable_autoconfig boolean true
# Se si desidera che il file di preconfigurazione funzioni su qualsiasi
# sistema, a prescindere dalla presenza di un server DHCP in rete, si può
# togliere il commento alle righe seguenti e alle righe con la configurazione
# statica della rete.
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually
# Configurazione statica della rete.
#
# Esempio IPv4
#d-i netcfg/get_ipaddress string 192.168.1.42
#d-i netcfg/get_netmask string 255.255.255.0
#d-i netcfg/get_gateway string 192.168.1.1
#d-i netcfg/get_nameservers string 192.168.1.1
#d-i netcfg/confirm_static boolean true
#
# Esempio IPv6
#d-i netcfg/get_ipaddress string fc00::2
#d-i netcfg/get_netmask string ffff:ffff:ffff:ffff::
#d-i netcfg/get_gateway string fc00::1
#d-i netcfg/get_nameservers string fc00::1
#d-i netcfg/confirm_static boolean true
# Si noti che gli eventuali nomi di host e dominio assegnati da dhcp hanno
# la precedenza sui valori qui impostati. Naturalmente, l'impostazione dei
# valori previene ancora che le domande siano visualizzate anche se i
# valori arrivano da dhcp.
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
# Per forzare il nome host, senza tener conto di cosa restituisce il
# server DHCP o cosa dice il reverse DNS per l'IP, togliere il commento
# e modificare la riga seguente.
#d-i netcfg/hostname string somehost
# Disabilita la noiosa finestra di dialogo della chiave WEP.
d-i netcfg/wireless_wep string
# Lo stupido nome host dhcp che alcuni ISP usano come una sorta
# di password.
#d-i netcfg/dhcp_hostname string radish
# Se per la scheda di rete o per altro hardware è necessario caricare un
# firmware non-libero, è possibile configurare l'installatore in modo
# che lo carichi senza chiedere conferma. Altrimenti cambiare in false
# per disabilitare la richiesta.
#d-i hw-detect/load_firmware boolean true
Notare che netcfg determina automaticamente la maschera
di rete se netcfg/get_netmask non è preconfigurato;
in caso di installazioni automatiche questa variabile deve essere marcata
come seen. In modo similare, netcfg
sceglie un indirizzo opportuno quando non è impostato
netcfg/get_gateway. È possibile impostare
netcfg/get_gateway a none
per
indicare che non deve essere usato alcun gateway.
Network console
# Per effettuare un'installazione da remoto tramite SSH con il componente
# network-console, usare le seguenti impostazioni. Questo ha senso se si
# intende effettuare il resto dell'installazione manualmente.
#d-i anna/choose_modules string network-console
#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key
#d-i network-console/password password r00tme
#d-i network-console/password-again password r00tme
Impostazioni del mirror
A seconda del metodo d'installazione usato è possibile che venga usato
un mirror per scaricare i componenti aggiuntivi dell'installatore, per
installare il sistema di base e per impostare il file
/etc/apt/sources.list sul sistema installato.
Il parametro mirror/suite determina quale sarà la
versione del sistema installato.
Il parametro mirror/udeb/suite determina la
versione dei componenti addizionali dell'installatore. L'impostazione di
questa variabile è utile solo se i componenti sono scaricati dalla rete
dato che la loro versione deve essere uguale a quella usata per creare lo
initrd per il metodo d'installazione scelto. Normalmente l'installatore
usa automaticamente il valore corretto, quindi non dovrebbe essere
necessario impostare questo parametro.
# Quando si seleziona ftp non è necessario impostare mirror/country.
#d-i mirror/protocol string ftp
d-i mirror/country string manual
d-i mirror/http/hostname string &archive-mirror;
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
# Versione da installare.
#d-i mirror/suite string testing
# Versione dei componenti dell'installatore da caricare (facoltativo).
#d-i mirror/udeb/suite string testing
Impostazione dell'account
È possibile preconfigurare la password per l'account di root e il nome e la
password per il primo utente normale. Per le password possono essere inserite
in chiaro o con un hash MD5.
Attenzione, la preconfigurazione delle password non è sicura dato che
chiunque può accedere al file di preconfigurazione ha la possibilità di
leggerle. L'uso di un hash MD5 è considerato leggermente migliore per quanto
riguarda la sicurezza ma potrebbe anche dare una falsa sensazione di sicurezza
poiché un hash MD5 consente attacchi di tipo brute force.
# Saltare la creazione dell'account di root (l'account per l'utente
# normale potrà usare sudo).
#d-i passwd/root-login boolean false
# In alternativa, è possibile saltare la creazione dell'account per
# l'utente normale.
#d-i passwd/make-user boolean false
# Password di root, in chiaro entrambe le volte
#d-i passwd/root-password password r00tme
#d-i passwd/root-password-again password r00tme
# oppure criptata in un hash MD5.
#d-i passwd/root-password-crypted password [MD5 hash]
# Per creare l'account per l'utente normale.
#d-i passwd/user-fullname string Debian User
#d-i passwd/username string debian
# La password dell'utente, in chiaro entrambe le volte
#d-i passwd/user-password password insecure
#d-i passwd/user-password-again password insecure
# oppure criptata in un hash MD5.
#d-i passwd/user-password-crypted password [MD5 hash]
# Per creare il primo utente con un UID specifico al posto di quello
# predefinito.
#d-i passwd/user-uid string 1010
# L'account utente viene automaticamente inserito in alcuni gruppi.
# Per modificare questo comportamento usare la seguente preconfigurazione.
#d-i passwd/user-default-groups string audio cdrom video
Le variabili passwd/root-password-crypted e
passwd/user-password-crypted possono anche essere
preconfigurate con il valore !
, l'effetto è quello di
disabilitare l'account corrispondente. Questo è comodo per l'account di
root, ovviamente a patto di aver configurato un modo alternativo per svolgere
le attività d'amministrazione (per esempio l'uso dell'autenticazione con
chiave SSH oppure con sudo).
Si può usare il seguente comando per creare un hash MD5 di una password:
$ printf "r00tme" | mkpasswd -s -m md5
Impostazione dell'orologio e del fuso orario
# Controlla se l'orologio hardware deve essere impostato o meno su UTC.
d-i clock-setup/utc boolean true
# Questo può essere impostato con qualsiasi valore valido per $TZ; si
# consulti /usr/share/zoneinfo/ per i valori validi.
d-i time/zone string US/Eastern
# Determina se usare NTP per impostare l'orologio durante l'installazione
d-i clock-setup/ntp boolean true
# Server NTP da usare. Quasi sempre è possibile usare quello predefito.
#d-i clock-setup/ntp-server string ntp.example.com
Partizionamento
Il supporto della preconfigurazione per il partizionamento è limitato
a quanto permette partman-auto. Si può scegliere di
partizionare lo spazio libero esistente sul disco oppure l'intero disco.
La struttura delle partizioni sul disco può essere determinata usando
una ricetta predefinita oppure una ricetta personalizzata su file o
inclusa nel file di preconfigurazione.
È supportata anche la preconfigurazione di configurazioni complesse quali
RAID, LVM e cifratura, ma non con la stessa flessibilità di quando il
partizionamento avviene durante un'installazione non-preconfigurata.
Gli esempi sottostanti forniscono solo delle informazioni di base
sull'uso delle ricette. Per delle informazioni più dettagliate vedere
i file partman-auto-recipe.txt e
partman-auto-raid-recipe.txt inclusi nel pacchetto
debian-installer. Entrambi i file sono disponibili
anche nel repository
dei sorgenti del &d-i;. Notare che le funzioni supportate
potrebbero cambiare da un rilascio all'altro.
L'identificazione dei dischi dipende dall'ordine in cui sono caricati i
driver, se nel sistema ci sono più dischi si deve essere assolutamente
sicuri che venga selezionato quello corretto prima di usare la
preconfigurazione.
Esempio di partizionamento
# Se il sistema ha spazio libero è possibile scegliere di partizionare
# soltanto quello spazio. Questa impostazione viene rispettata solo se
# partman-auto/method (vedi sotto) non è valorizzato.
#d-i partman-auto/init_automatically_partition select biggest_free
# In alternativa è possibile specificare un disco da partizionare.
# Se il sistema dispone di un solo disco, l'installatore userà quello
# altrimenti è necessario specificare il nome del device usando il
# formato tradizionale, non-devfs (quindi, per esempio, /dev/hda o
# /dev/sda ma non /dev/discs/disc0/disc).
#d-i partman-auto/disk string /dev/sda
# Inoltre è necessario specificare il metodo da usare. Quelli
# disponibili sono:
# - regular: usa i tipi di partizione più comuni per la propria
# architettura
# - lvm: usa LVM per partizionare il disco
# - crypto: usa LVM con all'interno una partizione cifrata
d-i partman-auto/method string lvm
# L'utente riceve un avviso se uno dei dischi che stanno per essere
# partizionati automaticamente contiene già una precedente configurazione
# LVM. Comunque anche questo può essere preconfigurato...
d-i partman-lvm/device_remove_lvm boolean true
# La stessa cosa avviene se già esiste un array in RAID software:
d-i partman-md/device_remove_md boolean true
# E può essere preconfigurata anche la conferma alla scrittura delle
# partizioni lvm.
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
# È possibile scegliere una qualsiasi delle ricette di partizionamento
# predefinite:
# - atomic: tutti i file in una partizione
# - home: partizione separata per /home
# - multi: partizioni separate per /home, /usr, /var e /tmp
d-i partman-auto/choose_recipe select atomic
# Oppure creare una ricetta personalizzata...
# Se si ha modo di importare un file ricetta dentro l'ambiente
# dell'installatore, è possibile semplicemente puntare a questo.
#d-i partman-auto/expert_recipe_file string /hd-media/recipe
# Altrimenti, è possibile mettere un'intera ricetta in una riga. Questo
# esempio crea una piccola partizione /boot, un'area swap appropriata e
# usa il resto dello spazio per la partizione root:
#d-i partman-auto/expert_recipe string \
# boot-root :: \
# 40 50 100 ext3 \
# $primary{ } $bootable{ } \
# method{ format } format{ } \
# use_filesystem{ } filesystem{ ext3 } \
# mountpoint{ /boot } \
# . \
# 500 10000 1000000000 ext3 \
# method{ format } format{ } \
# use_filesystem{ } filesystem{ ext3 } \
# mountpoint{ / } \
# . \
# 64 512 300% linux-swap \
# method{ swap } format{ } \
# .
# Il formato della ricetta è documentato nel file partman-auto-recipe.txt
# incluso nel pacchetto "debian-installer" o disponibile nel repository
# dei sorgenti del D-I. Nel file è anche spiegato come impostare le
# etichette dei file system, i nomi dei gruppi di volumi e quali
# dispositivi fisici inserire in un gruppo di volumi.
# Questo fa eseguire a partman il partizionamento automatico in base a
# quanto indicato con uno dei metodi precedenti, senza chidere conferma.
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
Partizionamento con RAID
È possibile usare la preconfigurazione anche per impostare le partizioni
su array in RAID software. È supportato il RAID di livello 0, 1, 5, 6 e
10 la creazione di array degradati e la scelta di
dischi di scorta.
Se si usa RAID 1 è possibile preconfigurare grub in
modo da installarlo su tutti i dispositivi usati dall'array; si veda
.
È probabile che questo tipo di partizionamento automatico fallisca.
Infatti questa funzionalità ha ricevuto relativamente pochi test da parte
degli sviluppatori del &d-i;. La responsabilità di recuperare delle ricette
corrette (cioè che abbiano senso e che non siano in conflitto) è lasciata
all'utente. In caso di problemi si controlli in
/var/log/syslog.
# Il metodo deve essere impostato come "raid".
#d-i partman-auto/method string raid
# Specificare quali sono i dischi da partizionare. Questi dischi avranno
# tutti la stessa configurazione quindi è necessario che abbiano la stessa
# dimensione.
#d-i partman-auto/disk string /dev/sda /dev/sdb
# Poi si devono specificare le partizioni fisiche da usare.
#d-i partman-auto/expert_recipe string \
# multiraid :: \
# 1000 5000 4000 raid \
# $primary{ } method{ raid } \
# . \
# 64 512 300% raid \
# method{ raid } \
# . \
# 500 10000 1000000000 raid \
# method{ raid } \
# .
# Infine si deve specificare come devono essere utilizzate le partizioni
# definite in precedenza all'interno del RAID. Attenzione a usare i
# numeri di partizione corretti per le partizioni logiche. Sono
# supportati i livelli di RAID 0, 1, 5, 6 e 10; i dispositivi devono
# essere separati usando il carattere "#".
# I parametri sono:
# <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \
# <devices> <sparedevices>
#d-i partman-auto-raid/recipe string \
# 1 2 0 ext3 / \
# /dev/sda1#/dev/sdb1 \
# . \
# 1 2 0 swap - \
# /dev/sda5#/dev/sdb5 \
# . \
# 0 2 0 ext3 /home \
# /dev/sda6#/dev/sdb6 \
# .
# Per ulteriori informazioni vedere il file partman-auto-raid-recipe.txt
# incluso nel pacchetto "debian-installer" o disponibile nel repository
# dei sorgenti del D-I.
# Questo fa in modo che partman partizioni automaticamente senza conferma.
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
Controllo del montaggio delle partizioni
Normalmente i filesystem vengono montati usando come chiave un UUID
(identificatore unversalmente univoco); questo permette di montarli
correttamente anche quando cambia il nome del device. Gli UUID sono
lunghi e difficili da leggere, quindi, se si preferisce, l'installatore
può montare i filesystem usando il nome del device o in base a
un'etichetta assegnata dall'utente. Qualora si chieda all'installatore
di usare le etichette per montare i filesystem, qualsiasi filesystem
senza un'etichetta verrà montato usando l'UUID.
I device con nomi stabili, come i volumi logici LVM, continueranno a
usare i loro nomi tradizionali anziché gli UUID.
I tradizionali nomi dei device possono cambiare in base all'ordine con
cui il kernel riconosce i device durante l'avvio, questo può comportare
che venga montato il filesystem sbagliato. In modo simile, le etichette
possono facilmente collidere quando si inserisce un nuovo disco o un
dispositivo USB e, quando questo accade, il comportamento del sistema
diventa imprevedibile.
# Il comportamento predefinito è eseguire il mount usando l'UUID, è
# anche possibile scegliere "traditional" per utilizzare i tradizionali
# nomi dei device oppure "label" per provare con le etichette del
# filesystem prima di usare gli UUID.
#d-i partman/mount_style select uuid
Installazione del sistema di base
Al momento non c'è molto da preconfigurare per questo passo
dell'installazione. Le uniche domande riguardano l'installazione del
kernel.
# Configura APT in modo che non installi i pacchetti raccomandati. L'uso
# di questa opzione può implicare un sistema incompleto e dovrebbe essere
# usata solo dagli utenti molto esperti.
#d-i base-installer/install-recommends boolean false
# Il (meta)pacchetto con l'immagine del kernel da installare; per non
# installare un kernel inserire "none".
#d-i base-installer/kernel/image string &kernelpackage;-486
Impostazione di APT
L'impostazione di /etc/apt/sources.list e la
configurazione delle opzioni di base è completamente automatizzata in base
al metodo d'installazione e alle risposte date in precedenza. È possibile
aggiungere altri repository (anche locali).
# È possibile scegliere di installare software non-free e contrib.
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true
# Togliere il commento alla prossima riga se non si vuole usare
# un mirror.
#d-i apt-setup/use_mirror boolean false
# Scegliere i servizi di aggiornamento da utilizzare; definire quali
# mirror devono essere usati. I valori riportati in seguito sono quelli
# predefiniti.
#d-i apt-setup/services-select multiselect security, volatile
#d-i apt-setup/security_host string security.debian.org
#d-i apt-setup/volatile_host string volatile.debian.org
# Altri repository, sono disponibili local[0-9]
#d-i apt-setup/local0/repository string \
# http://local.server/debian stable main
#d-i apt-setup/local0/comment string local server
# Abilita le righe deb-src
#d-i apt-setup/local0/source boolean true
# URL alla chiave pubblica del repository locale; è necessario fornire
# una chiave altrimenti apt si lamenta perché il repository non è
# autenticato e che quindi non dovrebbe essere usato (commentandolo in
# sources.list)
#d-i apt-setup/local0/key string http://local.server/key
# Normalmente l'installatore richiede che i repository siano autenticati
# con una chiave gpg conosciuta. Per disabilitare questa autenticazione si
# può usare questa impostazione. Attenzione: insicuro, non raccomandato.
#d-i debian-installer/allow_unauthenticated boolean true
Selezione dei pacchetti
È possibile scegliere di installare qualsiasi combinazione di task che
siano disponibili. I task attualmente disponibili includono:
standard (sistema standard)
desktop (ambiente desktop)
gnome-desktop (ambiente desktop gnome)
kde-desktop (ambiente desktop kde)
web-server (server web)
print-server (server di stampa)
dns-server (server DNS)
file-server (file server)
mail-server (server di posta)
sql-database (database SQL)
laptop (computer portatile)
Si può anche scegliere di non installare alcun task e forzare l'installazione
di un insieme di pacchetti in qualche altro modo. Raccomandiamo di includere
sempre il task standard.
Se oltre ai task si vuole installare anche qualche altro pacchetto allora
è possibile usare il parametro pkgsel/include; il
valore di questo parametro può essere un elenco di pacchetti separati con
virgole o con spazi, in questo modo può essere comodamente usato anche
sulla riga di comando del kernel.
#tasksel tasksel/first multiselect standard, web-server
# Quando è selezionato il task desktop, si può installare kde e xfce
# al posto del desktop predefinito gnome.
#tasksel tasksel/desktop multiselect kde, xfce
# Ulteriori pacchetti da installare
#d-i pkgsel/include string openssh-server build-essential
# Se aggiornare i pacchetti dopo l'avvio. I valori ammessi
# sono: none, safe-upgrade, full-upgrade
#d-i pkgsel/upgrade select none
# Alcune versioni dell'installatore possono inviare un resoconto di quali
# programmi sono stati installati e quali sono usati. Questo resoconto, la
# cui ricezione aiuta il progetto a determinare quali sono i programmi più
# popolari per inserirli nei CD, normalmente non viene inviato.
#popularity-contest popularity-contest/participate boolean false
Installazione del boot loader
# Grub è il boot loader predefinito (per x86). Invece, se si desidera
# che sia installato lilo, scommentare questa riga:
#d-i grub-installer/skip boolean true
# Per evitare anche l'installazione di lilo, e quindi non installare
# nessun boot loader, scommentare questa riga:
#d-i lilo-installer/skip boolean true
# Per non installare un bootloader, scommentare questa riga:
#d-i grub-installer/skip boolean true
# Questa è ragionevolmente sicura da impostare, fa in modo che grub sia
# installato automaticamente nel MBR se nessun altro sistema operativo è
# rilevato nella macchina.
d-i grub-installer/only_debian boolean true
# Questa fa in modo che grub-installer si installi sul MBR se trova anche
# qualche altro sistema operativo, che è un po' meno sicuro poiché potrebbe
# non riuscire ad avviare gli altri sistemi operativi.
d-i grub-installer/with_other_os boolean true
# In alternativa, se si vuole installare in una posizione differente dal
# MBR, scommentare ed editare queste linee:
#d-i grub-installer/only_debian boolean false
#d-i grub-installer/with_other_os boolean false
#d-i grub-installer/bootdev string (hd0,0)
# Per installare grub su più dischi:
#d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0)
# Per installare su un device particolare:
#d-i grub-installer/bootdev string /dev/sda
# Passowrd opzionale per grub, può essere in chiaro
#d-i grub-installer/password password r00tme
#d-i grub-installer/password-again password r00tme
# oppure criptata in un hash MD5, si veda grub-md5-crypt(8).
#d-i grub-installer/password-crypted password [MD5 hash]
# Con la prossima opzione si possono aggiungere ulteriori parametri
# d'avvio per il sistema installato (se supportati dal bootloader
# dell'installatore). Nota: le opzioni passate all'installatore
# saranno aggiunte automaticamente.
#d-i debian-installer/add-kernel-opts string nousb
L'hash MD5 per una password per grub può essere
generato usando grub-md5-crypt, oppure usando il comando
dell'esempio in .
Termine dell'installazione
# Durante le installazioni da console seriale o di gestione, normalmente
# le console virtuali (da VT1 a VT6) vengono disabilitate in /etc/inittab.
# Togliere il commento dalla prossima riga per evitare che questo accada.
#d-i finish-install/keep-consoles boolean true
# Evita l'ultimo messaggio riguardo il completamento dell'installazione.
d-i finish-install/reboot_in_progress note
# Impedisce che il programma d'installazione espelli il CD prima del riavvio,
# in alcuni casi può essere utile.
#d-i cdrom-detect/eject boolean false
# Indica come spegnere quando l'installatore ha finito, senza riavviare
# il sistema appena installato.
#d-i debian-installer/exit/halt boolean true
# Questo spegne la macchina anziché semplicemente arrestarla.
#d-i debian-installer/exit/poweroff boolean true
Preconfigurazione di altri pacchetti
# A seconda del software che si sceglie di installare, o se le cose vanno
# storte durante il processo di installazione, è possibile che altre domande
# possano essere poste. Si possono preconfigurare anche quelle,
# naturalmente. Per ottenere una lista di ogni possibile domanda che possa
# essere posta durante un'installazione, fare un'installazione, quindi
# eseguire questi comandi:
# debconf-get-selections --installer > file
# debconf-get-selections >> file
Opzioni avanzate
Uso di comandi personalizzati durante l'installazione
Una funzionalità molto potente e flessibile offerta dagli strumenti di
preconfigurazione è la possibilità si eseguire dei comandi o degli script
in determinati momenti dell'installazione.
# La preconfigurazione del d-i è intrinsecamente non sicura. Niente
# nell'installatore verifica i tentativi di buffer overflow o di altri
# exploit attraverso i valori presenti in un file di preconfigurazione
# come questo. Usare solo file di preconfigurazione provenienti da fonti
# fidate! Per comprendere il rischio, e poiché è generalmente utile,
# ecco un modo per eseguire automaticamente qualsiasi comando della shell
# all'interno dell'installatore.
# Questo è primo comando, è eseguito il prima possibile, appena dopo la
# lettura della preconfigurazione.
#d-i preseed/early_command string anna-install some-udeb
# Questo comando viene eseguito immediatamente prima di avviare il
# partizionatore. Può essere utile per applicare una preconfigurazione
# dinamica del partizionatore in funzione dello stato dei dischi (che
# potrebbe non essere visibile nel momento in cui viene eseguito
# preseed/early_command).
#d-i partman/early_command \
# string debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
# Questo è l'ultimo comando, è eseguito appena prima che l'installatore
# termini, ma quando la directory /target è ancora usabile. È possibile
# fare un chroot su /target e usarlo direttamente oppure usare i comandi
# apt-install e in-target per installare dei pacchetti ed eseguire comandi
# nel file system target.
#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh
Uso della preconfigurazione per modificare i valori predefiniti
È possibile usare la preconfigurazione per modificare la risposta predefinita
a una domanda ma fare in modo che la domanda venga comunque posta. Per farlo
si deve impostare il flag seen a false
dopo aver impostato il valore della domanda.
d-i foo/bar string valore
d-i foo/bar seen false
Si può estendere questo effetto a tutte le domande
inserendo il parametro preseed/interactive=true
al prompt boot. Questo può essere utile per effettuare delle prove o il
debug del proprio file di preconfigurazione.
Notare che d-i
deve essere usato come proprietario delle
sole variabili dell'installatore. Le variabili appartenenti ai pacchetti
da installare sul sistema finale devono avere come proprietario il nome
del pacchetto. Si veda la nota a pié di pagina in
.
Quando si usa la preconfigurazione tramite i parametri d'avvio si può
richiedere all'installatore di chiedere comunque le domande preconfigurate
usando l'operatore ?=
in questo modo
foo/bar?=valore
(oppure proprietario:foo/bar?=valore).
Ovviamente questo ha effetto solo sui parametri che corrispondono alle
domande che sono effettivamente visualizzate durante l'installazione e
non sui parametri interni
.
Per avere ulteriori informazioni di debug, usare il parametro di avvio
DEBCONF_DEBUG=5; ciò provoca la stampa da parte
di debconf di molti più dettagli sulle attuali
impostazioni di ciascuna variabile e sulla loro evoluzione durante
l'esecuzione degli script di installazione del pacchetto.
Caricamento in cascata di più file di preconfigurazione
Da un file di preconfigurazione è anche possibile includere anche altri file
di preconfigurazione. Qualsiasi impostazione fatta in questi file sovrascrive
l'eventuale configurazione fatta dai file caricati in precedenza. Questo
permette di inserire, per esempio, una configurazione di rete generica in
un file e di mettere alcune configurazioni particolari in altri file.
# Si possono elencare più file separandoli con degli spazi; verranno
# caricati tutti. Anche i file inclusi possono avere al loro interno delle
# direttive preseed/include. Si noti che se i nomi dei file sono relativi,
# sono prelevati dalla stessa directory del file di preconfigurazione che
# li include.
#d-i preseed/include string x.cfg
# Facoltativamente il programma d'installazione può verificare le checksum
# dei file prima di processarli. Attualmente sono supportati solo le checksum
# md5sum che vanno elencate nello stesso ordine con cui sono inclusi i file.
#d-i preseed/include/checksum string 5da499872becccfeda2c4872f9171c3d
# Ancora più flessibile, questo esegue un comando di shell e se restituisce
# i nomi dei file di preconfigurazione allora include questi file.
#d-i preseed/include_command \
# string if [ "`hostname`" = bob ]; then echo bob.cfg; fi
# Il massimo della flessibilità, questo scarica ed esegue un programma.
# Il programma può usare debconf-set per manipolare il database di
# debconf; è possibile elencare più di uno script separandoli con degli
# spazi. Si noti che se i nomi dei file sono relativi, sono prelevati
# dalla stessa directory del file di preconfigurazione che li esegue.
#d-i preseed/run string foo.sh
Con la preconfigurazione di tipo initrd e file è possibile anche
caricare in cascata una preconfigurazione di tipo network, impostando
preseed/url nei file precedenti. Ciò avvia la preconfigurazione via
rete appena questa diviene disponibile. Nell'effettuare questa
operazione si deve porre particolare attenzione, dato che la
preconfigurazione viene eseguita in due occasioni distinte, aprendo
la possibilità che il comando preseed/early venga eseguito nuovamente,
con la seconda esecuzione che avviene dopo l'attivazione della rete.