Install Arch Linux from existing Linux (Español)

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
.
Artículos relacionados
Instalar desde SSH
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:
instalar remotamente Arch Linux, por ejemplo, un servidor root (virtual);
sustituir un Linux existente sin un LiveCD (véase
#Reemplazar el sistema existente sin un LiveCD
);
crear un distribución Linux nueva o LiveCD basada en Arch Linux;
crear un entorno chroot de Arch Linux, por ejemplo para un contenedor de base Docker;
rootfs-sobre-NFS para máquinas sin disco
.
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:
Installation guide (Español)#Zona horaria
,
Installation guide (Español)#Idioma del sistema
y
Installation guide (Español)#Contraseña de root
se pueden omitir.
Installation guide (Español)#Initramfs
puede ser necesario en particular si se cambia el sistema de archivos, por ejemplo de
Ext4
a
Btrfs
.
Con respecto a
Installation guide (Español)#Instalar gestor de arranque
, es necesario reinstalar el cargador de arranque.
Elimine
/etc/machine-id
para que se genere un id nuevo y único en el próximo arranque.
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:
Utilice
microcode
para la actualización  de la CPU adaptada al sistema de destino durante el paso
Installation guide (Español)#Instalar gestor de arranque
.
Si alguna
Xorg#Configuration
específica estuvo presente en el anfitrión y puede ser incompatible con el sistema de destino, siga
Moving an existing install into (or out of) a virtual machine#Disable any Xorg-related files
.
Realice cualquier otro ajuste apropiado para el sistema de destino, como reconfigurar la red o el audio.
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.
arch-bootstrap
(Bash)
digitalocean-debian-to-arch
(disco de reparticionado, específico de DigitalOCean)
image-bootstrap
(Python)
vps2arch
(Bash)
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
sda
X
(
X
será un número).
Haga lo siguiente:
Desactive el espacio de intercambio:
# swapoff /dev/sda
X
Crea un sistema de archivos en él:
# fdisk /dev/sda
(establezca el campo de identificación de /dev/sda
X
para "Linux" - Hex 83)
# mke2fs -j /dev/sda
X
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/sda
X
/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.