Install Arch Linux from existing Linux (Español)

From ArchWiki
Esta traducción de Install from existing Linux fue revisada el 2019-11-13. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Este documento describe el proceso de bootstrapping necesario para instalar Arch Linux desde un sistema anfitrión de Linux en ejecución. Después del bootstrapping, la instalación continúa como se describe en la guía de instalación.

La instalación de Arch Linux desde un sistema Linux en ejecución es útil para:

El objetivo del procedimiento de bootstrapping es configurar un entorno desde el que ejecutar los arch-install-scripts (tales como pacstrap y arch-root).

Si el sistema anfitrión ejecuta Arch Linux, esto se puede lograr simplemente instalando arch-install-scripts. Si el sistema anfitrión ejecuta otra distribución de Linux, primero deberá configurar un entorno chroot basado en Arch Linux.

Nota: esta guía requiere que el sistema anfitrión existente sea capaz de ejecutar los nuevos programas de Arch Linux para la arquitectura de destino. Esto significa que tiene que ser un sistema anfitrión x86_64.
Advertencia: Asegúrese de comprender cada paso antes de continuar. Es fácil destruir su sistema o perder datos críticos, y su proveedor de servicios, probablemente, le cobrará mucho para ayudarle a recuperarlo.

Realizar copia de seguridad y preparación

Haga una copia de seguridad de todos sus datos, incluidos correos electrónicos, servidores web, etc. Tenga toda la información a su alcance. Preserve todas las configuraciones de su servidor, nombres de equipos, etc.

Aquí hay una lista de datos que probablemente necesitará:

  • Direcciones IP.
  • Nombre(s) de equipo, (nota: los servidores raíces también son en su mayoría parte del dominio de proveedores, verifique o guarde su /etc/hosts antes de eliminar).
  • Servidores DNS (compruebe /etc/resolv.conf).
  • Claves SSH (si otras personas trabajan en su servidor, de lo contrario tendrán que aceptar nuevas claves. Esto incluye claves de su Apache, sus servidores de correo, su servidor SSH y otros).
  • Información de hardware (tarjeta de red, etc. Consulte su preinstalado /etc/modules.conf).
  • Archivos de configuración de Grub.

En general, es una buena idea tener una copia local de su directorio original /etc en su disco duro local.

Desde un sistema anfitrión que ejecuta Arch Linux

Instale el paquete arch-install-scripts.

Siga Installation guide (Español)#Montar los sistemas de archivos para montar el sistema de archivos y todos los puntos de montaje necesarios. Si ya utiliza el directorio /mnt para otra cosa, simplemente cree otro directorio como /mnt/install, y úselo en su lugar como la base del punto de montaje.

Crear una nueva instalación de Arch

Siga la Installation guide (Español)#Instalación.

Respecto a la Installation guide (Español)#Seleccionar los servidores de réplica se puede omitir ya que el equipo debería tener una lista de servidores de réplica correcta.

Sugerencia: Para evitar volver a descargar todos los paquetes, considere seguir Pacman (Español)/Tips and tricks (Español)#Caché de pacman compartida en red o utilizar la opción -c de pacstrap'.
Sugerencia: Cuando se utiliza el cargador de arranque grub, el script grub-mkconfig puede detectar dispositivos incorrectamente. Esto resultará en Error:no such device al intentar arrancar desde el dispositivo. Para resolver este problema, desde el sistema anfitrión que ejecuta Arch Linux, monte las particiones recién instaladas, ejecute arch-chroot en la nueva partición, luego instale y configure grub. El último paso puede requerir desactivar lvmetad en /etc/lvm/lvm.conf configurando use_lvmetad=0.

Crear una copia de una instalación de Arch existente

Es posible replicar una instalación existente de Arch Linux copiando el sistema de archivos del sistema anfitrión a la nueva partición y hacer algunos ajustes para que sea arrancable y única.

El primer paso es copiar los archivos del anfitrión en la nueva partición montada, para esto, considere usar el enfoque presentado en rsync#Full system backup.

Luego, siga el procedimiento descrito en Installation guide (Español)#Configuración del sistema con algunas salvedades y pasos adicionales:

Si la instalación replicada de Arch se quiere usar dentro de una configuración diferente o con otro hardware, considere las siguientes operaciones adicionales:

Desde un sistema anfitrión que ejecuta otra distribución de Linux

Existen múltiples herramientas que automatizan una gran parte de los pasos descritos en las siguientes subsecciones. Consulte sus respectivas páginas de inicio para obtener instrucciones detalladas.

