D.3. Instalar Debian GNU/Linux a partir de um sistema Unix/Linux

Esta seção explica como instalar Debian GNU/Linux a partir de um sistema Unix ou Linux existente, sem utilizar o instalador guiado pelo menu como é explicado no resto do manual. Este cross-install HOWTO foi pedido por utilizadores que mudam para Debian GNU/Linux a partir de Red Hat, Mandriva e SUSE. Nesta seção é assumida alguma familiaridade em introduzir comandos *nix e navegar através do sistema de ficheiros. Nesta seção, $ simboliza um comando a ser escrito pelo utilizador do sistema atual, e # refere-se a comandos introduzidos no chroot Debian.

Assim que tiver o novo sistema Debian configurado de acordo com as suas preferências, você pode migrar os dados existentes dos utilizadores (se os tiver) para lá, e continuar a rolar. Isto é portanto uma instalação Debian GNU/Linux com zero paragens. É também uma maneira inteligente de lidar com hardware que de outro modo não se dá bem com os vários media ou tipos de arranque.

[Nota] Nota

Como isto é principalmente um procedimento manual, você deve ter em conta que tem de fazer muita da configuração básica do próprio sistema, a qual requer mais conhecimentos de Debian e de Linux em geral do que fazer uma instalação normal. Não pode esperar que este procedimento resulte num sistema idêntico ao criado a partir de uma instalação normal. Deve também ter em mente que este procedimento apenas dá os passos básicos para instalar um sistema. Poderão ser necessários passos adicionais de instalação/configuração.

D.3.1. Iniciar

Com as suas atuais ferramentas *nix de particionamento, reparticione o disco rígido conforme necessário, criando pelo menos um sistema de ficheiros e swap. Necessita cerca de 1012MB de espaço disponível para a instalação de apenas consola, ou pelo menos cerca de 2539MB se planeia instalar o X (mais se tencionar instalar ambientes de desktop como o GNOME ou o KDE Plasma).

De seguida, criar os sistemas de ficheiros nas partições. Por exemplo, para criar um sistema de ficheiros ext3 na partição /dev/sda6 (é a nossa partição raiz no nosso exemplo):

# mke2fs -j /dev/sda6

Em vez disso para criar um sistema de ficheiros ext2, omita -j.

Inicializar e ativar a swap (substitua o número da partição pela partição swap Debian que deseja):

# mkswap /dev/sda5
# sync
# swapon /dev/sda5

Monte uma partição como /mnt/debinst (o ponto de instalação, para ser o sistema de ficheiros raiz (/) no seu novo sistema). O nome do ponto de montagem é estritamente arbitrário, é referenciado posteriormente mais abaixo.

# mkdir /mnt/debinst
# mount /dev/sda6 /mnt/debinst

[Nota] Nota

Se desejar ter partes do sistema de ficheiros (e.g. /usr) montados em partições separadas, terá de criar e montar manualmente esses diretórios antes de proceder para a próxima etapa.

D.3.2. Instalar debootstrap

O utilitário utilizado pelo instalador Debian, e reconhecido como a forma oficial de instalar um sistema base Debian, é o debootstrap. Este utiliza o wget e ar, mas de outra forma depende apenas de /bin/sh e de utilitários Unix/Linux básicos[21]. Instale o wget e ar se não estiverem já no seu sistema atual, depois faça o download e instale o debootstrap.

Ou, pode utilizar o seguinte procedimento para instalá-lo manualmente. Crie um diretório de trabalho para extrair lá o .deb:

# mkdir work
# cd work

O binário debootstrap está localizado no arquivo Debian (assegure-se que escolhe o ficheiro adequado para a sua arquitetura). Faça o download do .deb debootstrap a partir do pool, copie o pacote para o diretório de trabalho, e extraia dele os ficheiros. Você necessita ter privilégios de root para instalar os ficheiros.

# ar -x debootstrap_0.X.X_all.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv

D.3.3. Correr debootstrap

O debootstrap pode fazer o download dos ficheiros necessários diretamente do arquivo quando o executar. Pode substituir qualquer mirror de arquivo por http.us.debian.org/debian no exemplo do comando abaixo, de preferência um mirror perto da sua rede. Os mirrors estão listados em http://www.debian.org/mirror/list.

Se possuir uma imagem de instalação Debian GNU/Linux bookworm montada em /cdrom, poderá substituir um URL de ficheiro em vez do URL http: file:/cdrom/debian/

Substitua um dos seguintes por ARCH no comando debootstrap: amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x.

# /usr/sbin/debootstrap --arch ARCH bookworm \
     /mnt/debinst http://ftp.us.debian.org/debian

Se a arquitetura do alvo for diferente da do anfitrião, deve acrescentar a opção --foreign.

D.3.4. Configurar o Sistema Base

