D.3. Instalar Debian GNU/Linux desde un sistema Unix/Linux

Esta sección explica cómo instalar Debian GNU/Linux desde un sistema Unix o Linux existente, sin usar el instalador basado en menús, como se explica en el resto de este manual. Los usuarios que se cambian a Debian GNU/Linux desde Red Hat, Mandriva y SuSE han solicitado este CÓMO de instalación cruzada. En esta sección se asume alguna familiaridad con la introducción de órdenes en *nix y navegación en el sistema de ficheros. En esta sección $ simboliza una orden a introducirse en el sistema actual del usuario, mientras que # se refiere a una orden introducida en la jaula (chroot, N. del t.) de Debian.

Una vez que tenga el nuevo sistema Debian configurado a su preferencia, puede migrar los datos existentes de sus usuarios (si fuese el caso) a éste y continuar funcionando. Esto es por tanto una instalación sin parada de Debian GNU/Linux. Es también una forma inteligente de tratar con hardware que no puede utilizarse de forma sencilla con los distintos mecanismos de instalación o arranque disponibles.

[Nota] Nota

Dado que este proceso es, en gran parte, manual ha de tener en cuenta que tendrá que hacer gran parte de la configuración básica del sistema por su cuenta. Para poder hacer esto necesitará más conocimientos de Debian y en general de Linux que si fuera a hacer una instalación normal. No espere que el resultado de este procedimiento sea un sistema idéntico al que uno obtendría si realizara la instalación normalmente. También debería tener en cuenta que este procedimiento solamente describe los pasos básicos para configurar un sistema. Es posible que puedan tener que realizarse pasos adicionales en la instalación y/o configuración.

D.3.1. Primeros pasos

With your current *nix partitioning tools, repartition the hard drive as needed, creating at least one filesystem plus swap. You need around 769MB of space available for a console only install, or about 2271MB if you plan to install X (more if you intend to install desktop environments like GNOME or KDE Plasma).

A continuación, deberá crear sistemas de ficheros en sus particiones. Por ejemplo, para crear un sistema de ficheros ext3 en la partición /dev/sda6 (es nuestra partición raíz de ejemplo):

# mke2fs -j /dev/sda6

En cambio para crear un sistema de ficheros ext2, omita -j.

Inicialice y active la partición de intercambio (sustituya el número de partición por la partición de intercambio de Debian que vaya a utilizar):

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

Monte una partición como /mnt/debinst (el punto de instalación, que será el sistema de ficheros raíz (/) en su nuevo sistema). El nombre del punto de montaje es estrictamente arbitrario, pero se utilizará este mismo nombre más adelante.

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

[Nota] Nota

Deberá crear y montar manualmente los directorios que sean necesarios antes de continuar con la siguiente parte del proceso si desea montar partes del sistema de ficheros (como por ejemplo /usr) en particiones distintas.

D.3.2. Instalar debootstrap

debootstrap es la herramienta que usa el instalador de Debian, es también la forma oficial de instalar un sistema base Debian. Usa wget y ar, pero, salvo esto, sólo depende de /bin/sh y algunas herramientas básicas de Unix/Linux[22]. Si aún no lo ha hecho, instale wget y ar en su sistema actual, y luego descargue e instale debootstrap.

Por otra parte, puede usar el siguiente procedimiento para instalarlo manualmente. Cree un directorio temporal trabajo para extraer el fichero «.deb» en él:

# mkdir trabajo
# cd trabajo

El binario de debootstrap se encuentra en el archivo de Debian (asegúrese de elegir el fichero adecuado para su arquitectura). Descargue el paquete de debootstrap desde el almacén de paquetes en http://ftp.debian.org/debian/pool/main/d/debootstrap/, copie el paquete al directorio trabajo y extraiga los ficheros de éste. Necesitará privilegios de superusuario para instalar los ficheros.

# ar -x debootstrap_0.X.X_all.deb
# cd /
# zcat /ruta-completa-hasta-trabajo/trabajo/data.tar.gz | tar xv

D.3.3. Ejecutar debootstrap

debootstrap descargará los ficheros necesarios directamente desde el archivo cuando lo ejecute. Puede sustituir ftp.es.debian.org/debian por cualquier servidor de réplica del archivo Debian, en la orden de ejemplo que se muestra a continuación. Es mejor que utilice un servidor de réplica cercano (es decir, en una red próxima). Puede encontrar una lista completa de los servidores de réplica en: http://www.debian.org/mirror/list.

If you have a bullseye Debian GNU/Linux installation image mounted at /cdrom, you could substitute a file URL instead of the http URL: file:/cdrom/debian/

Substitute one of the following for ARCH in the debootstrap command: amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x.

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

If the target architecture is different than the host, you should add the --foreign option.

D.3.4. Configurar el sistema base

Now you've got a real Debian system, though rather lean, on disk. chroot into it:

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

If the target architecture is different from the host, you will need to first copy qemu-user-static to the new host:

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

After chrooting you may need to set the terminal definition to be compatible with the Debian base system, for example:

# export TERM=xterm-color

Depending on the value of TERM, you may have to install the ncurses-term package to get support for it.

If the target architecture is different from the host, you need to finish the multi-stage boot strap:

/debootstrap/debootstrap --second-stage

D.3.4.1. Crear ficheros de dispositivos

Llegados a este punto el directorio /dev/ contiene solamente ficheros de dispositivo muy básicos. Es posible que necesite ficheros de dispositivo adicionales para llevar a cabo los pasos siguientes de la instalación. Hay varias formas de hacerlo y el método que vaya a usar dependerá del sistema inicial que esté usando para la instalación; si desea usar un núcleo modular o no, si pretende usar ficheros de dispositivo dinámicos (p. ej. con udev) o estáticos en el sistema nuevo.

