B.4. Conteúdos do ficheiro de pré-configuração

Os fragmentos da configuração utilizados neste apêndice também estão disponíveis como ficheiro de exemplo de pré-configuração a partir de http://www.debian.org/releases/etch/example-preseed.txt.

Note que este exemplo é basedo numa instalação para a arquitetura Intel x86. Se está a instalar para uma arquitectura diferente, alguns dos exemplos (como a selecção do teclado e a instalação do booloader) podem não ser relevantes e irá ser preciso substituí-los por valores do debconf apropriados para a sua arquitectura.

B.4.1. Localização

Definir os valores para a localização só irão funcionar se usar preseeding por initrd. Com todos os outros métodos o ficheiro de pré-configuração irá apenas ser carregado após estas questões terem sido colocadas.

O locale pode ser utilizado para especificar quer o idioma quer o país. Para especificar o locale como um parâmetro de arranque, utilize locale=en_US.

# Locale define o idioma e o país.
d-i debian-installer/locale string en_US

A configuração consiste na selecção da arquitectura de teclado e um keymap. Na maioria dos casos a arquitectura de teclado correcta é a que é escolhida por omissão, por isso não é necessário fazer o preseed disso. O keymap tem de ser válido para a arquictectura de teclado escolhida.

# Seleccção de teclado.
#d-i console-tools/archs select at
d-i console-keymaps-at/keymap select us
# Exemplo para uma arquitectura de teclado diferente
#d-i console-keymaps-usb/keymap select mac-usb-us

Para saltar a configuração do teclado, faça preseed a console-tools/archs com skip-config. Isto irá resultar em que o keymap do kernel continue activo.

Nota

As alterações na camada de entrada para os kernels 2.6 tornaram a arquitectura do teclado virtualmente obsoletos. Para os kernels 2.6 normalmente deve ser seleccionado um keymap “PC” (at)

B.4.2. Configuração de rede

Claro, que fazer preseed à configuração de rede não funciona se estiver a carregar o seu ficheiro de pré-configuração a partir da rede. Mas é óptimo se estiver a iniciar a partir de CD ou de um stick USB. Se está a carregar ficheiros de pré-configuração a partir da rede, pode passar parâmetros de configuração de rede utilizando parâmetros de arranque do kernel.

Se necessitar escolher um determinado interface quando arrancar através da rede antes de carregar um ficheiro de pré-configuração pela rede, utilize um pârametro de arranque como o interface=eth1.

Embora normalmente não seja possível fazer preseed à configuração de rede quando se utiliza preseed de rede (utilizando “preseed/url”), você pode utilizar o seguinte truque para contornar isso, por exemplo se desejar atribuir um endereço estático para um interface de rede. O truque é forçar a configuração da rede a ser corrida novamente após o ficheiro de pré-configuração ter sido carregado ao criar um script “preseed/run” que contenha as seguintes linhas:

killall.sh dhclient
netcfg

# Se possível o netcfg irá escolher um interface que tenha ligação.
# Isto irá prevenir que seja mostrada uma lista se existir mais que um
# interface.
d-i netcfg/choose_interface select auto

# Em vez disso para escolher um determinado interface:
#d-i netcfg/choose_interface select eth1

# Se tem um servidor de dhcp lento e o instalador esgotar o tempo à
# espera, isto poderá ser útil.
#d-i netcfg/dhcp_timeout string 60

# Se preferir configurar manualmente a rede, descomente esta linha e a
# configuração, abaixo, da rede estática:
#d-i netcfg/disable_dhcp boolean true

# Se quiser que o ficheiro de pré-configuração funcione em sistemas com e sem
# servidor de dhcp, descomente estas linhas e a configuração da rede
# estática abaixo.
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually

# Configuração de rede estática.
#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

# Quaisquer nomes de hosts e nomes de domínio advindos do dhcp têm
# precedência sobre os valores mostrados a seguir.  No entanto, definir
 # estes valores fará com que as questões não sejam mostradas, mesmo que
# esses valores venham do dhcp.
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain

# Fazer desaparecer a aborrecida caixa de diálogo sobre a chave do WEP.
d-i netcfg/wireless_wep string
# O nome de host dhcp esquisito que alguns ISP's usam como password.
#d-i netcfg/dhcp_hostname string radish

B.4.3. Parâmetros do mirror

Dependendo do método de instalação que utilizar, pode ser utilizado um mirror para fazer o download de componentes adicionais do instalador, para instalar o sistema base, e para definir o ficheiro /etc/apt/sources.list para o sistema instalado.

