B.4. Conteúdo do ficheiro de pré-configuração (para lenny)

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/lenny/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 o idioma e o país e poderá ser qualquer combinação de idiomas suportadas pelo debian-installer e de países reconhecidos. Se a combinação não formar um locale válido o instalador irá automaticamente escolher um locale que seja válido para o idioma escolhido. 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 do teclado 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 conhecido pelo debian-installer 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' através da 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 os seguintes comandos:

killall.sh; netcfg

As seguintes variáveis debconf são relevantes para a configuração da rede.

# 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
# Se for necessário firmware não-livre para a rede ou para outro hardware,
# pode configurar o instalador para tentar carregá-lo sempre, sem perguntar.
# Ou então mudar para desabilitar a pergunta mudar para 'false'.
#d-i hw-detect/load_firmware boolean true

Por favor note que o netcfg irá determinar automaticamente a máscara de rede se não for feito 'preseed' a netcfg/get_netmask. Neste caso, para instalações automáticas a variável tem de ser marcada como seen. De forma similar, o netcfg irá escolher um endereço apropriado se netcfg/get_gateway não estiver definido. Como caso especial, pode definir netcfg/get_gateway para “none” para especificar que não deve ser utilizada uma 'gateway'.

B.4.3. Consola de rede

# Utilize as seguintes definições se desejar utilizar o componente
# network-console para instalações remotas através de SSH. Isto só faz
# sentido se pretender fazer manualmente o resto da instalação.
#d-i anna/choose_modules string network-console
#d-i network-console/password password r00tme
#d-i network-console/password-again password r00tme

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

# Controla se vai ser utilizado NTP para acertar o relógio durante a instalação
d-i clock-setup/ntp boolean true
# Servidor NTP a utilizar. O valor pré-definido está quase sempre bem.
#d-i clock-setup/ntp-server string ntp.example.com

B.4.6. 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.
#d-i partman-auto/init_automatically_partition select biggest_free

# Em alternativa, pode especificar um disco a particionar. O nome do
# dispositivo tem de ser dado no formato tradicional não-devfs
# Nota: Tem de ser especificado um disco, a menos que o sistema tenha
# apenas um disco.
# Por exemplo, para utilizar o primeiro disco rígido SCSI/SATA:
#d-i partman-auto/disk string /dev/sda
# Além disso 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 vai ser particionado automaticamente contiver uma
# configuração LVM antiga, o utilizador normalmente recebe um aviso. Isto
# pode ser afastado com preseed...
d-i partman-lvm/device_remove_lvm boolean true
# O mesmo é aplicável a arrays RAID pré-existentes:
d-i partman-md/device_remove_md boolean true
# O mesmo acontece para a confirmação para escrever as partições lvm.
d-i partman-lvm/confirm boolean true

# Pode escolher uma das três receitas de particionamento pré-definidas.
# - atomic: todos os ficheiros numa partição
# - home:   partição /home separada
# - multi:  partições /home, /usr, /var e /tmp separadas
d-i partman-auto/choose_recipe select atomic

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

# Caso contrário pode colocar a receita inteira do ficheiro de
# pré-configuração numa linha (lógica). Este exemplo cria uma pequena
# partição /boot, swap adequada, e utiliza o resto do espaço 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, 
# desde que você lhe diga o que fazer utilizando um dos métodos acima.
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true

B.4.7. 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, 6 e 10, 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.12, “Instalação do gestor de arranque”.

Atenção

Neste tipo de particionamento automatizado é fácil correr mal. É também uma funcionalidade que recebe relativamente pouco teste dos criadores do debian-installer. 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.

# 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 todos com a
mesma disposição, por isso só funcionará se os discos forem do mesmo tamanho.
#d-i partman-auto/disk string /dev/sda /dev/sdb

# De seguida tem de especificar quais as partições físicas que serão
# utilizadas.
#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 é que 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, 5, 6 e 10; os dispositivos são separados com
"#"
#d-i partman-auto-raid/recipe string \
#    1 2 0 ext3 /                                           \
#          /dev/sda1#/dev/sdb1    \
#    .                                                      \
#    1 2 0 swap -                                           \
#          /dev/sda5#/dev/sdb5    \
#    .                                                      \
#    0 2 0 ext3 /home                                       \
#          /dev/sda6#/dev/sdb6    \
#    .

# 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
d-i partman/confirm boolean true

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

