C.1. Příklad předkonfiguračního souboru

Toto je kompletní funkční příklad předkonfiguračního souboru pro automatizované instalace. Způsob použití je vysvětlen v 4.4 – „Automatická Instalace“. Před použitím souboru je vhodné odkomentovat některé řádky.

Poznámka

Pro lepší zobrazení v tištěné příručce jsme některé řádky zalomili. To je indikováno znakem pro pokračování řádku „\“ a poté větším odsazením následujícího řádku. V opravdovém souboru musí být takto rozdělené řádky pojeny do jediného.

#### Úprava syslinux.cfg.

# Upravte soubor syslinux.cfg (nebo podobný) a na konec řádku append
# přidejte příslušné parametry.
#
# Minimálně musíte instalátoru říci, odkud má stáhnout soubor
# s přednastavením. 
# Pro USB klíčenku umístěte soubor do kořenového adresáře USB klíčenky
# a použijte následující:
#   preseed/file=/hd-media/preseed
# Pro zavádění ze sítě použijte:
#   preseed/url=http://pocitac/cesta/k/preseed
# Pokud si vyrábíte vlastní CD, zkuste použít:
#   preseed/file=/cdrom/preseed
# Ujistěte se, že soubor nakopírujete na správné místo.
# 
# Když už upravujete soubor zavaděče, přidejte na stejné místo i parametr
# debconf/priority=critical, který odchytí většinu případných otázek, které
# zde zapomenete nastavit.
# Dále můžete v syslinux.cfg nastavit parametr timeout na 1, abyste nemuseli
# pro zavedení instalačního systému stisknout enter.
#
# Výběr jazyka, země a klávesnice nemůže být nastaven v souboru
# s přednastavením, protože tyto otázky se zobrazují ještě před tím,
# než se soubor s přednastavením načte. 
# Abyste se těmto otázkám vyhnuli zadejte jádru další parametry:
#
#    languagechooser/language-name=English
#    countrychooser/shortlist=US
#    console-keymaps-at/keymap=us
#
# Jádro akceptuje nejvýše 8 parametrů a 8 proměnných prostředí (včetně
# standardních voleb pro instalační program). Pokud tento limit
# překročíte, jádra řady 2.4 přebývající parametry zahodí, jádra 2.6
# zpanikaří. Pro většinu instalací můžete celkem bez problémů
# odstranit implicitní volby 'vga=normal' a 'devfs=mount', což vám
# umožní přidat další volby pro přednastavení.

#### Shellové příkazy.

# Přednastavení d-i není už ze své podstaty bezpečné. Nic
# v instalačním systému nekontroluje pokusy kolem přetečení bufferu
# ani zneužití hodnot v souboru s přednastaveními. Používejte tyto
# soubory pouze z důvěryhodných zdrojů!
# Následuje ukázka, jak v d-i spustit automaticky nějaký shellový příkaz.

# První příkaz je spuštěn co nejdříve - hned po načtení přednastavení.
#d-i preseed/early_command              string \
#    wget http://url/k/muj.udeb -O /tmp/muj.udeb ; udpkg -i /tmp/muj.udeb
# Tento příkaz je spuštěn těsně před koncem instalace, ale ještě je
# připojen adresář /target.
#d-i preseed/late_command               string \
#    for deb in /hd-media/*.deb; do cp $deb /target/tmp; \
#    chroot /target dpkg -i /tmp/$(basename $deb); done
# Tento příkaz je spuštěn při startu base-config.
#base-config base-config/early_command  string echo ahoj mami
# Poslední příkaz je spuštěn po skončení base-config, těsně před
# výzvou login:. Takto můžete doinstalovat balíky, nebo také doladit
# nastavení systému.
#base-config base-config/late_command   string \
#    apt-get install zsh; chsh -s /bin/zsh

#### Nastavení sítě.

# Pokud nahráváte soubor s přednastavením ze sítě, pak následující
# samozřejmě nebude fungovat! V takovém případě zadejte potřebné
# parametry zavaděči jádra stejně jako výběr jazyka/země/klávesnice.
# Zavádíte-li z CD nebo USB, bude nastavení fungovat bez problémů.

# netcfg zkusí použít rozhraní, jehož druhý konec je aktivní.
# Tím pádem přeskočí výběr ze seznamu nalezených rozhraní.
d-i netcfg/choose_interface             select auto

# Pokud dáváte přednost ručnímu nastavení sítě:
#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

# Název počítače a domény přiřazené přes DHCP mají větší prioritu než
# hodnoty nastavené zde, nicméně takto máte jistotu, že tato otázka
# nezobrazí (ať už nastavení z DHCP obdržíme nebo ne).
d-i netcfg/get_hostname	                string  nenastavene-jmeno
d-i netcfg/get_domain	                string  nenastavena-domena

# Zakáže otravný dialog o WEP klíči.
d-i netcfg/wireless_wep	                string
# Praštěné DHCP jméno počítače, které používají někteří ISP jako heslo.
#d-i netcfg/dhcp_hostname               string radish