O parâmetro mirror/suite determina a suite para o sistema instalado.

O parâmetro mirror/udeb/suite determina a suite dos componentes adicionais para o instalador. Só é útil definir isto se os componentes forem realmente tirados pela rede e devem corresponder à suite que foi usada para construir o initrd para o método de instalação utilizado para a instalação. Por omissão o valor de mirror/udeb/suite é o mesmo que o mirror/suite.

# Se escolher ftp, a string mirror/país não necessita ser definida.
#d-i mirror/protocol string ftp
d-i mirror/country string enter information manually
d-i mirror/http/hostname string http.us.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string

# Conjunto a instalar.
#d-i mirror/suite string testing
# Conjunto a usar para carregar os componentes do instalador (opcional).
#d-i mirror/udeb/suite string testing

B.4.4. Particionamento

Utilizar o preseed para particionar o disco rígido é bastante limitado ao que é suportado pelo partman-auto. Pode escolher entre particionar o espaço livre num disco ou um disco inteiro. A disposição das partições pode ser determinada por uma receita pré-definida, uma receita personalizada advinda de um ficheiro ou uma receita incluída no ficheiro de pré-configuração. Neste momento não é possível particionar vários discos utilizando o preseeding.

Atenção

A forma como os discos são identificados é dependente da ordem com que os seus drivers são carregados. Se existirem vários discos no sistema, certifique-se que o disco correcto será seleccionado antes de utilizar o preseeding.

# Se o sistema tiver espaço livre pode escolher particionar apenas esse espaço.
# Nota: tem de ser feito o preseed com um valor localizado (traduzido)
#d-i partman-auto/init_automatically_partition \
#      select Use the largest continuous free space

# Em alternativa, pode especificar um disco a particionar. O nome do
# dispositivo pode ser dado quer no formato devfs quer no tradicional
# não-devfs.
# Por exemplo, para utilizar o primeiro disco:
d-i partman-auto/disk string /dev/discs/disc0/disc
# Adiconalmente tem de especificar o método a utilizar.
# Actualmente os métodos disponíveis são: "regular", "lvm" e "crypto"
d-i partman-auto/method string lvm

# Se um dos discos que irá ser particionado automaticamente contiver uma
# configuração LVM antiga, o utilizador normalmente recebe um aviso. Isto
# pode ser afastado com preseed...
d-i partman-auto/purge_lvm_from_device boolean true
# E o mesmo para a confirmção para escrever partições lvm
d-i partman-lvm/confirm boolean true

# Pode escolher uma das receitas de particionamento pré-definidas.
# Nota: a este template tem ser feito preseed com um valor localizado
# (traduzido).
d-i partman-auto/choose_recipe \
       select All files in one partition (recommended for new users)
#d-i partman-auto/choose_recipe \
#       select Separate /home partition
#d-i partman-auto/choose_recipe \
#       select Separate /home, /usr, /var, and /tmp partitions

# Ou disponibilizar uma receita sua...
# O formato de receita está documentado no ficheiro devel/partman-auto-recipe.txt.
# Se tiver uma forma de obter um ficheiro de receita no ambiente d-i, pode
# apenas apontar para lá.
#d-i partman-auto/expert_recipe_file string /hd-media/recipe

# Caso contrário pode colocar a receita inteira no ficheiro de
# pré-configuração numa linha (lógica). Este exemplo cria uma pequena
# partição /boot, swap adequada, e o resto do espaço fica para a partição
# raiz:
#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{ }                \
#              .

# Isto faz com que o partman particione automaticamente sem confirmação.
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

B.4.5. Particionamento utilizando RAID

Também pode utilizar preseeding para configurar partições em arrays RAID por software. Os níveis RAID suportados são 0, 1 e 5, criar 'degraded arrays' e especificar dispositivos de reserva. Se está a utilizar RAID 1, pode fazer preseed ao grub para instalar em todos os dispositivos utilizados no array; veja Secção B.4.10, “Instalação do gestor de arranque”.

Atenção

Neste tipo de particionamento automatizado é fácil de errar. É também um componnente muito recente que ainda poderá ter alguns bugs ou falta de manuseamento de erros. A responsabilidade de ter as várias receitas correctas (de modo a que façam sentido e não entrem em conflito) é do utilizador. Se tiver problemas veja /var/log/syslog.

Note que apenas RAID 0 e 1 foram testados pelos criadores do componente. RAID 5 não foi testado. Configurações avançadas de RAID com 'degraded arrays' ou dispositivos de reserva foram apenas ligeiramente testados.

