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 | |
---|---|
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. |
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 | |
---|---|
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. |
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.
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
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 trixie 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
,
riscv64
,
s390x
.
# /usr/sbin/debootstrap --arch ARCH trixie \ /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
.
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
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
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
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
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.
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 trixie main deb http://security.debian.org/ trixie-security main deb-src http://security.debian.org/ trixie-security main
Asegúrate de ejecutar apt update
después de hacer cambios a la lista de fuentes.
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.
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
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.
Consulta info grub
para tener instrucciones sobre la configuración del cargador de arranque. Si mantienes el sistema que utilizastes para instalar Debian, sólo tienes que añadir una entrada para la instalación de Debian a tu grub2 existente grub.cfg
.
La instalación y configuración de grub2
es tan sencilla como hacer:
# apt install grub-pc
# grub-install /dev/sda
# update-grub
La segunda orden instalará grub2 (en este caso en el sector de arranque de sda
). La última orden creará un /boot/grub/grub.cfg
funcional.
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.
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
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