#### Nastavení zrcadla.

d-i mirror/country                      string enter information manually
d-i mirror/http/hostname                string http.cz.debian.org
d-i mirror/http/directory               string /debian
d-i mirror/suite                        string testing
d-i mirror/http/proxy                   string 

### Rozdělení disku.

# Pokud má systém volné místo, můžete je vybrat k automatickému rozdělení.
#d-i partman-auto/init_automatically_partition \
#    select Use the largest continuous free space
# Alternativně můžete zadat k automatickému dělení celý disk. Název
# zařízení může být v tradičním formátu nebo ve formátu devfs.
# Například pro použití prvního disku, který devfs najde:
d-i partman-auto/disk                   string /dev/discs/disc0/disc

# Můžete vybrat libovolný z přednastavených schémat dělení:
d-i partman-auto/choose_recipe          select \
    All files in one partition (recommended for new users)
#d-i partman-auto/choose_recipe         select Desktop machine
#d-i partman-auto/choose_recipe         select Multi-user workstation
# Nebo zadat váš vlastní návod na dělení...
# Formát návodu je popsán v souboru devel/partman-auto-recipe.txt.
# Pokud umíte do prostředí d-i dostat soubor s návodem na dělení,
# stačí na něj odkázat.
#d-i partman-auto/expert_recipe_file    string /hd-media/recipe
# V opačném případě můžete zadat celý návod na jednu řádku. Například
# vytvoříme malou /boot oblast, vhodný swap a zbytek použijeme jako
# kořenovou oblast:
#d-i partman-auto/expert_recipe         string boot-root :: \
#    20 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{ } .
# Pro jistotu zde uvádíme stejný recept v čitelnější podobě:
#    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{ }
#        .

# Následujícím řeknete partmanu, aby disk rozdělil bez potvrzení.
d-i partman/confirm_write_new_label     boolean true
d-i partman/choose_partition            select \
    Finish partitioning and write changes to disk
d-i partman/confirm                     boolean true

#### Instalace zavaděče.

# Implicitní zavaděč (pro x86) je Grub. Chcete-li místo něj instalovat
# LILO, odkomentujte následující:
#d-i grub-installer/skip                boolean true

# Toto je bezpečné nastavení - pokud nenalezne jiný operační systém,
# nainstaluje Grub do MBR.
d-i grub-installer/only_debian          boolean true

# Toto nainstaluje Grub do MBR i když nalezne jiný operační systém,
# což je méně bezpečné, protože se jiný systém nemusí zavést.
d-i grub-installer/with_other_os        boolean true

# Alternativně můžete instalovat jinam než do MBR - odkomentujete
# a upravte tyto řádky:
#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

##### Finishing up the first stage install.

# Vynechá poslední hlášku, že je instalace kompletní.
d-i prebaseconfig/reboot_in_progress    note 


##### Přednastavení base-config.

# Vynechá úvodní hlášku.
base-config base-config/intro           note 

# Vynechá poslední hlášku.
base-config base-config/login           note 

# Pokud jste instalovali správce zobrazení, ale nechcete jej spustit
# hned po dokončení base-config.
#base-config base-config/start-display-manager      boolean false

###### Nastavení časového pásma.

# Nastaví, zda jsou hardwarové hodiny v GMT.
base-config tzconfig/gmt                boolean true

# Pokud jste instalačnímu systému řekli, že žijete ve Spojených
# státech, můžete vybrat časovou zónu následující proměnnou.
# (Možnosti jsou: Eastern, Central, Mountain, Pacific, Alaska, Hawaii,
# Aleutian, Arizona East-Indiana, Indiana-Starke, Michigan, Samoa, other)
base-config tzconfig/choose_country_zone/US         select Eastern
# Pokud se nacházíte v Kanadě.
# (Možnosti jsou: Newfoundland, Atlantic, Eastern, Central,
# East-Saskatchewan, Saskatchewan, Mountain, Pacific, Yukon, other)
base-config tzconfig/choose_country_zone/CA         select Eastern
# Pokud se nacházíte v Brazílii.
# (Možnosti jsou: East, West, Acre, DeNoronha, other)
base-config tzconfig/choose_country_zone/BR         select East
# Mnoho zemí má pouze jedno časové pásmo (jako ČR). Pokud se nacházíte
# v některé z těchto zemí, můžete vybrat časové pásmo následující
# otázkou. 
base-config tzconfig/choose_country_zone_single     boolean true
# Tato otázka slouží jako záchytný bod pro země, které mají více
# časových pásem a které nevyhovují žádné předchozí otázce.
# Můžete zadat některé z časových pásem nebo "other".
#base-config tzconfig/choose_country_zone_multiple  select 

###### Nastavení uživatelských účtů.

# Sem můžete zadat rootovo heslo, což není nejlepší nápad. S touto
# volbou buďte velmi opatrní!
#passwd passwd/root-password            password jsem_r00t
#passwd passwd/root-password-again      password jsem_r00t