Agora tem um verdadeiro sistema Debian, embora um pouco leve, no disco. Faça chroot para lá:

# LANG=C.UTF-8 chroot /mnt/debinst /bin/bash

Se a arquitetura do alvo for diferente da do anfitrião, primeiro terá de copiar qemu-user-static para a nova máquina:

# cp /usr/bin/qemu-ARCH-static /mnt/debinst/usr/bin
# LANG=C.UTF-8 chroot /mnt/debinst qemu-ARCH-static /bin/bash

Após fazer chroot pode ter de configurar a definição do terminal para ser compatível com o sistema base Debian, por exemplo:

# export TERM=xterm-color

Dependendo do valor de TERM, poderá ter de instalar o pacote ncurses-term para ter suporte ao mesmo.

Se a arquitetura do alvo for diferente da da máquina do anfitrião, tem de terminar o arranca das várias etapas:

/debootstrap/debootstrap --second-stage

D.3.4.1. Criar ficheiros de dispositivos

Nesta altura o /dev/ contém apenas ficheiros de dispositivos muito básicos. Para as próximas etapas da instalação poderão ser necessários ficheiros de dispositivos adicionais. Existem diferentes formas de fazer isto, o método que deve utilizar depende da máquina que estiver a utilizar para a instalação, ou se pretende utilizar um kernel modular ou não, e se pretende utilizar ficheiros de dispositivos dinâmicos (e.g. utilizando o udev) ou estáticos para o seu novo sistema.

Algumas das opções disponíveis são:

  • instalar o pacote makedev, e criar um conjunto predefinido de ficheiros de dispositivos estáticos utilizando (após fazer chroot)

    # apt install makedev
    # mount none /proc -t proc
    # cd /dev
    # MAKEDEV generic
    

  • criar manualmente apenas ficheiros de dispositivos específicos utilizando o MAKEDEV

  • ligar a montagem /dev do seu sistema anfitrião em cima do /dev do sistema alvo; note que os scripts postinst de alguns pacotes podem tentar criar ficheiros de dispositivos, por isso esta opção deve ser utilizada com cuidado

D.3.4.2. Partições a Montar

Tem de criar /etc/fstab.

# editor /etc/fstab

Aqui está um exemplo que pode modificar para adequar:

# /etc/fstab: informação do sistema de ficheiros estáticos.
#
# file system    mount point   type    options                  dump pass
/dev/XXX         /             ext3    defaults                 0    1
/dev/XXX         /boot         ext3    ro,nosuid,nodev          0    2

/dev/XXX         none          swap    sw                       0    0
proc             /proc         proc    defaults                 0    0

/dev/cdrom       /media/cdrom  iso9660 noauto,ro,user,exec      0    0

/dev/XXX         /tmp          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /var          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /usr          ext3    rw,nodev                 0    2
/dev/XXX         /home         ext3    rw,nosuid,nodev          0    2

Para montar todos os sistemas de ficheiros que tem especificado em /etc/fstab, utilize mount -a, ou para montar os sistemas de ficheiros individualmente, utilize:

# mount /path   # e.g.: mount /usr

Os atuais sistemas Debian têm pontos de montagem para media amovível sob /media mas mantém links simbólicos de compatibilidade em /. Crie estes conforme necessário, por exemplo:

# cd media
# mkdir cdrom0
# ln -s cdrom0 cdrom
# cd /
# ln -s media/cdrom

Pode montar o sistema de ficheiros proc várias vezes e em localizações arbitrárias, apesar de ser habitual em /proc. Se não utilizou mount -a, assegure-se que monta o proc antes de continuar:

# mount -t proc proc /proc

O comando ls /proc deve agora mostrar um diretório não-vazio. Se isto falhar, você pode montar o proc fora da chroot:

# mount -t proc proc /mnt/debinst/proc

D.3.4.3. Configurar o Fuso Horário

Definir a terceira linha do ficheiro /etc/adjtime para UTC ou para LOCAL determina se o sistema irá interpretar o relógio de hardware como estando definido para UTC ou para hora local. O seguinte comando permite-lhe definir isso.

# editor /etc/adjtime

Aqui está uma amostra:

0.0 0 0.0
0
UTC

O seguinte comando permite-lhe escolher o seu fuso horário.

# dpkg-reconfigure tzdata

D.3.4.4. Configurar a Rede

Para configurar a rede, edite /etc/network/interfaces, /etc/resolv.conf, /etc/hostname e /etc/hosts.

# editor /etc/network/interfaces

Aqui estão alguns exemplos simples retirados de /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- ficheiro de configuração p/ ifup(8), ifdown(8)
# Veja a manpage interfaces(5) manpage para informação acerca de que
# opções estão disponíveis.
######################################################################