En las siguientes subsecciones se presenta la forma de hacerlo manualmente. La idea es hacer que pacman trabaje directamente en el sistema anfitrión, o ejecutar un sistema Arch dentro del sistema anfitrión, con la instalación real ejecutada desde el sistema Arch. El sistema anidado estará contenido dentro de un entorno chroot.

Utilizar pacman desde el sistema anfitrión

Pacman puede compilarse en la mayoría de las distribuciones de Linux y usarse directamente en el sistema anfitrión para arrancar Arch Linux. El script arch-install-scripts debería ejecutarse sin problemas directamente de las fuentes descargadas en cualquier distribución reciente.

Algunas distribuciones proporcionan un paquete para pacman y/o arch-install-scripts en sus repositorios oficiales que pueden usarse para este propósito. Desde febrero de 2019, se sabe que «Gentoo» proporciona el paquete pacman, y «Alpine Linux» y «Fedora» se sabe que proporcionan tanto pacman como arch-install-scripts.

Crear un entorno chroot

A continuación se presentan dos métodos para configurar e ingresar en chroot, desde el más fácil hasta el más complicado. Seleccione solo uno de los dos métodos. Luego, continúe en #Utilizar un entorno chroot.

Método A: utilizar una imagen de bootstrap (recomendado)

Descargue la imagen de bootstrap desde un servidor de réplica en /tmp.

También puede descargar la firma (misma URL con .sig añadido) y verifíquela con GnuPG.

Extraiga el tarball:

# tar xzf <path-to-bootstrap-image>/archlinux-bootstrap-*-x86_64.tar.gz

Seleccione un servidor de repositorio editando /tmp/root.x86_64/etc/pacman.d/mirrorlist.

Entre en entorno chroot:

  • Si tiene instalado bash 4 o posterior, y la orden unshare admite las opciones --fork y--pid, ejecute:
# /tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/
  • De lo contrario, ejecute las siguientes órdenes:
# mount --bind /tmp/root.x86_64 /tmp/root.x86_64
# cd /tmp/root.x86_64
# cp /etc/resolv.conf etc
# mount -t proc /proc proc
# mount --make-rslave --rbind /sys sys
# mount --make-rslave --rbind /dev dev
# mount --make-rslave --rbind /run run    ## (suponiendo que /run existe en el sistema)
# chroot /tmp/root.x86_64 /bin/bash

Método B: utilizar una imagen LiveCD

Es posible montar la imagen raíz desde el soporte de instalación de Arch Linux más reciente y luego hacer un chroot en ella. Este método tiene la ventaja de proporcionar una instalación de Arch Linux en funcionamiento dentro del sistema anfitrión sin la necesidad de prepararlo instalando paquetes específicos.

Nota: antes de continuar, asegúrese de que la última versión de squashfs esté instalada en el sistema anfitrión. De lo contrario, obtendrá errores como los siguientes: FATAL ERROR aborting: uncompress_inode_table: failed to read block.
  • La imagen raíz se puede encontrar en uno de los servidores de réplicas en arch/x86_64/. El formato squashfs no es editable, por lo que realizamos la descompresión de la imagen raíz con unsquash y la montamos.
  • Para realizar unsquash de la imagen raíz, ejecute:
# unsquashfs airootfs.sfs
  • Antes de efectuar chroot, necesitamos configurar algunos puntos de montaje y copiar el archivo resolv.conf a fin tener conexión de red:
# mount --bind squashfs-root squashfs-root
# mount -t proc none squashfs-root/proc
# mount -t sysfs none squashfs-root/sys
# mount -o bind /dev squashfs-root/dev
# mount -o bind /dev/pts squashfs-root/dev/pts   ## importante para pacman (para comprobar la firma)
# cp -L /etc/resolv.conf squashfs-root/etc   ## esto es necesario para usar la red dentro del chroot
  • Ahora, todo está preparado para pasar al entorno chroot en el recién instalado entorno de Arch:
# chroot squashfs-root bash

Utilizar un entorno chroot

El entorno de arranque es realmente básico (sin nano o lvm2). Por lo tanto, necesitamos configurar pacman para descargar otros paquetes necesarios.

Inicializar el depósito de claves de pacman

Las claves de pacman deben configurarse antes de comenzar la instalación. Antes de ejecutar las siguientes dos órdenes, lea pacman-key (Español)#Inicializar el depósito de claves para comprender los requisitos de la entropía:

