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
UEFI
está activado, la imagenISO
arrancará 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 modoBIOS
oCSM
(Compatibility Support Module
). -
Configurar conexión de red para acceder a los repositorios de paquetes.
NOTA: La imagen
ISO
activa en el arranquedhcpcd
para 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
IP
estática.ip addr add 200.55.143.194/29 dev enp3s0 ip link set enp3s0 up
o
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
ping
para 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 -f
ofdisk -l
.Se utilizará el disco
SSD
de120 GiB
nombrado/dev/sda
, para que contenga la partición de arranqueEFI
con un tamaño de512MiB
y el resto para la partición raíz/
. Mientras que en el discoHDD
de1 TiB
, identificado como/dev/sdb
se definirán las particiones/var
de12 GiB
,/tmp
de5 GiB
, espacio de intercambioSWAP
de4 GiB
y/home
, esta última con el resto del espacio disponible. Al estarse utilizandoUEFI
el 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
g
para crear una nueva tabla de particiones de tipoGPT
. Teclear la opciónn
para crear las nuevas particiones. La partición de arranque debe ser de tipoEFI System
y la raíz,Linux filesystem
. Al finalizar, teclear la opciónw
para escribir los cambios.b. Definir esquema de tabla de particiones en disco
/dev/sdb
.fdisk /dev/sdb
Teclear la opción
g
para crear una nueva table de particiones de tipoGPT
. Teclear la opciónn
para crear las nuevas particiones. Las particiones/var
,/tmp
y/home
deben ser de tipoLinux filesystem
, y el área de intercambio,Linux swap
. Al finalizar, teclear la opciónw
para escribir los cambios.NOTA: También se pueden usar las herramientas
gdisk
,sfdisk
yparted
para 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/mirrorlist
y/etc/pacman.conf
, el primero; con el objetivo de seleccionar la direcciónURL
de los servidores de réplicas enInternet
má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
,community
ymultilib
). -
Instalar sistema base mínimo.
pacstrap -i /mnt base base-devel linux-firmware
El paquete
base
no 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
,dnsutils
eiputils
), un editor de texto (nano
,vi
ovim
) y paquetes para acceder a la documentación en las páginas de manual o información (man-db
,man-pages
ytexinfo
).Para instalar otros paquetes o grupos de paquetes se debe añadir sus nombres al comando
pacstrap
o utilizarpacman
, durante el entorno de jaulachroot
.NOTA: Se puede sustituir
linux
por el paquete dekernel
de su elección (linux-hardened
,linux-lts
olinux-zen
). Ver Kernel - ArchWiki para mayor información.
-
Generar el fichero
/etc/fstab
.El archivo
/etc/fstab
es 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/fstab
NOTA: Se debe comprobar el archivo resultante en
/mnt/etc/fstab
, y modificarlo añadiendo las opcionesnoatime
ydiscard
en el caso de la partición raíz y solamentenoatime
para la partición de arranqueEFI
; estas características son necesarias para prolongar la vida últil del discoSSD
. -
Activar entorno de jaula
chroot
.Chroot
es el proceso por el que se cambia el directorioroot
del disco de instalaciónlive
a otro directorioroot
. Al cambiar a otro directorioroot
no se puede acceder a los archivos y comandos fuera de ese directorio. Este directorio se llama jaulachroot
. El cambio deroot
se 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.conf
descomentando 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 variableLANG
segú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
IP
permanente, 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
initramfs
nueva, dado quemkinitcpio
se ejecuta durante la instalación del paquetekernel
conpacstrap
. -
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-ucode
en 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.img
en 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 reboot
NOTA: 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>