B.4. Contenuto del file di preconfigurazione

I vari frammenti utilizzati in questa appendice sono disponibili anche nel file di preconfigurazione di esempio http://www.debian.org/releases/etch/example-preseed.txt.

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.

B.4.1. 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.

Nota

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).

B.4.2. 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/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

B.4.3. 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. Il valore predefinito per mirror/udeb/suite è lo stesso di mirror/suite.

# Quando si seleziona ftp non è necessario impostare mirror/country.
#d-i mirror/protocol string ftp
d-i mirror/country string inserire manualmente le informazioni
d-i mirror/http/hostname string ftp.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

B.4.4. 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.

Avvertimento

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 Guidato - 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

B.4.5. 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 Sezione B.4.10, “Installazione del boot loader”.

Avvertimento

È 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

B.4.6. 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

B.4.7. 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
# 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; è 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 string true

B.4.8. 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.

Avvertimento

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

B.4.9. 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

B.4.10. 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)

B.4.11. 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, 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

B.4.12. 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

B.4.13. 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

B.4.14. 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