Installazione automatica tramite preconfigurazione
Questa appendice spiega le difficoltà legate alla preconfigurazione delle
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.
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 diversi metodi d'installazione, purtroppo con
questi due tipi di preconfigurazione non si possono preconfigurare le
primissime domande perché il file di preconfigurazione viene letto solo
dopo che queste domande sono state poste.
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ì
no
netboot
sì
no
sì
hd-media (comprese penne usb)
sì
sì
no
floppy based (cd-drivers)
sì
sì
no
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.
In pratica vuol dire che la preconfigurazione file e network hanno effetto
solo quando le domande su lingua, paese e tastiera sono già state fatte,
oltre a queste, per la preconfigurazione network, si devono aggiungere anche
le domande relative alla configurazione della rete. Quando la priorità è
media o bassa viene mostrata anche qualche altra domanda (come quelle legate
al primo riconoscimento dell'hardware).
Ovviamente qualsiasi domanda elaborata prima che il file di
preconfigurazione sia caricato non può essere preconfigurata.
descrive un modo per evitare
che queste domande siano poste.
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. Attualmente non si può usare la
preconfigurazione per impostare il RAID.
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. Si consulti
per ulteriori dettagli.
preseed/early_command: è eseguito subito dopo il
caricamento del file di preconfigurazione
preseed/late_command: è eseguito appena prima il
riavvio al termine dell'installazione ma prima che sia
smontato il file system su /target
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
Uso della preconfigurazione
Ovviamente 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
Si 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 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.
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 timeout a 1 in
syslinux.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/parcorso/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 e
preseed/file sono passati come parametri di avvio
si possono abbreviare rispettivamente con url e
file.
A questo punto si può anche aggiungere come parametro d'avvio
priority=critical. Questo evita la maggior
parte delle domande anche se non sono state preconfigurate.
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 s'identificano come d-i
, quindi ha
effetto solo sul programma d'installazione e non influenza i normali
client DHCP. Si può anche inserire 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.
Uso dei parametri di avvio per completare la preconfigurazione
Alcune parti del processo d'installazione non possono essere automatizzate
utilizzando determinate forme di preconfigurazione perché le relative domande
sono poste prima che il file di preconfigurazione sia caricato. Per esempio,
se il file di preconfigurazione viene recuperato dalla rete è necessario
prima configurare la rete. Una ragione per usare la preconfigurazione initrd
è quella di consentire la preconfigurazione anche dei primissimi passi
dell'installazione.
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 al
kernel sulla riga di comando. È sufficiente passare
precorso/alla/variabile=valore per qualunque delle
variabili che sono mostrate negli esempi.
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'abbrevazione al posto della
variabile completa.
L'uso di --
nelle opzioni d'avvio ha un significato
speciale, i parametri del kernel che lo seguono sono copiati direttamente
nella configuarazione del boot loader nel sistema installato (se il boot
loader è supportato dall'installatore). Notare che --
potrebbe già essere presente nei parametri di avvio predefiniti.
Il kernel 2.4 accetta al massimo 8 argomenti sulla riga di comando e 8
opzioni d'ambiente (comprese tutte le opzioni aggiunte in automatico
dall'installatore). Se si superano questi numeri, i kernel 2.4 ignorano
qualsiasi opzione in eccesso, invece i kernel 2.6 si bloccano. A partire
dal kernel 2.6.9 è possibile usare 32 opzioni sulla riga di comando e 32
opzioni d'ambiente.
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.
Creazione di un file di preconfigurazione
Il file di preconfigurazione ha lo stesso formato utilizzato dal comando
debconf-set-selections. Il fomato generico di una riga
del file di preconfigurazione è:
<detentore> <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.
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
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.
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 la lingua e il paese. Per
specificare locale
fra i parametri di avvio utilizzare
locale=it_IT.
# Con locale si impostano lingua e paese.
d-i debian-installer/locale string it_IT
La configurazione della tastiera consiste nella scelta di una architettura
della tastiera e di una mappa di tastiera. Nella maggior parte dei casi
l'architettura della tastiera viene riconosciuta automaticamente e quindi
non è necessario farne la preconfigurazione. La mappa di tastiera deve
essere una valida per l'architettura della tastiera scelta.
# Selezione della tastiera.
#d-i console-tools/archs select at
d-i console-keymaps-at/keymap select us
# Esempio con una diversa architettura della tastriera
#d-i console-keymaps-usb/keymap select mac-usb-us
Per saltare la configurazione della tastiera si deve preconfigurare
console-tools/archs con
skip-config. Questo comporta che la mappa di
tastiera del kernel rimane attiva.
I cambiamenti nella gestione dell'input fatti nei kernel 2.6 hanno reso
l'architettura della tastiera virtualmente obsoleta. Normalmente per i
kernel 2.6 si deve selezionare una mappa di tastiera PC
(at).
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 le seguenti righe:
killall.sh dhclient
netcfg
# 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
# 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
# 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_dhcp 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.
#d-i netcfg/disable_dhcp boolean true
#d-i netcfg/get_nameservers string 192.168.1.1
#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/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
# 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
Impostazioni del mirror
A seconda del metodo d'installazione usato è possibile che venga usato un
mirror per scaricare i componenti aggiuntivi dell'installatore e il sistema
di base e nel 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. Il valore predefinito per
mirror/udeb/suite è lo stesso di
mirror/suite.
d-i mirror/country string inserire manualmente le informazioni
d-i mirror/http/hostname string http.it.debian.org
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
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 possono essere determinate usando
una ricetta predefinita oppure una ricetta personalizzata in un file o
inclusa nel file di preconfigurazione. Attualmente con la preconfigurazione
non è possibile partizionare più di un disco e nemmeno impostare il RAID.
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.
# Se il sistema ha spazio libero è possibile scegliere di partizionare
# soltanto quello spazio. Nota: da preconfigurare con un valore
# localizzato (cioè tradotto).
#d-i partman-auto/init_automatically_partition \
# select Usare il più ampio spazio contiguo disponibile.
# In alternativa è possibile specificare un disco da partizionare. Il nome
# del dispositivo può essere dato sia nel formato devfs che nel tradizionale
# formato non-devfs.
# Per esempio, per usare il primo disco:
d-i partman-auto/disk string /dev/discs/disc0/disc
# Inoltre è necessario specificare il metodo da usare. Quelli attualmente
# disponibili sono "regular", "lvm" e "crypto".
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-auto/purge_lvm_from_device boolean true
# E può essere preconfigurata anche la conferma alla scrittura delle
# partizioni lvm.
d-i partman-lvm/confirm boolean true
# È possibile scegliere una qualsiasi delle ricette di partizionamento
# predefinite. Nota: da preconfigurare con un valore localizzato (cioè
# tradotto).
d-i partman-auto/choose_recipe \
select Tutti i file in una partizione (raccomandata per nuovi utenti)
#d-i partman-auto/choose_recipe \
# select Partizione /home separata
#d-i partman-auto/choose_recipe \
# select Partizioni /home, /usr, /var e /tmp separate
# Oppure creare una ricetta personalizzata...
# Il formato della ricetta è documentato nel file devel/partman-auto-recipe.txt.
# 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{ } \
# .
# Questo fa in modo che partman partizioni automaticamente senza conferma.
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Terminare il partizionamento e scrivere i cambiamenti sul disco
d-i partman/confirm boolean true
Partizionamento con RAID
Si può usare anche la preconfigurazione per impostare le partizioni su array
in RAID software. È supportato il RAID di livello 0, 1 e 5, la creazione di
array degraded 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
si tratta di un componente nuovo che potrebbe avere dei bug o delle carenze
nella gestione degli errori. 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.
Infine è da notare che gli sviluppatori hanno fatto dei test solo su RAID 0
e 1. RAID 5 non è stato provato, le configurazioni di RAID più sofisticate,
con array degraded e dischi di scorta, sono state
provate in modo non approfondito.
# NOTA: questa funzionalità è ancora in fase beta e deve essere usata con
# molta cautela
# 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/discs/disc0/disc /dev/discs/disc1/disc
# 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.
# I parametri sono:
# <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \
# <devices> <sparedevices>
# Sono supportati i livelli di RAID 0, 1 e 5; i dispositivi devono essere
# separati usando il carattere "#"
#d-i partman-auto-raid/recipe string \
# 1 2 0 ext3 / \
# /dev/discs/disc0/part1#/dev/discs/disc1/part1 \
# . \
# 1 2 0 swap - \
# /dev/discs/disc0/part5#/dev/discs/disc1/part5 \
# . \
# 0 2 0 ext3 /home \
# /dev/discs/disc0/part6#/dev/discs/disc1/part6 \
# .
# Questo fa in modo che partman partizioni automaticamente senza conferma.
d-i partman-md/confirm boolean true
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Terminare il partizionamento e scrivere i cambiamenti sul disco
d-i partman/confirm boolean true
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
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 per evitare l'inserimento
# delle sorgenti per la sicurezza oppure per usare un server diverso da
# security.debian.org.
#d-i apt-setup/security_host string
# Altri repository, sono disponibili local[0-9]
#d-i apt-setup/local0/repository string \
# deb 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
#d-i apt-setup/local0/key string http://local.server/key
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]
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).
Un hash MD5 di una password può essere creato usando il seguente comando.
$ echo "r00tme" | mkpasswd -s -H MD5
Installazione del sistema di base
Al momento non ci sono molte cose da preconfigurare in questo passo
dell'installazione. Le uniche domande riguardano l'installazione del kernel.
# Selezionare il programma per la creazione dell'initrd per i kernel 2.6.
#d-i base-installer/kernel/linux/initramfs-generators string yaird
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
# 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 locazione 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)
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 separato con virgole o con spazi,
in questo modo può essere comodamente usato anche sulla riga di comando
del kernel.
tasksel tasksel/first multiselect standard, desktop
#tasksel tasksel/first multiselect standard, web-server
#tasksel tasksel/first multiselect standard, kde-desktop
# Ulteriori pacchetti da installare
#d-i pkgsel/include string openssh-server build-essential
# 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
Termine della prima fase dell'installazione
# 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
Configurazione del programma di posta
Durante una normale installazione, exim pone soltanto qualche domanda.
Ecco come evitare persino quelle. Una preconfigurazione più complicata è
possibile.
exim4-config exim4/dc_eximconfig_configtype \
select no configuration at this time
exim4-config exim4/no_config boolean true
exim4-config exim4/no_config boolean true
exim4-config exim4/dc_postmaster string
Configurazione di X
La preconfigurazione di X di Debian è possibile, ma probabilmente è
necessario conoscere qualche dettaglio riguardo l'hardware video della
macchina, poiché il programma Debian per la configurazione di X non riesce
a fare una configurazione automatica di tutto.
# X può rilevare il driver corretto per alcune schede, ma se si sta
# preconfigurando, si sovrascriverà qualsiasi cosa esso scelga. Nella
# maggioranza dei casi vesa funzionerà ancora.
#xserver-xorg xserver-xorg/config/device/driver select vesa
# Un avvertimento per il rilevamento automatico del mouse è che se questo
# fallisce, X lo proverà ancora e così via. Pertanto, se si è preconfigurato
# che debba essere fatto, c'è la possibilità di un ciclo infinito se il
# mouse non è rilevato automaticamente.
#xserver-xorg xserver-xorg/autodetect_mouse boolean true
# Il rilevamento automatico del monitor è raccomandato.
xserver-xorg xserver-xorg/autodetect_monitor boolean true
# Scommentare se si ha uno schermo LCD.
#xserver-xorg xserver-xorg/config/monitor/lcd boolean true
# X ha tre percorsi di configurazione per il monitor. Ecco come
# preconfigurare il percorso "medium", che è sempre disponibile. Il percorso
# "simple" potrebbe non essere disponibile e il percorso "advanced" pone
# troppe domande.
xserver-xorg xserver-xorg/config/monitor/selection-method \
select medium
xserver-xorg xserver-xorg/config/monitor/mode-list \
select 1024x768 @ 60 Hz
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
Comandi da shell
# 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 è 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
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
# gli 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 echo 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. Si
# noti che se i nomi dei file sono relativi, sono prelevati dalla stessa
# directory del file di preconfigurazione che gli esegue.
d-i preseed/run string foo.sh