# pacman-key --init
# pacman-key --populate archlinux
Sugerencia: La instalación y ejecución de haveged debe realizarse en el sistema anfitrión, ya que no es posible instalar paquetes antes de inicializar pacman keyring y porque systemd detectará que se está ejecutando en un entorno chroot e ignorará la solicitud de activación. Si continúa haciendo ls -Ra / en otra consola (TTY, terminal, SSH session...), no tenga miedo de ejecutarlo en un bucle varias veces: cinco o seis veces de repetición desde el sistema anfitrión será suficiente para generar suficiente entropía en un servidor remoto sin encabezado.

Seleccionar un servidor de réplica y descargar herramientas básicas

Después de seleccionar un servidor de réplica, actualice la lista de paquetes e instale lo que necesite: base-devel, parted, etc.

Nota:
  • Como todavía no hay ningún editor de texto, debe salir de arch-chroot y editar la lista de servidores de réplicas utilizando el editor de texto del anfitrión.
  • Puede que cuando intente instalar paquetes con pacman, obtenga error: could not determine cachedir mount point /var/cache/pacman/pkg. Para solucionarlo, puede ejecutar:
    mount --bind directory-to-livecd-or-bootstrap directory-to-livecd-or-bootstrap
    antes de realizar chroot. Vea FS#46169.

Sugerencias de instalación

Ahora puede continuar con Installation guide (Español)#Particionar el disco y seguir el resto de la Installation guide (Español).

Algunos sistemas anfitriones o configuraciones pueden requerir ciertos pasos adicionales. Consulte las secciones siguientes para obtener consejos.

Anfitrión basado en Debian

/dev/shm

En algunos sistemas anfitriones basados en Debian, pacstrap puede producir el siguiente error:

# pacstrap /mnt base
==> Creating install root at /mnt
mount: mount point /mnt/dev/shm is a symbolic link to nowhere
==> ERROR: failed to setup API filesystems in new root

Esto se debe a que en algunas versiones de Debian, /dev/shm apunta a /run/shm, mientras que en el entorno chroot basado en Arch, /run/shm no existe y el enlace está roto. Para corregir este error, cree un directorio /run/shm:

# mkdir /run/shm
/dev/pts

Al instalar archlinux-2015.07.01-x86_64 desde un sistema anfitrión Debian 7, el siguiente error impidió que tanto pacstrap(8) como arch-chroot funcionasen:

# pacstrap -i /mnt
mount: mount point /mnt/dev/pts does not exist
==> ERROR: failed to setup chroot /mnt