Algunas de las opciones disponibles son las siguientes:

  • instale el paquete makedev, y cree un conjunto predeterminado de ficheros de dispositivo estáticos (después de acceder a la jaula chroot) con

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

  • cree manualmente sólo ficheros de dispositivos específicos con MAKEDEV

  • Monte /dev del sistema original encima del directorio /dev del sistema objetivo utilizando un enlace de montaje («bind mount», N. del T.) Ha de tener en cuenta que los programas de postinstalación de algunos paquetes pueden tratar de crear ficheros de dispositivo. Utilice esta opción con precaución.

D.3.4.2. Montar particiones

You need to create /etc/fstab.

# editor /etc/fstab

Here is a sample you can modify to suit:

# /etc/fstab: static file system information.
#
# 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

Use mount -a to mount all the file systems you have specified in your /etc/fstab, or, to mount file systems individually, use:

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

Current Debian systems have mountpoints for removable media under /media, but keep compatibility symlinks in /. Create these as as needed, for example:

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

You can mount the proc file system multiple times and to arbitrary locations, though /proc is customary. If you didn't use mount -a, be sure to mount proc before continuing:

# mount -t proc proc /proc

Si ejecuta la orden ls /proc debería ver que el directorio no está vacío. Si esto falla, puede intentar montar proc fuera del entorno chroot:

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

D.3.4.3. Configurar la zona horaria

Si se define la tercera línea del fichero /etc/adjtime como UTC o LOCAL, se determina si el sistema interpreta el reloj de hardware como UTC o como hora local. Las siguientes órdenes le permiten configurar ésto.

# editor /etc/adjtime

Here is a sample:

0.0 0 0.0
0
UTC

La siguiente orden le permite elegir su zona horaria.

# dpkg-reconfigure tzdata

D.3.4.4. Configurar la red

To configure networking, edit /etc/network/interfaces, /etc/resolv.conf, /etc/hostname and /etc/hosts.

# editor /etc/network/interfaces

Here are some simple examples from /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# See the interfaces(5) manpage for information on what options are
# available.
######################################################################

# The loopback interface isn't really required any longer, but can be used
# if needed.
#
# auto lo
# iface lo inet loopback

# To use dhcp:
#
# auto eth0
# iface eth0 inet dhcp

# An example static IP setup: (network, broadcast and gateway are optional)
#
# 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

Enter your nameserver(s) and search directives in /etc/resolv.conf:

# editor /etc/resolv.conf

A simple example /etc/resolv.conf:

search example.com
nameserver 10.1.1.36
nameserver 192.168.9.100

Enter your system's host name (2 to 63 characters):

# echo DebianHostName > /etc/hostname

And a basic /etc/hosts with IPv6 support:

127.0.0.1 localhost
127.0.1.1 DebianHostName

# The following lines are desirable for IPv6 capable hosts
::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

If you have multiple network cards, you should arrange the names of driver modules in the /etc/modules file into the desired order. Then during boot, each card will be associated with the interface name (eth0, eth1, etc.) that you expect.

D.3.4.5. Configurar Apt

Debootstrap will have created a very basic /etc/apt/sources.list that will allow installing additional packages. However, you may want to add some additional sources, for example for source packages and security updates:

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

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

Make sure to run apt update after you have made changes to the sources list.

D.3.4.6. Configurar la localización y el teclado

To configure your locale settings to use a language other than English, install the locales support package and configure it. Currently the use of UTF-8 locales is recommended.

# apt install locales
# dpkg-reconfigure locales

To configure your keyboard (if needed):

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

Tenga en cuenta que no puede configurar el teclado mientras esté dentro del chroot, pero se configurará en el siguiente reinicio.

D.3.5. Instalar un núcleo

Si intenta arrancar este sistema, probablemente querrá un núcleo Linux y un gestor de arranque. Identifique los núcleos previamente empaquetados disponibles con:

# apt search linux-image

A continuación, instale el paquete del núcleo deseado usando el nombre del paquete.

# apt install linux-image-arch-etc

D.3.6. Configurar el gestor de arranque

To make your Debian GNU/Linux system bootable, set up your boot loader to load the installed kernel with your new root partition. Note that debootstrap does not install a boot loader, but you can use apt inside your Debian chroot to do so.

Estos ejemplos asumen que se ha creado el fichero de dispositivo /dev/sda. Existen métodos alternativos para instalar grub2, pero están fuera del alcance de este apéndice.

D.3.7. Remote access: Installing SSH and setting up access

In case you can login to the system via console, you can skip this section. If the system should be accessible via the network later on, you need to install SSH and set up access.

# apt install ssh

Root login with password is disabled by default, so setting up access can be done by setting a password and re-enable root login with password:

# passwd
# editor /etc/ssh/sshd_config

This is the option to be enabled:

PermitRootLogin yes

Access can also be set up by adding an ssh key to the root account:

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

Lastly, access can be set up by adding a non-root user and setting a password:

# adduser joe
# passwd joe

D.3.8. Toques finales

As mentioned earlier, the installed system will be very basic. If you would like to make the system a bit more mature, there is an easy method to install all packages with standard priority:

# tasksel install standard

Of course, you can also just use apt to install packages individually.

Después de la instalación habrá muchos paquetes descargados en /var/cache/apt/archives/. Puede liberar algo de espacio de disco ejecutando:

# apt clean



[22] Esto incluye las utilidades principales de GNU y órdenes como sed, grep, tar y gzip.