# Escolha o gerador de initramfs a utilizar para gerar o initrd para kernels 2.6.
#d-i base-installer/kernel/linux/initramfs-generators string yaird

# O (meta) pacote de imagem do kernel a ser instalado; para não ser instalado nenhum kernel pode ser utilizado "none".
#d-i base-installer/kernel/image string linux-image-2.6-486

B.4.9. 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 root (a conta normal de utilizador
# poderá utilizar o sudo).
#d-i passwd/root-login boolean false
# Em alternativa, para saltar a criação da conta normmal de utilizador.
#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 normal de utilizador.
#d-i passwd/user-fullname string Debian User
#d-i passwd/username string debian
# Password de utilizador normal, em texto simples
#d-i passwd/user-password password insecure
#d-i passwd/user-password-again password insecure
# ou encriptada utilizando uma hash MD5.
#d-i passwd/user-password-crypted password [MD5 hash]
# Criar o primeiro utilizador com o UID especificado em vez do valor
# pré-definido
#d-i passwd/user-uid string 1010

# A conta de utilizador será acrescentada a alguns grupos standard
# iniciais. Para saltar isso, utilize isto.
#d-i passwd/user-default-groups string audio cdrom video

Á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 utilizado o seguinte comando para gerar um hash MD5 para uma palavra-passe:

$ printf "r00tme" | mkpasswd -s -m md5

B.4.10. 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 se não quiser utilizar um mirror de rede
#d-i apt-setup/use_mirror boolean false
# Escolher quais os serviços de actualizações a utilizar; Definir os
# mirrors a serem utilizados.
# Os valores mostrados abaixo são as pré-definições normais
#d-i apt-setup/services-select multiselect security, volatile
#d-i apt-setup/security_host string security.debian.org
#d-i apt-setup/volatile_host string volatile.debian.org

# Repositórios adicionais, disponíveis local[0-9]
#d-i apt-setup/local0/repository string \
#       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 pré-definição o instalador necessita que os repositórios sejam
# autenticados com 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.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, web-server
# Se for escolhida a tarefa desktop, instalar os ambientes kde e xfce
# em vez do ambiente gnome, pré-definido.
#tasksel tasksel/desktop multiselect kde, xfce

# Pacotes individuais adicionais para instalar
#d-i pkgsel/include string openssh-server build-essential
# Actualizar pacotes após o bootstrap.
# Valores permitidos: none, safe-upgrade, full-upgrade
#d-i pkgsel/upgrade select none

# Algumas versões do instalador podem relatar de volta qual o software que
# você tem instalado, e qual o software que utiliza. Por pré-definição não é
relatado, mas enviar relatórios ajuda o projecto a determinar qual o software
mais popular e incluí-lo em CDs.
#popularity-contest popularity-contest/participate boolean false

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

# O grub é o gestor de arranque pré-definido (para x86). Se quiser, em vez
# disso, o lilo instalado, descomente isto:
#d-i grub-installer/skip boolean true
# Para evitar também instalar o lilo, e não instalar um gestor de
# arranque, descomente também isto:
#d-i lilo-installer/skip boolean true

# Isto é relativamente seguro de definir, faz o grub instalar-se
automaticamente 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 no MBR se também 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)
# Palavra-passe opcional para o grub, em texto visível
#d-i grub-installer/password password r00tme
#d-i grub-installer/password-again password r00tme
# ou encriptada utilizando um hash MD5, veja grub-md5-crypt(8).
#d-i grub-installer/password-crypted password [hash MD5]

Pode ser gerado um hash MD5 para uma palavra-passe para o grub utilizando o grub-md5-crypt, ou utilizando o comando do exemplo em Secção B.4.9, “Configuração de contas”.

B.4.13. A terminar a instalação

# Durante instalações feitas a partir da consola série, as consolas virtuais
normais (VT1-VT6) estão normalmente desactivadas em /etc/inittab. Descomente
a próxima linha para prevenir isto.
#d-i finish-install/keep-consoles boolean true

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

# Isto irá evitar que o CD seja ejectado durante a reinicialização, o que é
útil em algumas situações.
#d-i cdrom-detect/eject boolean false

# Isto é para fazer o instalador desligar quando terminar, mas não reiniciar
para o sistema instalado.
#d-i debian-installer/exit/halt boolean true
# Isto irá desligar a máquina em vez de a apenas parar.
#d-i debian-installer/exit/poweroff boolean true

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