# NOTA: esta opção é de qualidade de lançamento beta e deve ser utilizada
# com cuidado

# O método deve ser definido como "raid".
#d-i partman-auto/method string raid
# Especifique os discos a serem particionados. Eles ficarão com a mesma
# disposição, por isso só funcionará se os discos forem do mesmo tamanho.
#d-i partman-auto/disk string /dev/discs/disc0/disc /dev/discs/disc1/disc

# De seguida tem de especificar quais as partições físicas que serão usadas.
#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 }                       \
#              .

# Por fim tem de especificar como as partições definidas anteriormente
# serão utilizadas na configuração RAID. Lembre-se de utilizar os números
# de partição correctos para as partições lógicas.
# Os parâmetros são:
# <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \
#          <devices> <sparedevices>
# São suportados RAID 0, 1 e 5; os dispositivos são separados com "#"
#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    \
#    .

# Isto faz com que o partman particione automaticamente sem confirmação.
d-i partman-md/confirm boolean true
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

B.4.6. Configuração do relógio e fuso horário

# Controla se o relógio de hardware está ou não definido para UTC.
d-i clock-setup/utc boolean true

# Pode definir este valor como qualquer definição válida para $TZ;
# para valores válidos veja o conteúdo de /usr/share/zoneinfo/.
d-i time/zone string US/Eastern

B.4.7. Configuração do Apt

A configuração do /etc/apt/sources.list e as opções da configuração básica são totalmente automatizadas de acordo com o seu método de instalação e respostas às questões anteriores. Opcionalmente pode acrescentar outros repositórios (locais).

# Pode escolher instalar software non-free e contrib.
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true
# Retire o comentário para evitar acrescentar fontes da secção de
# segurança, ou acresente o nome de uma máquina para utilizar outro
# servidor diferente de security.debian.org.
#d-i apt-setup/security_host string

# Repositórios adicionais, disponíveis 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
# Habilitar as linhas deb-src
# d-i apt-setup/local0/source boolean true
# URL para a chave pública do repositório local; tem de disponibilizar uma
# chave ou o apt irá queixar-se do repositório não autenticado e por isso a
# linha do sources.list será deixada comentada
#d-i apt-setup/local0/key string http://local.server/key

# Por omissão o instalador necessita que os repositórios sejam autenticados
# utilizando uma chave gpg conhecida. Esta configuração pode ser utilizada
# para desabilitar essa autenticação. Aviso: Inseguro, não recomendado.
#d-i debian-installer/allow_unauthenticated string true

B.4.8. Configuração de contas

À password para a conta de root, ao nome e à password para a primeira conta normal podem ser feitos preseed. Para as passwords pode utilizar valores em texto simples ou hashes MD5.

Atenção

Tenha em atenção que o preseed de passwords não é completamente seguro já que todos os que tiverem acesso ao ficheiro de pré-configuração ficam a conhecer essas passwords. Utilizar hashes MD5 é considerado ligeiramente melhor em termos de segurança mas também pode dar um falso sentido de segurança já que o acesso a hashes MD5 permite ataques "à bruta".

# Saltar a criação de uma conta de root (a conta de utilizador normal
# poderá utilizar o sudo).
#d-i passwd/root-login boolean false
# Em alternativa, para saltar a criação da conta de utilizador normal.
#d-i passwd/make-user boolean false

# Password de root, quer em texto simples
#d-i passwd/root-password password r00tme
#d-i passwd/root-password-again password r00tme
# ou encriptada utilizando um hash de MD5.
#d-i passwd/root-password-crypted password [MD5 hash]

# Para criar uma conta de utilizador normal.
#d-i passwd/user-fullname string Debian User
#d-i passwd/username string debian
# Password de utilizador normal, quer em texto simples
#d-i passwd/user-password password insecure
#d-i passwd/user-password-again password insecure
# ou encriptada utilizando um hash MD5.
#d-i passwd/user-password-crypted password [MD5 hash]

Ás variáveis passwd/root-password-crypted and passwd/user-password-crypted também pode ser feito o preseed com “!” como o seu valor. Nesse caso, a conta correspondente é desactivada. Isto pode ser conveniente para a conta root, claro está desde que esteja definido outro método para permitir actividades administrativas ou login como root (por exemplo utilizando uma chave de autenticação SSH ou sudo).

Pode ser gerada uma hash MD5 para uma password utilizando o seguinte comando.

$ echo "r00tme" | mkpasswd -s -H MD5

B.4.9. Instalação do sistema base

Na verdade não há muito a que possa ser feito preseed nesta etapa da instalação. As únicas perguntas colocadas referem-se à instalação do kernel.