Aparentemente, esto se debe a que estos dos scripts usan una característica común. chroot_setup()[1] se basa en las nuevas características de util-linux, que son incompatibles con Debian 7 (vea FS#45737).

La solución para pacstrap consiste en ejecutar manualmente sus diversas tareas, pero utilizando el procedimiento normal para montar los sistemas de archivos del kernel en el directorio de destino ("$newroot"):

# newroot=/mnt
# mkdir -m 0755 -p "$newroot"/var/{cache/pacman/pkg,lib/pacman,log} "$newroot"/{dev,run,etc}
# mkdir -m 1777 -p "$newroot"/tmp
# mkdir -m 0555 -p "$newroot"/{sys,proc}
# mount --bind "$newroot" "$newroot"
# mount -t proc /proc "$newroot/proc"
# mount --rbind /sys "$newroot/sys"
# mount --rbind /run "$newroot/run"
# mount --rbind /dev "$newroot/dev"
# pacman -r "$newroot" --cachedir="$newroot/var/cache/pacman/pkg" -Sy base base-devel ... ## add the packages you want
# cp -a /etc/pacman.d/gnupg "$newroot/etc/pacman.d/"       ## copy keyring
# cp -a /etc/pacman.d/mirrorlist "$newroot/etc/pacman.d/"  ## copy mirrorlist

En lugar de usar arch-chroot para realizar chroot, simplemente utilice:

# chroot "$newroot"
lvmetad

Intentar crear volúmenes lógicos desde un entorno archlinux-bootstrap-2015.07.01-x86_64 en un sistema anfitrión Debian 7 dará como resultado el siguiente error:

# lvcreate -L 20G lvm -n root
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /dev/lvm/root: not found: device not cleared
  Aborting. Failed to wipe start of new LV.

(El volumen físico y la creación del grupo de volúmenes funcionaron a pesar del fallo /run/lvm/lvmetad.socket: connect failed: No such file or directory mostrado.)

Esto podría solucionarse fácilmente creando los volúmenes lógicos fuera de chroot (desde el anfitrión Debian). Luego estarán disponibles una vez que se vuelva a entrar en chroot.

Además, si el sistema que está utilizando tiene lvm, es posible que obtenga la siguiente salida:

# grub-install --target=i386-pc --recheck /dev/main/archroot
Installing for i386-pc platform.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

Esto se debe a que debian no usa lvmetad por defecto. Debe editar /etc/lvm/lvm.conf y establecer use_lvmetad en 0:

use_lvmetad = 0

Esto dará más tarde un error en el arranque en la etapa initrd. Por lo tanto, debe volver a cambiarlo después de la generación de grub. En un RAID por software + LVM, los pasos serían los siguientes:

  • Después de instalar el sistema, verifique mkinitcpio y la configuración de su gestor de arranque. Consulte Arch boot process (Español)#Gestor de arranque para obtener una lista de cargadores de arranque.
  • Es posible que deba cambiar /etc/mdadm.conf para que refleje su configuración RAID (si corresponde).
  • Es posible que deba cambiar sus HOOKS y MODULES de acuerdo con sus requisitos LVM y RAID: MODULES="dm_mod" HOOKS="base udev mdadm_udev ... block lvm2 filesystems ..."
  • Lo más probable es que necesite generar nuevas imágenes initrd con mkinitcpio. Vea Mkinitcpio#Image creation and activation.
  • Establezca use_lvmetad = 0 en /etc/lvm/lvm.conf.
  • Actualice la configuración de tu gestor de arranque. Consulte la página wiki de su gestor de arranque para más detalles.
  • Establezca use_lvmetad = 1 en /etc/lvm/lvm.conf.

Anfitrión basado en Fedora

En sistemas anfitriones basados en Fedora y USB live, puede encontrar problemas al usar genfstab para generar su fstab. Elimine las entradas duplicadas y la opción «seclabel» donde aparezca, ya que esto es específico de Fedora y evitará que su sistema arranque normalmente.

Cosas que verificar antes de reiniciar

Antes de reiniciar, vuelva a verificar algunos detalles en su instalación para lograr una instalación exitosa. Para hacerlo, primero entre en chroot en el sistema recién instalado y luego:

  • Cree un usuario con contraseña, para que pueda iniciar sesión a través de sh. Esto es crítico ya que el inicio de sesión raíz está desactivado por defecto desde OpenSSH-7.1p2.
  • Establezca una contraseña de root para que pueda cambiar a root a través de su más tarde.
  • Instale una solución ssh y active su instancia de servidor para iniciarse automáticamente en el arranque.
  • Configure su conexión de red para que la conexión se inicie automáticamente en el arranque.
  • Configure un gesgtor de arranque y configúrelo para usar la partición de intercambio que se apropió anteriormente como la partición raíz. Es posible que desee configurar su gestor de arranque para poder arrancar en su sistema anterior; es útil reutilizar la partición /boot existente del servidor en el nuevo sistema para este propósito.

Reemplazar el sistema existente sin un LiveCD

Encuentre ~700 MB de espacio libre en algún lugar del disco, por ejemplo, formateando una partición de intercambio. Puede desactivar la partición de intercambio y configurar su sistema allí.

Establecer la antigua partición de intercambio como nueva partición raíz

Compruebe cfdisk, /proc/swaps o /etc/fstab para encontrar su partición de intercambio. Suponiendo que su disco duro esté ubicado en sdaX (X será un número).

Haga lo siguiente:

Desactive el espacio de intercambio:

# swapoff /dev/sdaX

Crea un sistema de archivos en él:

# fdisk /dev/sda
(establezca el campo de identificación de /dev/sdaX para "Linux" - Hex 83)
# mke2fs -j /dev/sdaX

Crea un directorio para montarlo:La instalación de Arch Linux

# mkdir /mnt/newsys

Finalmente, monte el nuevo directorio para instalar el sistema:

# mount -t ext4 /dev/sdaX /mnt/newsys

Instalación

Instale los paquetes esenciales y cualquier otro paquete requerido para obtener un sistema con conexión a Internet en funcionamiento en la partición temporal, teniendo cuidado con el límite de los ~700 MB de espacio. Cuando especifique paquetes para instalar con pacstrap, considere agregar el indicador -c para evitar llenar un espacio valioso descargando paquetes al sistema anfitrión.

Una vez que el nuevo sistema Arch Linux esté instalado, arregle la configuración del cargador de arranque, luego reinicie en el sistema recién creado y realice rsync de todo el sistema en la partición primaria.