Arch Linux es una distribución GNU/Linux de propósito general, desarrollada independientemente para x86-64, que se esfuerza por proporcionar las últimas versiones estables de la mayoría del software, siguiendo un modelo de lanzamiento continuo (rolling-release). La instalación por defecto deja un sistema de base mínima, que el usuario configurará posteriormente agregando lo que necesite.
Los desarrolladores definen el proyecto bajo el acrónimo KISS (Keep It Simple, Stupid; en español Mantenlo simple, estúpido). Arch Linux se enfoca en 5 principios generales: simplicidad, modernidad, pragmatismo, centrado en el usuario y versatilidad; siendo el primero, su principal objetivo. Los desarrolladores de Arch son voluntarios no remunerados, a tiempo parcial, y no hay perspectivas de monetizar Arch Linux, por lo que seguirá siendo libre en todos los sentidos de la palabra.
La Unified Extensible Firmware Interface (UEFI o EFI para abreviar) es un modelo de interfaz para interactuar entre los sistemas operativos y el firmware. Proporciona un entorno estándar para iniciar un sistema operativo y ejecutar aplicaciones previas al inicio. Es un método distinto del comúnmente usado "código de arranque MBR" seguido por los sistemas BIOS estándar presentado en las computadoras personales IBM PC como IBM PC ROM BIOS.
A los efectos prácticos de esta guía se instalará la distribución de GNU/Linux Arch Linux en un ordenador que dispone del modelo de interfaz UEFI activo a nivel de BIOS, y con las siguientes características de hardware.
- CPU: Intel Core i5 3.20GHz
- RAM: 8 GiB
- SSD: 120 GiB
- HDD: 1 TiB
- Adaptador de red: Gigabyte Onboard Ethernet
Se dispone además de un direccionamiento IPv4 con acceso a Internet.
El sistema operativo instalado, será utilizado con el propósito de explotar un sistema de escritorio o estación de trabajo para usuarios finales.
Arch Linux se instala ejecutando el entorno live de la imagen ISO desde un dispositivo óptico, memoria USB o una red con PXE. La imagen ISO puede descargarse desde Arch Linux - Downloads.
-
Definir la distribución de teclado.
loadkeys us-acentos
NOTA: Por defecto, la distribución del teclado de la consola es la de EE.UU.; las distribuciones de teclado disponibles se pueden listar ejecutando
ls /usr/share/kbd/keymaps/**/*.map.gz. -
Verificar la modalidad de arranque.
Si el modo
UEFIestá activado, la imagenISOarrancará mediantesystemd-boot. Para comprobarlo, se debe listar el contenido del directorioefivars, ejecutandols /sys/firmware/efi/efivars. Si no existe el directorio, el sistema ha iniciado en modoBIOSoCSM(Compatibility Support Module). -
Configurar conexión de red para acceder a los repositorios de paquetes.
NOTA: La imagen
ISOactiva en el arranquedhcpcdpara todos los dispositivos de red conocidos, tanto cableados como WiFi.Si no se encuentra en una red donde exista un servidor
DHCP, se deben definir los parámetros de red de forma manual.a. Obtener nombre del dispositivo de red.
ifconfig -a enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 6c:b3:11:4d:05:96 txqueuelen 1000 (Ethernet)
b. Definir dirección
IPestática.ip addr add 200.55.143.194/29 dev enp3s0 ip link set enp3s0 upo
ifconfig enp3s0 up 200.55.143.194 netmask 255.255.255.248
c. Definir puerta de enlace (
gateway) por defecto.route add 0.0.0.0/0 via 200.55.143.193 dev enp3s0
d. Establecer servidores de nombres de dominio.
nano /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4
e. Verificar que la interfaz de red está activada.
ifconfig ip link show ip addr show ip route show
NOTA: Opcionalmente se puede utilizar el comando
pingpara verificar la conexión. -
Actualizar la hora del sistema.
Utilizar
timedatectl set-ntp true, para asegurar que el reloj del sistema esté en hora.NOTA: Para comprobar el estado del servicio, ejecutar
timedatectl status. -
Particionamiento de discos duros.
Cuando el sistema reconoce los discos existentes, estos son asignados a dispositivos de bloque como por ejemplo
/dev/sda. Para identificar los discos, se debe ejecutarlsblk -fofdisk -l.Se utilizará el disco
SSDde120 GiBnombrado/dev/sda, para que contenga la partición de arranqueEFIcon un tamaño de512MiBy el resto para la partición raíz/. Mientras que en el discoHDDde1 TiB, identificado como/dev/sdbse definirán las particiones/varde12 GiB,/tmpde5 GiB, espacio de intercambioSWAPde4 GiBy/home, esta última con el resto del espacio disponible. Al estarse utilizandoUEFIel esquema de tabla de particiones a utilizar seráGPT.a. Definir esquema de tabla de particiones en disco
/dev/sda.fdisk /dev/sda
Teclear la opción
gpara crear una nueva tabla de particiones de tipoGPT. Teclear la opciónnpara crear las nuevas particiones. La partición de arranque debe ser de tipoEFI Systemy la raíz,Linux filesystem. Al finalizar, teclear la opciónwpara escribir los cambios.b. Definir esquema de tabla de particiones en disco
/dev/sdb.fdisk /dev/sdb
Teclear la opción
gpara crear una nueva table de particiones de tipoGPT. Teclear la opciónnpara crear las nuevas particiones. Las particiones/var,/tmpy/homedeben ser de tipoLinux filesystem, y el área de intercambio,Linux swap. Al finalizar, teclear la opciónwpara escribir los cambios.NOTA: También se pueden usar las herramientas
gdisk,sfdiskypartedpara discos particionados conGPT.c. Formatear las particiones.
mkfs.fat -F32 -n UEFI /dev/sda1 mkfs.ext4 -L / /dev/sda2 mkfs.ext4 -L /var /dev/sdb1 mkfs.ext4 -L /tmp /dev/sdb2 mkswap -L SWAP /dev/sdb3 mkfs.ext4 -L /home /dev/sdb4
d. Montar las particiones en el sistema de archivos.
mount /dev/sda2 /mnt mkdir /mnt/{boot,var,tmp,home} mount /dev/sda1 /mnt/boot mount /dev/sdb1 /mnt/var mount /dev/sdb2 /mnt/tmp swapon /dev/sdb3 mount /dev/sdb4 /mnt/home
-
Definir repositorios de paquetes.
Se deben editar los ficheros
/etc/pacman.d/mirrorlisty/etc/pacman.conf, el primero; con el objetivo de seleccionar la direcciónURLde los servidores de réplicas enInternetmás cercano a su ubicación, donde se encuentren los repositorios de paquetes; y el segundo, para habilitar los depósitos o repositorios de paquetes (core,extras,communityymultilib). -
Instalar sistema base mínimo.
pacstrap -i /mnt base base-devel linux-firmware
El paquete
baseno incluye todas las herramientas presentes en el medio de instalaciónlive, por lo que puede ser necesario instalar otros paquetes para que un sistema base mínimo sea completamente funcional. Se recomienda instalar herramientas necesarias para la conexión a redes (net-tools,dnsutilseiputils), un editor de texto (nano,viovim) y paquetes para acceder a la documentación en las páginas de manual o información (man-db,man-pagesytexinfo).Para instalar otros paquetes o grupos de paquetes se debe añadir sus nombres al comando
pacstrapo utilizarpacman, durante el entorno de jaulachroot.NOTA: Se puede sustituir
linuxpor el paquete dekernelde su elección (linux-hardened,linux-ltsolinux-zen). Ver Kernel - ArchWiki para mayor información.
-
Generar el fichero
/etc/fstab.El archivo
/etc/fstabes usado para definir cómo las particiones, distintos dispositivos de bloques o sistemas de archivos remotos deben ser montados e integrados en el sistema.genfstab -U -p /mnt >> /mnt/etc/fstabNOTA: Se debe comprobar el archivo resultante en
/mnt/etc/fstab, y modificarlo añadiendo las opcionesnoatimeydiscarden el caso de la partición raíz y solamentenoatimepara la partición de arranqueEFI; estas características son necesarias para prolongar la vida últil del discoSSD. -
Activar entorno de jaula
chroot.Chrootes el proceso por el que se cambia el directoriorootdel disco de instalaciónlivea otro directorioroot. Al cambiar a otro directoriorootno se puede acceder a los archivos y comandos fuera de ese directorio. Este directorio se llama jaulachroot. El cambio derootse hace comúnmente para el mantenimiento del sistema, como puede ser volver a instalar el gestor de arranque o restablecer una contraseña olvidada.arch-chroot /mnt
-
Definir idioma del sistema.
a. Editar el fichero
/etc/locale.confdescomentando la definición de idioma que se requiera (por ejemplo, para Español México seríaes_MX.UTF-8 UTF-8); luego de modificado, se debe generar con el comandolocale-gen.nano /etc/locale.gen locale-gen
NOTA: Es recomendable también activar
en_US.UTF-8 UTF-8.b. Crear el archivo
/etc/locale.conf, y definir la variableLANGsegún lo establecido en el paso anterior, por ejemplo:echo "LANG=es_MX.UTF-8" > nano /etc/locale.conf export LANG=es_MX.UTF-8
c. Definir la distribución de teclado en consola para que permanezca en cada reinicio.
echo "KEYMAP=us-acentos" > nano /etc/vconsole.conf
-
Definir la zona horaria.
ln -sf /usr/share/zoneinfo/America/Havana /etc/localtime
-
Configurar la red.
a. Crear el archivo
/etc/hostname.echo "archlinux" > /etc/hostname
b. Editar fichero
/etc/hosts.nano /etc/hosts 127.0.0.1 localhost.localdomain localhost ::1 localhost.localdomain localhost 127.0.1.1 archlinux.localdomain archlinux
NOTA: Si el sistema tendrá una dirección
IPpermanente, se debe usar dicha dirección, en lugar de127.0.1.1. -
Generar la imagen
initramfs.mkinitcpio -P
NOTA: Normalmente no es necesario crear una imagen
initramfsnueva, dado quemkinitcpiose ejecuta durante la instalación del paquetekernelconpacstrap. -
Instalar y configurar el gestor de arranque.
a. Instalar paquetes necesarios.
pacman -S systemd-boot intel-ucode
NOTA: En sistemas con procesadores
AMD, se debe instalar el paqueteamd-ucodeen lugar deintel-ucode.b. Instalar gestor de arranque.
bootctl --path=/boot install
c. Configurar gestor de arranque.
nano /boot/loader/loader.conf default arch timeout 4 console-mode keep editor no
nano /boot/loader/entries/arch.conf title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options root=LABEL=/ rw
NOTA: En sistemas con procesadores
AMD, definirinitrd /amd-ucode.imgen lugar deinitrd /intel-ucode.img.a. Instalar paquetes necesarios.
pacman -S grub efibootmgr
b. Instalar gestor de arranque.
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
c. Configurar gestor de arranque.
grub-mkconfig -o /boot/grub/grub.cfg
-
Establecer contraseña del superusuario
root.passwd
-
Abandonar entorno
chroot, desmontar las particiones y reiniciar el sistema.exit umount -R /mnt rebootNOTA: Se debe retirar el medio de instalación e iniciar sesión en el sistema con la cuenta del superusuario
root.
-
Crear cuenta de usuario.
useradd -m -G users,wheel,sudo -s /bin/bash -c "Descripción de usuario" <nombre_usuario> passwd <nombre_usuario>