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

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://d-i.alioth.debian.org/manual/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.

Although this method is very easy to use, it does not allow preseeding of all possible combinations of language, country and locale[28]. So alternatively the values can be preseeded individually. Language and country can also be specified as boot parameters.

# Preseeding only locale sets language, country and locale.
d-i debian-installer/locale string en_US

# The values can also be preseeded individually for greater flexibility.
#d-i debian-installer/language string en
#d-i debian-installer/country string NL
#d-i debian-installer/locale string en_GB.UTF-8
# Optionally specify additional locales to be generated.
#d-i localechooser/supported-locales en_US.UTF-8, nl_NL.UTF-8

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.

# Desabilitar, por completo, a configuração de rede. Isto é útil para
# instalações por cdrom em dispositivos não ligados à rede onde as questões
# de rede, avisos e timeouts são uma chatice.#d-i netcfg/enable boolean false

# 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 falso evitar a pergunta.
#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.

The parameter mirror/udeb/suite determines the suite for additional components for the installer. It is only useful to set this if components are actually downloaded over the network and should match the suite that was used to build the initrd for the installation method used for the installation. Normally the installer will automatically use the correct value and there should be no need to set this.

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

# If the system has free space you can choose to only partition that space.
# This is only honoured if partman-auto/method (below) is not set.
#d-i partman-auto/init_automatically_partition select biggest_free

# Alternatively, you can specify a disk to partition. The device name must
# be given in traditional non-devfs format.
# Note: A disk must be specified, unless the system has only one disk.
# For example, to use the first SCSI/SATA hard disk:
#d-i partman-auto/disk string /dev/sda
# In addition, you'll need to specify the method to use.
# The presently available methods are: "regular", "lvm" and "crypto"
d-i partman-auto/method string lvm

# If one of the disks that are going to be automatically partitioned
# contains an old LVM configuration, the user will normally receive a
# warning. This can be preseeded away...
d-i partman-lvm/device_remove_lvm boolean true
# The same applies to pre-existing software RAID array:
d-i partman-md/device_remove_md boolean true
# And the same goes for the confirmation to write the lvm partitions.
d-i partman-lvm/confirm boolean true

# You can choose one of the three predefined partitioning recipes:
# - atomic: all files in one partition
# - home:   separate /home partition
# - multi:  separate /home, /usr, /var, and /tmp partitions
d-i partman-auto/choose_recipe select atomic

# Or provide a recipe of your own...
# The recipe format is documented in the file devel/partman-auto-recipe.txt.
# If you have a way to get a recipe file into the d-i environment, you can
# just point at it.
#d-i partman-auto/expert_recipe_file string /hd-media/recipe

# If not, you can put an entire recipe into the preconfiguration file in one
# (logical) line. This example creates a small /boot partition, suitable
# swap, and uses the rest of the space for the root partition:
#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{ }                \
#              .

# This makes partman automatically partition without confirmation, provided
# that you told it what to do using one of the methods above.
d-i partman-partitioning/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.13, “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
# cuidadosamente

# 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 isto só funcionará se os discos forem do
# mesmo tamanho.
#d-i partman-auto/disk string /dev/sda /dev/sdb

# De seguida tem de especificar 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-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true

B.4.8. Controlar como são montadas as partições

Normalmente, os sistemas de ficheiros são montados utilizando como chave um identificador único (UUID); isto permite serem correctamente montados mesmo que o nome de dispositivo altere. Os UUIDs são muito compridos e difíceis de ler, por isso, se preferir, o instalador pode montar sistemas de ficheiros de acordo com os nomes de dispositivos tradicionais, ou baseado numa etiqueta que você atribui. Se pedir ao instalador para montar por etiqueta, qualquer sistema de ficheiros sem a etiqueta será montado utilizando um UUID.

Os dispositivos com nomes estáveis, tal como os volumes lógicos de LVM, irão continuar a utilizar os seus nomes tradicionais em vez de UUIDs.

Atenção

Os nomes de dispositivos tradicionais podem ser alterados na ordem pela qual o kernel descobre os dispositivos durante o arranque, o que pode fazer com que seja montado o sistema de ficheiros errado. De forma similar, é provável que as etiquetas choquem se ligar um novo disco ou pen USB, e se isso acontecer o comportamento do seu sistema, ao ser iniciado, poderá ser aleatório.

# O predefinido é montar por UUID, mas pode também escolher "traditional"
# para utilizar nomes tradicionais de dispositivo, ou "label" para antes
# tentar utilizar etiquetas de sistemas de ficheiros antes de tentar UUIDs.
# d-i partman/mount_style select uuid

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.

# Configure APT to not install recommended packages by default. Use of this
# option can result in an incomplete system and should only be used by very
# experienced users.
#d-i base-installer/install-recommends boolean false

# Select the initramfs generator used to generate the initrd for 2.6 kernels.
#d-i base-installer/kernel/linux/initramfs-generators string yaird

# The kernel image (meta) package to be installed; "none" can be used if no
# kernel is to be installed.
#d-i base-installer/kernel/image string linux-image-2.6-486

B.4.10. 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.11. 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 boolean true

B.4.12. 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
# If the desktop task is selected, install the kde and xfce desktops
# instead of the default gnome desktop.
#tasksel tasksel/desktop multiselect kde, xfce

# Individual additional packages to install
#d-i pkgsel/include string openssh-server build-essential
# By default, packages that are only Recommended by packages installed using
# pkgsel/include (as opposed to their dependencies) will not be installed.
# Whether to upgrade packages after debootstrap.
# Allowed values: none, safe-upgrade, full-upgrade
#d-i pkgsel/upgrade select none

# Some versions of the installer can report back on what software you have
# installed, and what software you use. The default is not to report back,
# but sending reports helps the project determine what software is most
# popular and include it on CDs.
#popularity-contest popularity-contest/participate boolean false

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

# O grub é o gestor de arranque priedefinido (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 se instale no MBR se também encontrar
# algum outro SO, o 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 o 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]
# Para acrescentar parâmetros adicionais de arranque para o sistema
# instalado utilize a seguinte opção (se for suportado pelo instalador do
# gestor de arranque).
# Nota: as opções passadas ao instalador serão automaticamente acrescentadas.
#d-i debian-installer/add-kernel-opts string nousb

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.10, “Configuração de contas”.

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


[28] Preseeding locale to en_NL would for example result in en_US.UTF-8 as default locale for the installed system. If e.g. en_GB.UTF-8 is preferred instead, the values will need to be preseeded individually.