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. Si può usare la preconfigurazione per dare le risposte alle domande poste durante la prima fase dell'installazione (cioè prima del riavvio nel nuovo sistema) e durante la seconda. 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'installazioneinitrdfile network CD/DVD no netboot no hd-media (comprese penne usb) no floppy based (cd-drivers) no floppy based (net-drivers) no generic/tape no 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 RAID e LVM. 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 la che la preconfigurazione è stata caricata preseed/late_command: è eseguito appena prima il riavvio al termine della prima fase dell'installazione ma prima che sia smontato il file system su /target base-config/early_command: è eseguito all'inizio della seconda fase dell'installazione, non appena base-config si sta avviando. base-config/late_command: è eseguito dopo che base-config è terminato, appena prima del prompt di login 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 per un modello. 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 penna 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. 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 d'avvio da specificare: - con avvio da rete: preseed/url=http://host/path/to/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 penna USB): preseed/file=/hd-media/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d A questo punto si può anche aggiungere come parametro d'avvio debconf/priority=critical. Questo evita la maggior parte delle domande anche se non sono state preconfigurate. Uso dei parametri d'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 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. 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. Formato del file Fra il tipo del modello e il valore è consentito un solo spazio Molto simile a /var/lib/(c)debconf/templates I tipi dei modelli e il modo di fornirne i valori La maggior parte dei valori deve essere in inglese oppure è un codice Usa un'installazione manuale come base Cercare altri valori consentiti 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. Preconfigurazione della prima fase dell'installazione 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. Il locale può essere specificare sia la lingua che il paese. Per specificare il locale come parametro d'avvio utilizzare debian-installer/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 funzionerà se si sta caricando il file di preconfigurazione dalla rete! Funzionerà se si sta avviando da CD o da penna USB. È anche possibile passare in ingresso parametri di configurazione di rete sui parametri del kernel, se si stanno caricando file di preconfigurazione dalla rete. # netcfg sceglierà, se possibile, un'interfaccia che abbia un collegamento. # Questa farà in modo di evitare di visualizzare una lista se è presente più # di un'interfaccia. d-i netcfg/choose_interface select auto # Se si ha un server dhcp lento e l'installatore andrà in timeout in attesa # di esso, questo potrebbe essere utile. #d-i netcfg/dhcp_timeout string 60 # Se si preferisce configurare manualmente la rete, ecco come fare: #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 quella noiosa finestra di dialogo della chiave WEP. d-i netcfg/wireless_wep string # Lo stupido nome dell'host da 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 da usare per il caricamento dei componenti dell'installatore # (opzionale). #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 non è possibile partizionare più dischi e nemmeno impostare RAID o LVM. 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. #d-i partman-auto/init_automatically_partition \ # select Usa lo spazio libero continuo più grande # 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 riconosciuto da devfs: d-i partman-auto/disk string /dev/discs/disc0/disc # È possibile scegliere da una qualsiasi delle ricette di partizionamento # predefinite: d-i partman-auto/choose_recipe \ select Tutti i file in una partizione (raccomandata ai nuovi utenti) #d-i partman-auto/choose_recipe \ # select Una partizione separata per /home #d-i partman-auto/choose_recipe \ # select Partizioni separate per /home, /usr, /var e /tmp # Oppure fornite 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{ } \ # . # Questa fa in modo che partman partizioni automaticamente senza conferma. d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Termina il partizionamento e scrivi le modifiche sul disco d-i partman/confirm boolean true Impostazione dell'orologio e del fuso orario # Controlla se l'orologio hardware è 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 la metodo d'installazione e alle risposte date in precedenza. Per la preconfigurazione sono rilevanti solo le prossime due variabili. # È possibile scegliere di installare software non-free e contrib. #d-i apt-setup/non-free boolean true #d-i apt-setup/contrib boolean true 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. # Password di root, in chiaro entrambe le volte #passwd passwd/root-password password r00tme #passwd passwd/root-password-again password r00tme # oppure criptata in un hash MD5. #passwd passwd/root-password-crypted password [MD5 hash] # Saltare la creazione dell'account di un utente normale. #passwd passwd/make-user boolean false # In alternativa, è possibile creare l'account per un utente normale. #passwd passwd/user-fullname string Debian User #passwd passwd/username string debian # La password dell'utente, in chiaro entrambe le volte #passwd passwd/user-password password insecure #passwd passwd/user-password-again password insecure # oppure criptata in un hash MD5. #passwd 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 boot loader # Grub è il caricatore di avvio predefinito (per x86). Se si desidera, # invece, che sia installato lilo, scommentare questa: #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/bootdev string (hd0,0) #d-i grub-installer/only_debian boolean false #d-i grub-installer/with_other_os boolean false Termine della prima fase dell'installazione # Evita l'ultimo messaggio riguardo il completamento dell'installazione. d-i prebaseconfig/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 Preconfigurazione della seconda fase dell'installazione Configurazione di base # Evita il messaggio di introduzione. base-config base-config/intro note # Evita il messaggio finale. base-config base-config/login note # Se si è installato un gestore di visualizzazione ma non si vuole avviarlo # immediatamente dopo il termine di base-config. #base-config base-config/start-display-manager boolean false # Alcune versioni dell'installatore possono trasmettere un report di ciò che # si è installato. L'impostazione predefinita è di non inviare report, ma # l'invio dei report aiuta il progetto nel determinare quale software è più # popolare per includerlo nei CD. #popularity-contest popularity-contest/participate boolean false Selezione dei pacchetti È possibile scegliere di installare qualsiasi combinazione di task che siano disponibili. I task attualmente disponibili includono: Standard system (sistema standard) Desktop environment (ambiente desktop) 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) manual package selection (selezione manuale dei pacchetti) L'ultimo di questi eseguirà aptitude. 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 Sistema standard. tasksel tasksel/first multiselect Standard system, Desktop environment #tasksel tasksel/first multiselect Standard system, Web server 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 \ non selezionare alcuna configurazione in questo momento 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-xfree86 xserver-xfree86/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-xfree86 xserver-xfree86/autodetect_mouse boolean true # Il rilevamento automatico del monitor è raccomandato. xserver-xfree86 xserver-xfree86/autodetect_monitor boolean true # Scommentare se si ha uno schermo LCD. #xserver-xfree86 xserver-xfree86/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-xfree86 xserver-xfree86/config/monitor/selection-method \ select medium xserver-xfree86 xserver-xfree86/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 altri # exploit dei valori di un file di preconfigurazione come questo. Usare # solo file di preconfigurazione da locazioni fidate! Per riuscire in ciò, e # poiché è generalmente utile, ecco un modo per eseguire eventuali comandi # da shell che si desiderano dentro l'installatore, automaticamente. # Questo primo comando è eseguito prima possibile, appena dopo la lettura # della preconfigurazione. #d-i preseed/early_command string anna-install some-udeb # Questo comando è eseguito appena prima che l'installatore termini, ma # quando c'è ancora una directory /target usabile. #d-i preseed/late_command string echo foo > /target/etc/bar # Questo comando è eseguito non appena base-config si sta avviando. #base-config base-config/early_command string echo ciao mamma # Questo comando è eseguito dopo che base-config è terminato, appena prima # del prompt login:. Questo è un buon modo per installare un insieme di # pacchetti che si vuole o per mettere a punto la configurazione del sistema. #base-config base-config/late_command \ # string apt-get install zsh; 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 i nomi dei file sono relativi, sono prelevati # dalla stessa directory del file di preconfigurazione e sono processati # nell'ordine con cui sono inclusi. #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