# O interface loopback já não é necessário, mas pode ser utilizado se
# necessário.
#
# auto lo
# iface lo inet loopback

# Para utilizar dhcp:
#
# auto eth0
# iface eth0 inet dhcp

# Exemplo de configuração com IP estático: (network, broadcast e gateway
# são opcionais)
#
# auto eth0
# iface eth0 inet static
#     address 192.168.0.42
#     network 192.168.0.0
#     netmask 255.255.255.0
#     broadcast 192.168.0.255
#     gateway 192.168.0.1

Introduza o(s) seu(s) servidor(es) de nomes e diretivas de procura em /etc/resolv.conf:

# editor /etc/resolv.conf

Um simples /etc/resolv.conf de exemplo:

search example.com
nameserver 10.1.1.36
nameserver 192.168.9.100

Escreva o nome da máquina do seu sistema (2 a 63 caracteres):

# echo DebianHostName > /etc/hostname

E um /etc/hosts básico com suporte para IPv6:

127.0.0.1 localhost
127.0.1.1 DebianHostName

# As linhas seguintes são desejáveis para máquinas capazes de IPv6
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Se tiver várias placas de rede, deve ordenar os nomes dos drivers dos módulos no ficheiro /etc/modules com a ordem desejada. Depois, durante o arranque, cada placa será associada com o nome do interface (eth0, eth1, etc.) que espera.

D.3.4.5. Configurar o Apt

O debootstrap terá criado um /etc/apt/sources.list muito básico que irá permitir instalar pacotes adicionais. No entanto, poderá querer acrescentar algumas fontes adicionais, por exemplo para pacotes de código-fonte e actualizações de segurança:

deb-src http://ftp.us.debian.org/debian bookworm main

deb http://security.debian.org/ bookworm-security main
deb-src http://security.debian.org/ bookworm-security main

Assegure-se que corre apt update depois de ter feito alterações á lista de fontes.

D.3.4.6. Configurar os Locales e o Teclado

Para configurar as suas definições de locale para utilizar outra linguagem que não o Inglês, instale o pacote de suporte locales e configure-o. Atualmente é recomendado utilizar locales UTF-8.

# apt install locales
# dpkg-reconfigure locales

Para configurar o seu teclado (se necessário):

# apt install console-setup
# dpkg-reconfigure keyboard-configuration 

Note que o teclado não pode ser definido enquanto está no chroot, mas será configurado para a próxima vez que reiniciar.

D.3.5. Instalar um Kernel

Se tencionar arrancar este sistema, provavelmente quer um kernel Linux e um gestor de arranque. Identifique os kernels pré-compilados disponíveis com:

# apt search linux-image

Depois instale o pacote de kernel da sua escolha utilizando o seu nome de pacote.

# apt install linux-image-arch-etc

D.3.6. Configurar o Gestor de Arranque

Para tornar o seu sistema Debian GNU/Linux de arranque, faça o gestor de arranque carregar o kernel instalado com a sua nova partição raiz. Note que o debootstrap não instala um gestor de arranque, mas pode utilizar o apt dentro do seu chroot Debian para o fazer.

Note que isto assume que foi criado um ficheiro de dispositivo /dev/sda. Existem métodos alternativos para instalar o grub2, mas esses estão fora do âmbito deste apêndice.

D.3.7. Acesso remoto: Instalar SSH e definir o acesso

Caso consiga fazer login no sistema através de consola, pode saltar esta seção. Se o sistema deve posteriormente ser acessível através da rede, então necessita instalar SSH e definir o seu acesso.

# apt install ssh

Por predefinição o login de root com palavra-passe está inativo, por isso configurar o acesso pode ser feito definindo uma palavra-passe e ativando o login de root com palavra-passe:

# passwd
# editor /etc/ssh/sshd_config

Esta é a opção a ativar:

PermitRootLogin yes

O acesso também pode ser configurado ao acrescentar uma chave ssh á conta de root:

# mkdir /root/.ssh
# cat << EOF > /root/.ssh/authorized_keys
ssh-rsa ....
EOF

Por fim, o acesso pode ser definido ao acrescentar um utilizador que não seja o root e definir uma palavra-passe:

# adduser ze
# passwd ze

D.3.8. Últimos toques

Tal como mencionado anteriormente, o sistema instalado irá ser muito básico. Se quiser tornar o sistema um pouco mais maduro, existe um método fácil para instalar todos os pacotes com a prioridade standard:

# tasksel install standard

Claro que, pode também usar simplesmente o apt para instalar pacotes individualmente.

Após a instalação irão estar muitos pacotes a que foi feito o download em /var/cache/apt/archives/. Pode libertar algum espaço em disco ao correr:

# apt clean



[21] Estes incluem utilitários GNU fundamentais e comandos tais como sed, grep, tar e gzip.