# Escolhe o gerador de initramfs utilizado para gerar o initrd para os
# kernels 2.6.
#d-i base-installer/kernel/linux/initramfs-generators string yaird

B.4.10. Instalação do gestor de arranque

# O grub é o gestor de arranque por omissão (para x86). Se deseja, em vez
# disso, o lilo instalado, descomente isto:
#d-i grub-installer/skip boolean true

# Isto é relativamente seguro definir, instala o automaticamente o grub no MBR
# se não for detectado nenhum outro sistema operativo na máquina.
d-i grub-installer/only_debian boolean true

# Isto faz com que o grub-installer instale para o MBR se encontrar 
# algum outro SO, que é menos seguro pois pode não ser possível arrancar
# esse outro SO.
d-i grub-installer/with_other_os boolean true

# Em alternativa, se quiser instalar para outro local que não o mbr,
# descomente e edite estas linhas:
#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)
# Para instalar o grub em vários discos:
#d-i grub-installer/bootdev  string (hd0,0) (hd1,0) (hd2,0)

B.4.11. Selecção de pacotes

Pode escolher qualquer combinação de tarefas que estejam disponíveis. As tarefas disponíveis neste momento incluem:

  • standard

  • desktop

  • gnome-desktop

  • kde-desktop

  • web-server

  • print-server

  • dns-server

  • file-server

  • mail-server

  • sql-database

  • laptop

Pode também escolher não instalar nenhuma tarefa, e forçar a instalação de um conjunto de pacotes de alguma outra forma. Nós recomendamos sempre a inclusão da tarefa standard.

Se quer instalar alguns pacotes adicionais além dos pacotes instalados pelas tarefas, pode utilizar o parâmetro pkgsel/include. O valor deste parâmetro pode ser uma lista de pacotes separada quer por vírgulas ou por espaços, assim permite também ser facilmente utilizado na linha de comandos do kernel.

tasksel tasksel/first multiselect standard, desktop
#tasksel tasksel/first multiselect standard, web-server
#tasksel tasksel/first multiselect standard, kde-desktop

# Pacotes individuais adicionais para instalar
#d-i pkgsel/include string openssh-server build-essential

# Algumas versões do instalador podem relatar de volta que software você
# instalou, e que software você utiliza. Por omissão não é devolvido o
# relatório. mas enviar relatórios ajuda o projecto a determinar qual o
software mais popular e incluí-lo nos CDs.
#popularity-contest popularity-contest/participate boolean false

B.4.12. A terminar a instalação da primeira etapa

# Evitar a última mensagem acerca da instalação estar completa.
d-i finish-install/reboot_in_progress note

# Isto irá prevenir que o instalador ejecte o CD quando re-iniciar,
# que em algumas situações é útil.
#d-i cdrom-detect/eject boolean false

B.4.13. Configuração do X

É possível fazer preseed à configuração do X de Debian, mas provavelmente necessita saber os detalhes acerca do hardware de vídeo da máquina, já que o configurador de X em Debian não faz a configuração automática de tudo.

# O X pode detectar o driver correcto para algumas placas, mas se estiver a
# fazer preseed, você sobrepõe o quer que seja escolhido. Mesmo assim,
# vesa irá funcionar na maioria dos casos.
#xserver-xorg xserver-xorg/config/device/driver select vesa

# Uma situação melindrosa com a auto-detecção do rato é que se falhar, o X
# irá tentar sempre novamente. Por isso se for feito o preseed, existe a
# possibilidade de um ciclo infinito se o rato não for auto-detectado.
#xserver-xorg xserver-xorg/autodetect_mouse boolean true

# É recomendada a auto-detecção do monitor.
xserver-xorg xserver-xorg/autodetect_monitor boolean true
# Descomente se tem um ecrã LCD.
#xserver-xorg xserver-xorg/config/monitor/lcd boolean true
# O X tem três caminhos para a configuração do monitor. Aqui está como
# fazer o preseed o caminho "medium", que está sempre disponível. O caminho
# "simple" pode não estar disponível, e o caminho "advanced" que coloca
# demasiadas perguntas.
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. Preseed de outros pacotes

# Dependendo do software que escolher instalar, ou caso as coisas corram
# mal durante o processo de instalação, é possível que sejam colocadas
# outras questões. Também pode fazer preseed a essas, claro. Para obter
# uma lista de todas as questões possíveis que possam ser colocadas
# durante a instalação, faça uma instalação, e corra estes comandos:
#   debconf-get-selections --installer 
> file
#   debconf-get-selections 
>
> file