# Chcete-li přeskočit vytváření běžného uživatelského účtu.
#passwd passwd/make-user                boolean false
# Alternativně můžete přednastavit jméno uživatele.
#passwd passwd/user-fullname            string Uzivatel Debianu
#passwd passwd/username                 string franta
# Uživatelovo heslo, opět buďte opatrní!
#passwd passwd/user-password            password nebezpecne
#passwd passwd/user-password-again      password nebezpecne

###### Nastavení APTu.

# Tato otázka určuje, odkud se budou instalovat balíky ve druhé fázi
# instalace. Možnosti jsou cdrom, http, ftp, filesystem, edit sources
# list by hand.
base-config apt-setup/uri_type          select http

# Zvolíte-li ftp nebo http, musíte zadat zemi a zrcadlo.
base-config apt-setup/country           select enter information manually
base-config apt-setup/hostname          string http.cz.debian.org
base-config apt-setup/directory         string /debian
# Zastaví po výběru jednoho zrcadla.
base-config apt-setup/another           boolean false

# Můžete si nainstalovat software ze sekcí non-free a contrib.
#base-config apt-setup/non-free         boolean true
#base-config apt-setup/contrib          boolean true

# Povolí bezpečnostní aktualizace.
base-config apt-setup/security-updates  boolean true

###### Výběr balíků.

# Můžete zvolit libovolnou kombinaci dostupných úloh.
# V době psaní to zahrnuje: Desktop environment, Web server,
# Print server, DNS server, File server, Mail server, SQL database,
# manual package selection. Poslední možnost spustí aptitude.
# Také můžete instalaci úloh vynechat a instalovat balíku nějakou
# jinou cestou. 
tasksel   tasksel/first   multiselect Desktop environment
#tasksel  tasksel/first   multiselect Web server, Mail server, DNS server

###### Nastavení pošty.

# Během normální instalace se exim ptá pouze dvě otázky. (Je možné
# přednastavit i složitější nastavení.)
exim4-config  exim4/dc_eximconfig_configtype \
    select no configuration at this time
# Toto je vhodné nastavit na jméno uživatele, kterého jste vytvořili
# dříve. Pokud necháte prázdné, půjde pošta pro uživatele postmaster
# do /var/mail/mail.
exim4-config exim4/dc_postmaster        string 

###### Nastavení X Window.

# Přednastavení těchto otázek je možné, ale musíte znát podrobnosti
# o grafickém vybavení počítače, protože automatické nastavení
# X Window nerozpozná každou grafickou kartu/monitor/myš/klávesnici.

# I když X rozpozná správný ovladač grafické karty, zde jej můžete
# přepsat. Vesa bude fungovat ve většině případů.
#xserver-xfree86 xserver-xfree86/config/device/driver select vesa

# Pokud se automatické rozpoznání myši nezdaří, dostanete se do
# nekonečné smyčky, protože nástroj se bude ptát znovu a znovu
# a pokaždé (ne)nalezne stejnou nefunkční myš.
#xserver-xfree86 xserver-xfree86/autodetect_mouse     boolean true

# Automatické rozpoznání monitoru je doporučeno.
xserver-xfree86 xserver-xfree86/autodetect_monitor    boolean true
# Odkomentujete pokud máte LCD displej.
#xserver-xfree86 xserver-xfree86/config/monitor/lcd   boolean true
# X má tři metody nastavení monitoru. Ukážeme střední cestu
# ("medium"), která je dostupná vždy.  Možnost "simple" nemusí být
# dostupná a "advanced" se ptá příliš mnoho otázek.
xserver-xfree86 xserver-xfree86/config/monitor/selection-method	\
    select medium
xserver-xfree86 xserver-xfree86/config/monitor/mode-list \
    select 1024x768 @ 60 Hz

###### Vše ostatní.

# Je možné, že se objeví další otázky v závislosti na tom, jaký
# software nainstalujete nebo podle toho, co se během instalace
# pokazí. Seznam všech možných otázek instalačního programu získáte
# příkazy:
#   debconf-get-selections --installer > file
#   debconf-get-selections >> file

# Přednastavení může být uloženo v několika souborech, načtete je
# následovně:
#d-i preseed/include                    string x.cfg

# Zadat můžete i více souborů najednou, stačí je oddělit mezerami.
# Později uvedené volby přepisují volby uvedené dříve. Pokud cestu
# zadáte relativně, hledají se soubory ve stejném adresáři, jako tento
# soubor. 
# Mnohem pružnější je použití shellového příkazu, který vrátí názvy
# souborů, jež se mají nahrát. V našem příkladě se příkaz rozhoduje
# mezi soubory podle konkrétního USB zařízení (zde vestavěné čtečky
# karet):
#d-i preseed/include_command            string \
#    if $(grep -q "GUID: 0aec3050aec305000001a003" /proc/scsi/usb-storage-*/*); \
#    then echo kraken.cfg; else echo otherusb.cfg; fi