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

Con tus herramientas actuales de particionado de *nix, reparticiona el disco duro como necesites, creando al menos un sistema de archivos más un swap. Necesitas alrededor de 1012MB de espacio disponible para una instalación sólo de consola, o alrededor de 2539MB si planeas instalar X (más si pretendes instalar entornos de escritorio como GNOME o 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

Si deseas tener partes de tu sistema de archivos (por ejemplo, /usr) montados en particiones separadas, deberás generar y montar estos directorios manualmente antes de proceder con la siguiente fase.

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[20]. Si aún no lo ha hecho, instale wget y ar en su sistema actual, y luego descargue e instale debootstrap.

O, puedes usar el siguiente procedimiento para instalarlo manualmente. Crea un directorio de trabajo para extraer el fichero «.deb» en:

# mkdir work
# cd work

El binario de debootstrap se encuentra en el archivo de Debian (asegúrate de elegir el fichero adecuado para tu arquitectura). Descarga .deb de debootstrap desde pool, copia el paquete al directorio de trabajo, y extrae los ficheros de éste. Necesitarás 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.

Si tienes una imagen de instalación bookworm Debian GNU/Linux montada en /cdrom, podrías sustituir una URL de archivo en lugar de la URL http: file:/cdrom/debian/

Sustituye uno de los siguientes elementos por ARCH en el comando debootstrapcommand: amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x.

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

Si la arquitectura de destino es diferente a la del host, debes añadir la opción --foreign.

D.3.4. Configurar el sistema base

Ahora tienes un verdadero sistema Debian, aunque bastante magro, en el disco. chroot en él:

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

Si la arquitectura de destino es diferente a la del host, tendrás que copiar primero qemu-user-static al nuevo host:

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

Después de hacer chroot puede ser necesario establecer la definición de terminal para que sea compatible con el sistema base Debian, por ejemplo:

# export TERM=xterm-color

Dependiendo del valor de TERM, puede que tengas que instalar el paquete ncurses-term para obtener soporte.

Si la arquitectura de destino es diferente a la del host, necesitas terminar el proceso de arraque multietapas:

/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

  • bind mount /dev desde tu sistema anfitrión sobre /dev en el sistema destino; ten en cuenta que los scripts postinst de algunos paquetes pueden intentar crear archivos de dispositivo, por lo que esta opción sólo debe utilizarse con cuidado

D.3.4.2. Montar particiones

Necesitas crear /etc/fstab.

# editor /etc/fstab

Aquí tienes un ejemplo que puedes modificar a tu gusto:

# /etc/fstab: información estática del sistema de archivos.
#
# 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

Usa mount -a para montar todos los sistemas de archivos que haya especificado en tu /etc/fstab, o, para montar sistemas de archivos individualmente, utiliza:

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

Los sistemas actuales Debian tienen puntos de montaje para los medios extraíbles en /media, pero mantienen los enlaces simbólicos de compatibilidad en /. Crea estos como necesites, por ejemplo::

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

Puedes montar el sistema de archivos proc varias veces y en ubicaciones arbitrarias, aunque /proc es lo habitual. Si no has usado mount -a, asegúrate de montar proc antes de continuar:

# mount -t proc proc /proc

La orden ls /proc debería mostrar un directorio no vacío. Si esto falla, puedes 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

Para configurar la red, edita /etc/network/interfaces, /etc/resolv.conf, /etc/hostname y /etc/hosts.

# editor /etc/network/interfaces

He aquí algunos sencillos ejemplos que podrás encontrar en /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- fichero de configuración para ifup(8), ifdown(8)
# Ver la página de manual de interfaces(5) para información sobre las
# opciones disponibles.
######################################################################
# Ya no es necesaria realmente la interfaz de loopback, pero puede utilizarse
# si fuera necesario.
#
# auto lo
# iface lo inet loopback

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

# Un ejemplo de configuración de IP estática: (la red, el broadcast y la pasarela son opcionales)
#
# 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

Introduce tu servidor de nombres y las directivas de búsqueda en /etc/resolv.conf:

# editor /etc/resolv.conf

Un sencillo ejemplo /etc/resolv.conf:

search example.com
nameserver 10.1.1.36
nameserver 192.168.9.100

Escribe el nombre de host de tu sistema (de 2 a 63 caracteres):

# echo DebianHostName > /etc/hostname

Y una /etc/hosts básico que permita IPv6 sería:

127.0.0.1 localhost
127.0.1.1 DebianHostName

# Las siguientes líneas son recomendables en equipos que pueden utilizar 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

Si tienes múltiples tarjetas de red, debes añadir los nombres de los módulos de controlador en el fichero /etc/modules en el orden que desees. Luego durante el arranque, se asociará cada tarjeta con el nombre de la interfaz (eth0, eth1, etc.) que hayas indicado.

D.3.4.5. Configurar Apt

Debootstrap habrá creado una /etc/apt/sources.list muy básica que permite instalar paquetes adicionales. Seguramente querrás, sin embargo, tener algunas fuentes adicionales para poder acceder a paquetes fuente y a actualizaciones de seguridad:

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

Asegúrate de ejecutar apt update después de hacer cambios a la lista de fuentes.

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

Para configurar la configuración regional para utilizar un idioma distinto del inglés, instala el paquete de soporte locales y configúrelo. Actualmente se recomienda utilizar locales codificados en UTF-8.

# apt install locales
# dpkg-reconfigure locales

Para configurar tu teclado (si lo necesitas):

# 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

Para poder arrancar tu sistema Debian GNU/Linux deberás configurar tu gestor de arranque para cargar el núcleo instalado en tu nueva partición raíz. Ten en cuenta que debootstrap no instala un gestor de arranque, pero puedes usar apt en tú Debian chroot para hacer esto.

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. Acceso remoto: instalación de SSH y configurar el acceso

Si puedes acceder al sistema a través de la consola, puedes saltarte esta sección. Si, más adelante, el sistema debe ser accesible a través de la red, es necesario instalar SSH y configurar el acceso..

# apt install ssh

El inicio de sesión de root con contraseña está deshabilitado por defecto, por lo que se puede configurar el acceso estableciendo una contraseña y volver a habilitar el inicio de sesión de root con contraseña:

# passwd
# editor /etc/ssh/sshd_config

Esta es la opción que hay que activar:

PermitRootLogin yes

El acceso también puede configurarse añadiendo una clave ssh a la cuenta root:

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

Por último, se puede configurar el acceso añadiendo un usuario no root y estableciendo una contraseña:

# adduser joe
# passwd joe

D.3.8. Toques finales

El sistema instalado, como se ha mencionado previamente, será muy básico. Si quieres que tu sistema sea un poco más maduro, pueded hacerlo fácilmente instalando todos los paquetes de prioridad standard:

# tasksel install standard

Por supuesto, también puede utilizar aptitude para instalar individualmente todos los paquetes.

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



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