La mayor parte del dolor al instalar Arch no es “Linux es difícil”. Es muerte por mil pequeñas suposiciones: el disco equivocado, el reloj equivocado, el nombre del dispositivo Wi‑Fi equivocado, el objetivo del gestor de arranque equivocado, la idea equivocada de lo que “UEFI” significa en este portátil.
Si tratas la instalación como tratarías un cambio en producción—identifica el sistema, registra el estado, haz un cambio a la vez, verifica y luego continúa—Arch se vuelve aburrido. Aburrido es bueno. Lo aburrido arranca.
La mentalidad de producción: cómo no dejar inservible tu propio portátil
La instalación de Arch no es un rito de iniciación. Es una solicitud de cambio. Tu objetivo es un sistema que arranque con red, un escritorio y una vía de recuperación. Eso es todo. Lo elegante es opcional.
Reglas que previenen los desastres clásicos
- Identifica el disco objetivo de tres maneras diferentes antes de escribir una tabla de particiones. Los humanos son malos distinguiendo “/dev/nvme0n1 vs /dev/nvme1n1” a la 1 a.m.
- Convierte el estado UEFI en un hecho, no en una vibra. Si
/sys/firmware/efino está presente, no estás en modo UEFI, sin importar lo que diga la pantalla de configuración del firmware. - Red primero, instalación después. Un sistema medio instalado sin red es un error evitable.
- Mantenlo reversible. Usa un esquema de particiones simple, conserva la ESP intacta y no hagas trucos de arranque el primer día.
- Prefiere valores por defecto que otros puedan depurar. systemd-boot + NetworkManager + un escritorio mainstream es aburrido. Por eso es bueno.
Una cita que debería estar en todo runbook de on-call, atribuida a una voz notable de SRE y parafraseando una idea de Ben Treynor Sloss (Google SRE): idea parafraseada: la fiabilidad es una característica, y la diseñas intencionalmente—no rezando para que tus cambios se comporten.
Broma #1: La forma más rápida de encontrar el disco equivocado es particionar el disco equivocado. La segunda más rápida es ejecutar lsblk primero.
Hechos interesantes y breve historia (porque el contexto evita errores)
- UEFI reemplazó al viejo mundo BIOS no solo por discos más grandes, sino por un gestor de arranque estandarizado y un entorno prearranque. Esa “estandarización” aún varía mucho según el proveedor.
- GPT no es solo “la nueva tabla de particiones”. Almacena cabeceras redundantes y CRC, por eso a veces se puede recuperar de una corrupción parcial.
- La partición del sistema EFI (ESP) es un sistema FAT por especificación. No está ahí solo para Windows; está ahí para el firmware. Trátala como infraestructura compartida.
- systemd-boot antes se llamaba gummiboot. El cambio de nombre no fue cosmético—señaló que forma parte del ecosistema systemd y permanece intencionalmente minimalista.
- wpa_supplicant ha sido el pilar del Wi‑Fi durante años, pero muchos usuarios interactúan con él indirectamente vía iwd o NetworkManager. Depurar con frecuencia implica saber qué capa estás usando realmente.
- pacman de Arch y las rolling releases te empujan hacia kernels y controladores actuales, lo cual es genial para portátiles nuevos y un poco picante para equipos de “no tocar mi estación de trabajo”.
- Los subvolúmenes Btrfs se hicieron populares en Linux de escritorio en parte porque las instantáneas son una palanca operativa real cuando las actualizaciones salen mal.
- Las actualizaciones de microcódigo (Intel/AMD) no son “ajustes opcionales de rendimiento”. Traen correcciones de fallos de CPU que pueden importar para estabilidad y seguridad.
Verificaciones previas desde el ISO en vivo (UEFI, discos, Wi‑Fi)
Arranca el ISO de Arch. Si es posible, usa la imagen mensual más reciente para que tu kernel y firmware de Wi‑Fi no sean del Paleozoico. Vas a validar tres cosas antes de tocar el almacenamiento: modo UEFI, hora y detección de dispositivos de red.
Tarea 1: Confirma que estás en modo UEFI
cr0x@server:~$ ls /sys/firmware/efi
config_table efivars fw_platform_size runtime runtime-map systab
Qué significa: Si ese directorio existe y tiene entradas, el ISO arrancó en modo UEFI.
Decisión: Si falta, reinicia y elige la opción de arranque UEFI en el firmware (a menudo hay dos entradas para la misma memoria USB). No procedas con un plan UEFI en modo legacy.
Tarea 2: Encuentra tus discos y entiende la nomenclatura
cr0x@server:~$ lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE,MOUNTPOINTS
NAME MODEL SIZE TYPE FSTYPE MOUNTPOINTS
nvme0n1 Samsung SSD 980 PRO 931.5G disk
nvme0n1p1 512M part vfat
nvme0n1p2 100G part
nvme0n1p3 831.0G part
sda USB SanDisk 3.2 28.7G disk iso9660
Qué significa: Puedes ver el NVMe interno (probablemente tu objetivo) y el dispositivo USB del ISO (no tu objetivo). Los modelos importan; los nombres engañan.
Decisión: Anota el disco objetivo (p. ej., /dev/nvme0n1). Si existen múltiples discos internos, decide ahora dónde instalarás y cuál dejarás intacto.
Tarea 3: Revisa el reloj (porque TLS odia los viajes en el tiempo)
cr0x@server:~$ timedatectl
Local time: Sat 2026-02-05 12:41:02 UTC
Universal time: Sat 2026-02-05 12:41:02 UTC
RTC time: Sat 2026-02-05 12:41:01
Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
Qué significa: Aún no estás sincronizado. Si el reloj está mal, las descargas de paquetes y las comprobaciones TLS de mirrors pueden fallar de formas que aparentan problemas de red.
Decisión: Si Wi‑Fi está activo, sincroniza la hora. Si no, activa primero el Wi‑Fi y vuelve después.
cr0x@server:~$ timedatectl set-ntp true
Wi‑Fi en el ISO de Arch: haz que funcione y que siga funcionando
En los ISOs modernos de Arch, el mejor camino suele ser iwd + iwctl (a menudo ya presente) o NetworkManager (instalar más tarde en el sistema objetivo). El trabajo del entorno en vivo es simple: conectar de forma fiable el tiempo suficiente para instalar.
Tarea 4: Identifica el dispositivo Wi‑Fi y el controlador
cr0x@server:~$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
2: wlp0s20f3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DORMANT group default qlen 1000
Qué significa: La interfaz Wi‑Fi existe (wlp0s20f3). Si no ves una interfaz inalámbrica, estás en territorio de controladores/firmware.
Decisión: Si no aparece ninguna interfaz inalámbrica, revisa dmesg por errores de firmware y confirma tu hardware.
cr0x@server:~$ dmesg -T | grep -iE 'firmware|iwlwifi|ath|brcm|rtw'
[Sat Feb 5 12:44:11 2026] iwlwifi 0000:00:14.3: loaded firmware version 78.8f3d2a8a.0
Qué significa: Firmware cargado. Eso es un semáforo en verde.
Decisión: Procede a conectar. Si ves “failed to load firmware”, puede que necesites un ISO más reciente o el paquete de firmware adecuado más adelante; para el ISO en vivo, una imagen más nueva suele ser más rápida que las maniobras heroicas.
Tarea 5: Conectar con iwctl (iwd)
cr0x@server:~$ iwctl
[iwd]# device list
Devices
----------------------------------------------------------------
Name Address Powered Adapter Mode
----------------------------------------------------------------
wlp0s20f3 34:de:1a:xx:xx on phy0 station
[iwd]# station wlp0s20f3 scan
[iwd]# station wlp0s20f3 get-networks
Available networks
----------------------------------------------------------------
Network name Security Signal
----------------------------------------------------------------
CorpGuest open -63 dBm
HomeNet psk -48 dBm
[iwd]# station wlp0s20f3 connect HomeNet
Type the network passphrase for HomeNet psk.
Passphrase: ********
Qué significa: Puedes escanear y conectar. La intensidad de señal importa; “-85 dBm” es donde las instalaciones mueren a mitad de descarga.
Decisión: Si la señal es débil, acércate, cambia de banda o usa tethering. Arregla la física antes de depurar “fallos aleatorios de pacman”.
Tarea 6: Verifica que obtuviste IP y que DNS funciona
cr0x@server:~$ ip addr show wlp0s20f3
2: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 34:de:1a:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.44/24 brd 192.168.1.255 scope global dynamic wlp0s20f3
valid_lft 86371sec preferred_lft 86371sec
cr0x@server:~$ resolvectl status
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
Link 2 (wlp0s20f3)
Current Scopes: DNS
Protocols: +DefaultRoute
Qué significa: Tienes DHCP y DNS configurados vía systemd-resolved en el entorno en vivo del ISO.
Decisión: Si DNS está roto, no lo “arregles” aún con hacks aleatorios en /etc/resolv.conf. Primero confirma el DNS del router y prueba otra red. Puedes sobrevivir una instalación inestable, pero te arrepentirás.
Particionado que puedas explicarle al Tú del futuro
UEFI + GPT. Una ESP. Una raíz. Opcionalmente swap. Esa es la línea base adulta. Si haces dual-boot, conserva la ESP existente; no crees dos ESP a menos que disfrutes de la ruleta del firmware.
Un diseño por defecto sensato (portátil de disco único)
- ESP: 512 MiB, tipo EFI System, FAT32, montada en
/boot(o/efi). Elige una y sé consistente. - Raíz: el resto (o la mayor parte) como ext4 o Btrfs, montada en
/. - Swap: opcional. Si quieres hibernación, necesitas swap al tamaño de la RAM (y algo de margen).
Tarea 7: Inspecciona la tabla de particiones antes de editar
cr0x@server:~$ sgdisk -p /dev/nvme0n1
Disk /dev/nvme0n1: 1953525168 sectors, 931.5 GiB
Model: Samsung SSD 980 PRO
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 8A2D7C7D-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Partition table holds up to 128 entries
Number Start (sector) End (sector) Size Code Name
1 2048 1050623 512.0 MiB EF00 EFI system partition
2 1050624 210763775 100.0 GiB 8300 Linux root
3 210763776 1953523711 831.0 GiB 8300 Linux home
Qué significa: Ya tienes una ESP y raíz/home separadas. Perfecto si eso es lo que quieres.
Decisión: Si estás reinstalando, decide si reutilizas p1 como ESP y reformateas p2/p3. Si haces dual-boot, no borres la ESP a menos que quieras fines de semana de recuperación.
Tarea 8: Crea particiones con parted (ejemplo: disco nuevo)
cr0x@server:~$ parted -s /dev/nvme0n1 mklabel gpt
cr0x@server:~$ parted -s /dev/nvme0n1 mkpart ESP fat32 1MiB 513MiB
cr0x@server:~$ parted -s /dev/nvme0n1 set 1 esp on
cr0x@server:~$ parted -s /dev/nvme0n1 mkpart root 513MiB 100%
Qué significa: Etiqueta GPT creada; la primera partición es ESP, la segunda es raíz.
Decisión: Si necesitas /home separado o swap, agrégalo ahora. Si no, mantenlo simple: un sistema de archivos es fácil de respaldar y fácil de reinstalar.
Tarea 9: Formatea la ESP y la raíz
cr0x@server:~$ mkfs.fat -F32 /dev/nvme0n1p1
mkfs.fat 4.2 (2021-01-31)
cr0x@server:~$ mkfs.ext4 -F /dev/nvme0n1p2
mke2fs 1.47.2 (2025-01-05)
Creating filesystem with 244170752 4k blocks and 61046784 inodes
Filesystem UUID: 8e2f3c2a-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Qué significa: Se crearon los sistemas de archivos; ext4 informa conteo de bloques y UUID, que aparecerán en fstab.
Decisión: Si esperabas Btrfs y acabas de formatear ext4, detente ahora y corrígelo. Sí, he visto gente “convertir después” y nunca lo hace.
Elecciones de sistema de archivos: ext4 vs Btrfs (y lo que yo instalaría)
Ext4 sigue siendo el sistema “necesito que mi portátil arranque cada día”. Btrfs es para “quiero instantáneas y acepto que debo entender subvolúmenes”. Ambos están bien. Elige según tus hábitos operativos, no por bravatas en Reddit.
Mi opinión fundada
- Elige ext4 si es tu primera instalación de Arch, valoras la previsibilidad y tu estrategia de respaldo es “prometo hacerlo después”.
- Elige Btrfs si realmente usarás instantáneas (antes de actualizaciones, cambios de kernel) y estás dispuesto a mantener un diseño consistente.
Tarea 10 (opcional): Layout de subvolúmenes Btrfs que no se vuelva raro
cr0x@server:~$ mkfs.btrfs -f /dev/nvme0n1p2
btrfs-progs v6.15
cr0x@server:~$ mount /dev/nvme0n1p2 /mnt
cr0x@server:~$ btrfs subvolume create /mnt/@
Create subvolume '/mnt/@'
cr0x@server:~$ btrfs subvolume create /mnt/@home
Create subvolume '/mnt/@home'
cr0x@server:~$ umount /mnt
cr0x@server:~$ mount -o subvol=@,compress=zstd:3 /dev/nvme0n1p2 /mnt
cr0x@server:~$ mkdir -p /mnt/home
cr0x@server:~$ mount -o subvol=@home,compress=zstd:3 /dev/nvme0n1p2 /mnt/home
Qué significa: Subvolúmenes separados permiten instantanear la raíz sin instantanear el home cada vez.
Decisión: Si haces esto, comprométete. “Un subvolumen hoy, once mañana” es la forma de construir una estación de trabajo imposible de depurar.
Instalación base: pacstrap, fstab, locale, hora
Ahora hacemos la parte aburrida que debería ser aburrida. Monta sistemas de archivos, instala paquetes base, genera fstab y configura hora/locale. Mantén tu conjunto de instalación pequeño. Siempre puedes añadir paquetes. Quitar confusión es más difícil.
Objetivos de montaje
cr0x@server:~$ mount /dev/nvme0n1p2 /mnt
cr0x@server:~$ mkdir -p /mnt/boot
cr0x@server:~$ mount /dev/nvme0n1p1 /mnt/boot
Tarea 11: Elige mirrors (sanity rápido, no frikismo de mirrors)
cr0x@server:~$ reflector --country "United States" --latest 10 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Qué significa: La lista de mirrors se refresca a un conjunto razonable por defecto.
Decisión: Si reflector falla por DNS o TLS, para y arregla la hora/red. No sigas con un gestor de paquetes medio roto.
Tarea 12: Instala el sistema base + esenciales
cr0x@server:~$ pacstrap -K /mnt base linux linux-firmware sof-firmware nano sudo man-db man-pages networkmanager iwd
:: Synchronizing package databases...
core 129.2 KiB 623 KiB/s 00:00 [######################] 100%
extra 1640.8 KiB 4.21 MiB/s 00:00 [######################] 100%
:: Installing packages...
(1/155) installing filesystem ...
(155/155) installing linux ...
Qué significa: El OS base está instalado. -K copia el keyring al nuevo sistema para que la confianza de pacman funcione inmediatamente dentro del chroot.
Decisión: Si tienes hardware de audio moderno, conserva sof-firmware. En portátiles evita sorpresas de “no hay dispositivo de audio” más tarde.
Generar fstab y chroot
cr0x@server:~$ genfstab -U /mnt >> /mnt/etc/fstab
cr0x@server:~$ arch-chroot /mnt
Tarea 13: Ajustar zona horaria, reloj de hardware y locale
cr0x@server:/# ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
cr0x@server:/# hwclock --systohc
cr0x@server:/# sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
cr0x@server:/# locale-gen
Generating locales...
en_US.UTF-8... done
Generation complete.
cr0x@server:/# printf "LANG=en_US.UTF-8\n" > /etc/locale.conf
Qué significa: Estás fijando una locale predecible y el comportamiento correcto del reloj.
Decisión: Si haces dual-boot con Windows, considera mantener el RTC en hora local en el lado de Windows en vez de romper Linux. Linux debería mantenerse en UTC para ser coherente.
Tarea 14: Nombre de host y servicios de red básicos
cr0x@server:/# printf "archbox\n" > /etc/hostname
cr0x@server:/# systemctl enable NetworkManager
Created symlink '/etc/systemd/system/multi-user.target.wants/NetworkManager.service' → '/usr/lib/systemd/system/NetworkManager.service'.
Qué significa: NetworkManager arrancará en el arranque y gestionará el Wi‑Fi en tu escritorio como un sistema normal.
Decisión: Para portátiles/escritorios, NetworkManager es el valor por defecto correcto. Guarda “systemd-networkd en todas partes” para servidores o para quien disfruta escribir YAML con sentimientos.
Usuarios, sudo y microcódigo
cr0x@server:/# passwd
New password:
Retype new password:
passwd: password updated successfully
cr0x@server:/# useradd -m -G wheel -s /bin/bash cr0x
cr0x@server:/# passwd cr0x
New password:
Retype new password:
passwd: password updated successfully
cr0x@server:/# EDITOR=nano visudo
Qué significa: Tienes un usuario no root en el grupo wheel. En visudo debes descomentar %wheel ALL=(ALL:ALL) ALL.
Decisión: No manejes el día a día como root. No es más rudo; es descuidado.
cr0x@server:/# pacman -S --noconfirm intel-ucode
resolving dependencies...
looking for conflicting packages...
Packages (1) intel-ucode-20260120.1-1
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [######################] 100%
(1/1) installing intel-ucode [######################] 100%
Qué significa: Se instaló microcódigo. Para AMD usa amd-ucode.
Decisión: Instala el paquete de microcódigo correcto ahora. Es poco esfuerzo y reduce inestabilidad misteriosa.
Gestor de arranque en UEFI: systemd-boot hecho limpio
En portátiles UEFI, systemd-boot es un gran valor por defecto: minimalista, predecible y no intenta ser más listo que el firmware. GRUB también está bien, pero si no necesitas sus funcionalidades, no pagues su impuesto de complejidad.
Tarea 15: Instala systemd-boot en la ESP
cr0x@server:/# bootctl install
Created "/boot/EFI/systemd".
Created "/boot/EFI/BOOT".
Created "/boot/loader".
Created "/boot/loader/entries".
Random seed file /boot/loader/random-seed successfully written (32 bytes).
Created EFI boot entry "Linux Boot Manager".
Qué significa: Los archivos del gestor de arranque se colocaron en la ESP y se creó una entrada NVRAM.
Decisión: Si bootctl se queja de que no encuentra la ESP, tu montaje de /boot está mal. Corrige los montajes antes de continuar.
Tarea 16: Crea la entrada del cargador con el identificador correcto de root
Obtén el UUID del sistema de archivos raíz:
cr0x@server:/# blkid /dev/nvme0n1p2
/dev/nvme0n1p2: UUID="8e2f3c2a-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="root" PARTUUID="f0a1b2c3-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Qué significa: Tienes el UUID para parámetros del kernel y verificación de fstab.
Decisión: Prefiere UUID en la línea de comando del kernel. Los nombres de dispositivo pueden cambiar; los UUID no (a menos que reformatees).
Crea /boot/loader/entries/arch.conf:
cr0x@server:/# cat > /boot/loader/entries/arch.conf <<'EOF'
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=UUID=8e2f3c2a-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw
EOF
Y establece una configuración por defecto del cargador:
cr0x@server:/# cat > /boot/loader/loader.conf <<'EOF'
default arch.conf
timeout 3
console-mode max
editor no
EOF
Decisión: Mantén el timeout corto. Si necesitas depurar, siempre puedes pulsar una tecla. Si lo dejas largo, lo verás todos los días.
Tarea 17: Construye initramfs y verifica la instalación del kernel
cr0x@server:/# mkinitcpio -P
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
- Building image with: /usr/bin/mkinitcpio -g /boot/initramfs-linux.img
==> Image generation successful
Qué significa: Tu initramfs existe en la ESP montada en /boot, donde systemd-boot lo buscará.
Decisión: Si montaste la ESP en /boot, esto es correcto. Si la montaste en /efi, tu kernel e initramfs probablemente vivan en la raíz—diferente configuración. Elige un enfoque y sé consistente.
Configuración de escritorio: NetworkManager, controladores GPU, KDE/GNOME
Arrancar es el primer hito. Un escritorio usable es el segundo. Aquí está el truco: habilita los servicios correctos, instala los controladores adecuados y evita la maniobra de “instalé tres gestores de pantalla por si acaso”.
Tarea 18: Habilita NetworkManager y (opcionalmente) el backend iwd
Ya habilitaste NetworkManager. Si quieres que NetworkManager use iwd en lugar de wpa_supplicant, configúralo explícitamente.
cr0x@server:/# mkdir -p /etc/NetworkManager/conf.d
cr0x@server:/# cat > /etc/NetworkManager/conf.d/wifi_backend.conf <<'EOF'
[device]
wifi.backend=iwd
EOF
Decisión: No mezcles pilas de Wi‑Fi al azar. Elige una y depura dentro de ese sistema.
Tarea 19: Instala la pila gráfica (elige un camino)
Determina tu(s) GPU(s):
cr0x@server:/# lspci -k | grep -A3 -E 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P Integrated Graphics Controller
Subsystem: Lenovo Device xxxx
Kernel driver in use: i915
Kernel modules: i915
Qué significa: iGPU Intel usando i915. Eso suele “funcionar por sí solo” con Mesa.
Decisión: Si tienes NVIDIA, instala los paquetes de NVIDIA deliberadamente y acepta que optas por gestionar controladores. Para AMD/Intel, la pila abierta suele ser más simple.
Instala lo básico para una sesión de escritorio:
cr0x@server:/# pacman -S --noconfirm xorg-server xorg-xinit mesa
Tarea 20: Elige un escritorio y un gestor de pantalla (uno cada uno)
KDE Plasma (con SDDM):
cr0x@server:/# pacman -S --noconfirm plasma kde-applications sddm
cr0x@server:/# systemctl enable sddm
Created symlink '/etc/systemd/system/display-manager.service' → '/usr/lib/systemd/system/sddm.service'.
Decisión: Plasma es una buena opción “funciona sin complicaciones”, especialmente si quieres controles GUI de red y valores por defecto sensatos.
O GNOME (con GDM):
cr0x@server:/# pacman -S --noconfirm gnome gdm
cr0x@server:/# systemctl enable gdm
Created symlink '/etc/systemd/system/display-manager.service' → '/usr/lib/systemd/system/gdm.service'.
Decisión: Elige KDE o GNOME en el primer día. Instalar ambos es una gran forma de depurar temas y archivos de sesión en vez de avanzar en tu trabajo.
Tarea 21: Audio y Bluetooth (porque portátiles)
cr0x@server:/# pacman -S --noconfirm pipewire pipewire-audio pipewire-pulse wireplumber bluez bluez-utils
cr0x@server:/# systemctl enable bluetooth
Created symlink '/etc/systemd/system/dbus-org.bluez.service' → '/usr/lib/systemd/system/bluetooth.service'.
Created symlink '/etc/systemd/system/multi-user.target.wants/bluetooth.service' → '/usr/lib/systemd/system/bluetooth.service'.
Decisión: PipeWire es la realidad por defecto ahora. No revivas consejos de la era PulseAudio a menos que estés depurando un problema muy concreto.
Primer reinicio
cr0x@server:/# exit
cr0x@server:~$ umount -R /mnt
cr0x@server:~$ reboot
Broma #2: Si el primer arranque funciona, no celebres aún—tu portátil esperará hasta que llegues tarde a una reunión para revelar el firmware Wi‑Fi que falta.
Tareas prácticas (comandos + salida + decisiones)
Ya viste muchas tareas en línea. Aquí hay comprobaciones de alto impacto adicionales que ahorran tiempo cuando algo no se comporta. Estos son los comandos que realmente ejecuto cuando quiero respuestas, no vibras.
Tarea 22: Confirma que la ESP está montada donde crees
cr0x@server:~$ findmnt /boot
TARGET SOURCE FSTYPE OPTIONS
/boot /dev/nvme0n1p1 vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro
Qué significa: ESP montada en /boot, así que kernels/initramfs viven en FAT a menos que hayas elegido otro diseño.
Decisión: Si /boot es ext4 y tu ESP está en otro sitio, no ejecutes bootctl a ciegas. Confirma tu diseño elegido y mantente fiel a él.
Tarea 23: Verifica entradas de arranque en NVRAM
cr0x@server:~$ efibootmgr -v
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0001,0000
Boot0003* Linux Boot Manager HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0x100000)/File(\EFI\systemd\systemd-bootx64.efi)
Boot0001* UEFI: USB SanDisk 3.2 PciRoot(0x0)/Pci(0x14,0x0)/USB(0x3,0x0)
Boot0000* Windows Boot Manager HD(1,GPT,yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)
Qué significa: El firmware conoce tu gestor de arranque. El orden indica qué arranca primero.
Decisión: Si “Linux Boot Manager” desaparece tras reiniciar, tu firmware puede ser “útil”. En ese caso, mantén una ruta de respaldo: asegúrate de que \EFI\BOOT\BOOTX64.EFI exista (systemd-boot lo instala).
Tarea 24: Revisa Wi‑Fi en el sistema instalado (NetworkManager)
cr0x@server:~$ systemctl status NetworkManager --no-pager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: disabled)
Active: active (running) since Sat 2026-02-05 13:21:12 UTC; 2min ago
Qué significa: NetworkManager está en ejecución.
Decisión: Si no está activo, arréglalo antes de tocar controladores Wi‑Fi. El estado del servicio es la primera capa.
cr0x@server:~$ nmcli device status
DEVICE TYPE STATE CONNECTION
wlp0s20f3 wifi connected HomeNet
lo loopback unmanaged --
Qué significa: El Wi‑Fi está conectado vía NetworkManager.
Decisión: Si el estado es “disconnected” pero el dispositivo existe, revisa rfkill, credenciales y dominio regulatorio. No reinstales el SO porque cambió la contraseña Wi‑Fi.
Tarea 25: Revisa bloqueos rfkill (la trampa del “modo avión”)
cr0x@server:~$ rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
Qué significa: No hay bloqueo. Si hard blocked es yes, hay un interruptor físico o un toggle del firmware.
Decisión: Si está bloqueado, arregla eso primero. Ninguna cantidad de reinstalación de controladores vencerá un interruptor RF kill.
Tarea 26: Confirma que DNS es sano en el sistema instalado
cr0x@server:~$ resolvectl query archlinux.org
archlinux.org: 95.217.xx.xx -- link: wlp0s20f3
(archlinux.org)
-- Information acquired via protocol DNS in 34.1ms.
-- Data is authenticated: no
Qué significa: La resolución DNS funciona y la latencia es razonable.
Decisión: Si DNS falla pero la conectividad IP funciona, céntrate en la integración resolved/NetworkManager—no en “internet está caído”.
Tarea 27: Diagnostica logs de arranque cuando no aparece el inicio gráfico
cr0x@server:~$ journalctl -b -p err --no-pager
Feb 05 13:20:58 archbox sddm[612]: Authentication error: SDDM::Auth::ERROR_INTERNAL
Feb 05 13:21:01 archbox kernel: i915 0000:00:02.0: [drm] *ERROR* failed to load DMC firmware
Qué significa: Errores desde el arranque. Algunos son fatales, otros ruido.
Decisión: Si hay errores del gestor de pantalla, valida paquetes de usuario/sesión. Si hay errores de firmware GPU, asegúrate de que linux-firmware esté instalado y actualizado, y que no estés fijando kernels antiguos.
Tarea 28: Valida que tu initramfs contiene lo que crees
cr0x@server:~$ lsinitcpio -a /boot/initramfs-linux.img | head
usr/lib/modules/6.12.8-arch1-1/kernel/drivers/
usr/lib/modules/6.12.8-arch1-1/kernel/drivers/base/
usr/lib/modules/6.12.8-arch1-1/kernel/drivers/block/
Qué significa: Puedes inspeccionar el contenido del initramfs. Útil cuando drivers de dispositivo raíz o sistemas de archivos no están disponibles en el arranque temprano.
Decisión: Si usas cifrado, RAID o controladoras de almacenamiento raras, asegúrate de los hooks correctos en /etc/mkinitcpio.conf y reconstruye.
Playbook de diagnóstico rápido: encuentra el cuello de botella con rapidez
Cuando algo falla, no thrashes. Identifica qué capa está rota. La mayoría de los reportes de “Arch está roto” son uno de: no arrancaste realmente en UEFI, partición equivocada montada, firmware faltante o un servicio no habilitado.
Primero: ¿estás arrancando lo que crees que estás arrancando?
- Comprueba modo UEFI:
ls /sys/firmware/efi - Comprueba entrada de arranque:
efibootmgr -v - Comprueba cmdline del kernel:
cat /proc/cmdline
Objetivo: Confirma que el firmware cargó tu gestor de arranque y kernel previstos, con el parámetro root= previsto.
Segundo: ¿el almacenamiento está montado correctamente (y de forma consistente)?
- Lista dispositivos de bloque:
lsblk -f - Comprueba montajes:
findmnt - Comprueba fstab:
cat /etc/fstab
Objetivo: Asegurar que root y ESP están alineados con tu diseño. “Kernel en ext4 pero el gestor de arranque lo espera en la ESP” es una herida autoinfligida clásica.
Tercero: ¿la red falla en enlace, IP o DNS?
- Estado del enlace:
ip link,rfkill list - IP/DHCP:
ip addr,nmcli device status - DNS:
resolvectl status,resolvectl query example.com
Objetivo: No depures DNS cuando no tienes IP, y no reinstales controladores cuando la interfaz está hard-blocked.
Cuarto: ¿el escritorio falla por el gestor de pantalla, GPU o sesión?
- Estado del gestor de pantalla:
systemctl status sddmosystemctl status gdm - Detección GPU:
lspci -k - Errores de arranque:
journalctl -b -p err
Objetivo: Separar “no hay GUI” en un servicio que falla frente a un problema de controlador/kernel.
Errores comunes: síntoma → causa raíz → solución
1) Síntoma: “bootctl install” funciona, pero el sistema no arranca (el firmware va al BIOS u otro SO)
Causa raíz: Instalaste en modo legacy, o la ESP no fue montada donde creías, o la entrada NVRAM no quedó registrada.
Solución:
- Verifica UEFI:
ls /sys/firmware/efi. - Verifica montaje de la ESP:
findmnt /booty comprueba que/boot/EFI/systemd/systemd-bootx64.efiexista. - Revisa entradas:
efibootmgr -v. Si falta, reinstala con la ESP montada y vuelve a ejecutarbootctl install.
2) Síntoma: pacstrap falla con TLS o “could not resolve host”
Causa raíz: Reloj equivocado, DNS roto, portal cautivo o Wi‑Fi débil que cae conexiones.
Solución:
- Sincroniza la hora:
timedatectl set-ntp truey vuelve a comprobartimedatectl. - Verifica DNS:
resolvectl query archlinux.org. - Para portales cautivos, usa tethering de un teléfono o una red conocida buena. El ISO no negocia términos de servicio de Wi‑Fi de hotel.
3) Síntoma: dispositivo Wi‑Fi faltante por completo
Causa raíz: Falta de controlador de kernel o firmware; a veces Secure Boot o rarezas del proveedor.
Solución:
- Revisa dmesg por fallos de firmware:
dmesg -T | grep -i firmware. - Usa un ISO de Arch más reciente (a menudo la mejor solución).
- Si el sistema instalado carece de firmware, confirma que
linux-firmwareestá instalado y actualizado.
4) Síntoma: arrancas, pero cae a un shell de emergencia que se queja de no encontrar root
Causa raíz: UUID de root= incorrecto en la entrada del cargador, driver de sistema de archivos faltante en initramfs, o reformateaste y olvidaste actualizar configuraciones.
Solución:
- Desde el ISO, ejecuta
blkidy compáralo con/boot/loader/entries/arch.conf. - Reconstruye initramfs dentro del chroot:
mkinitcpio -P.
5) Síntoma: bucle de inicio de sesión del escritorio (ingresas contraseña, la pantalla parpadea, vuelve al inicio)
Causa raíz: Mala configuración de sesión, permisos de home incorrectos, pila GPU rota o mezclar gestores de pantalla/sesiones.
Solución:
- Revisa errores:
journalctl -b -p erryjournalctl -u sddm(o gdm). - Asegura propiedad de home:
ls -ld /home/cr0xdebe mostrar que el usuario es propietario. - No instales múltiples gestores de pantalla a la vez. Elige uno y habilítalo.
6) Síntoma: No hay dispositivos de sonido en el escritorio
Causa raíz: Falta de sof-firmware (común en portátiles Intel), PipeWire no instalado o WirePlumber no en ejecución.
Solución:
- Instala:
pacman -S sof-firmware pipewire wireplumber - Revisa servicios/ logs de usuario:
systemctl --user status wireplumber
Listas de verificación / plan paso a paso
Lista A: Plan mínimo “necesito un escritorio funcionando hoy”
- Arranca el ISO en modo UEFI; confirma que
/sys/firmware/efiexiste. - Conecta Wi‑Fi con
iwctl; confirma IP y DNS. - Identifica el disco objetivo con
lsblk -o NAME,MODEL,SIZE. - Crea GPT: ESP (512 MiB FAT32) + raíz (resto).
- Formatea ESP FAT32; formatea raíz ext4.
- Monta raíz en
/mnt, monta ESP en/mnt/boot. pacstrapbase + kernel + firmware + NetworkManager.- Genera fstab; chroot.
- Configura zona horaria, locale, hostname; establece contraseña root; crea usuario; configura sudo.
- Instala microcódigo; instala systemd-boot; crea entrada del cargador.
- Habilita NetworkManager; instala escritorio (KDE+SDDM o GNOME+GDM); habilita gestor de pantalla.
- Reinicia; verifica Wi‑Fi vía GUI; ejecuta actualizaciones.
Lista B: Plan de seguridad para dual-boot (Windows ya instalado)
- Haz copia de seguridad de claves BitLocker de Windows (si las usas). Si no sabes lo que significa, detente y aprende antes de tocar particiones.
- En Windows, reduce el volumen usando las herramientas de Windows si es necesario. No reduzcas NTFS desde Linux salvo que te guste vivir peligrosamente.
- En el ISO, no reformatees la ESP existente. Móntala y reutilízala.
- Crea una nueva partición raíz Linux en el espacio libre.
- Instala systemd-boot; confirma que
efibootmgrmuestra entradas tanto de Windows como de Linux. - Mantén la entrada Windows Boot Manager intacta. Tu firmware podría “preferirla” más tarde; quieres que ambas funcionen.
Lista C: Plan “quiero instantáneas” (Btrfs)
- Crea raíz Btrfs, crea subvolúmenes
@y@home. - Monta con
compress=zstdy opciones de subvolumen consistentes. - Genera fstab, verifica montajes de subvolumen en
/etc/fstabantes de reiniciar. - Adopta un flujo de trabajo de instantáneas antes de actualizaciones. Si no lo harás, no te molestes con Btrfs solo por sus funciones.
Tres microhistorias corporativas desde la tierra del “funcionó en mi máquina”
Microhistoria 1: El incidente causado por una suposición equivocada
Una empresa decidió estandarizar portátiles de desarrollador en Arch porque el soporte de hardware nuevo importaba. El despliegue iba bien—hasta que llegó un lote de máquinas con dos NVMe internos. Un disco “sistema” más pequeño y otro “datos” más grande, según el modelo.
Las notas del wiki interno decían: “Instalar en /dev/nvme0n1.” Había sido verdad durante meses. Entonces una revisión del proveedor cambió el orden de enumeración. Un puñado de instalaciones borró el disco equivocado. Nada malicioso, solo una suposición equivocada de que los nombres de dispositivo son identificadores estables.
El postmortem fue aburrido y útil. Cambiaron el procedimiento para exigir identificación del disco por modelo + tamaño y pegar la salida de lsblk -o NAME,MODEL,SIZE,SERIAL en el ticket antes de particionar. También añadieron una comprobación “confirma que no estás en la USB” verificando el nombre del dispositivo del ISO instalador y asegurando que no sea el objetivo.
Después de eso, el problema desapareció. No porque Linux se volviera más amable, sino porque el proceso dejó de confiar en la memoria humana.
Microhistoria 2: La optimización que salió mal
Un equipo de TI quería instalaciones más rápidas. Alguien sugirió mantener una caché local de paquetes y reducir agresivamente la lista de paquetes en tiempo de ISO: “No necesitamos linux-firmware; es enorme. Podemos añadirlo después.” En papel, esto redujo el tiempo de descarga.
En la práctica, creó una clase de fallos difíciles de diagnosticar. Las máquinas arrancaban, pero faltaba Wi‑Fi y a veces gráficos en ciertos modelos. Los desarrolladores lo solucionaban instalando firmware después—si tenían Ethernet. Sin Ethernet, quedaban con un sistema incapaz de descargar el paquete que haría funcionar la red. Muy elegante.
El equipo revirtió la optimización y documentó un principio: los paquetes de firmware son baseline, no opcionales. No optimizas quitando las partes que hacen funcionar el hardware. Optimiza mejorando mirrors, cachés o usando mejor conectividad durante el aprovisionamiento.
Más adelante consiguieron aceleraciones con una selección de mirrors más inteligente y caché local, sin convertir el primer arranque en una búsqueda del tesoro.
Microhistoria 3: La práctica aburrida pero correcta que salvó el día
Otra organización ejecutaba Arch en una flota de kioscos. Las rolling releases ponían nerviosa a la gestión, así que hicieron algo profundamente poco atractivo: antes de cada ventana de actualización, capturaban una instantánea (Btrfs) y verificaban que podían arrancar la instantánea anterior desde el menú de arranque.
Una actualización introdujo una regresión con un controlador GPU específico y su hardware de pantalla. Los kioscos arrancaron con pantalla negra. No había escritorio remoto, ni GUI, ni acceso fácil—solo un pequeño grupo de personas que podían alcanzar físicamente los dispositivos.
Como habían ensayado la reversión, la respuesta fue directa. Arrancaron en la entrada de la instantánea previa, restauraron el servicio y luego fijaron la versión afectada del paquete mientras coordinaban una corrección adecuada. Sin pánico, sin depuración heroica mientras los clientes miraban un kiosco muerto.
Esa práctica no dio titulares. Sí produjo tiempo de actividad. En operaciones, ese es el único aplauso que importa.
Preguntas frecuentes
1) ¿Debo montar la ESP en /boot o /efi?
Si usas systemd-boot, montar la ESP en /boot mantiene el modelo simple: gestor de arranque, kernel e initramfs viven juntos. Montarla en /efi también puede funcionar, pero entonces debes asegurarte de que el gestor de arranque encuentre kernel/initramfs (a menudo mediante pasos separados). Elige uno y sé consistente.
2) ¿Necesito swap en 2026?
No estrictamente, pero es útil bajo presión de memoria y necesario para hibernación. Si no hibernas y tienes mucha RAM, puedes omitirlo. Si usas portátil y hibernas, planifica el swap en consecuencia.
3) ¿iwd o wpa_supplicant?
Usa iwd como backend si tu configuración funciona con él; es ligero e integra bien. Si te topas con casos límite de Wi‑Fi empresarial (ciertas configuraciones EAP), wpa_supplicant puede ser más compatible. La clave es no mezclar pilas sin saber cuál está activa.
4) ¿Por qué pacman se queja de claves o firmas?
Normalmente porque el keyring está desactualizado o el reloj está mal. En el ISO, la solución suele ser “hacer que la red funcione, sincronizar la hora y reintentar”. En el sistema instalado, asegúrate de que archlinux-keyring esté actualizado.
5) ¿Puedo instalar Arch sin Ethernet?
Sí. El ISO en vivo más iwctl suele ser suficiente. El modo de fallo común es la falta de firmware para chipsets Wi‑Fi muy nuevos; un ISO más reciente es la primera opción a probar.
6) systemd-boot vs GRUB: ¿cuál elegir?
systemd-boot si quieres menos partes móviles y UEFI-only. GRUB si necesitas funciones avanzadas de multi-boot, soporte legacy o configuraciones inusuales. Para un portátil moderno con un solo SO, systemd-boot suele ser la elección más tranquila.
7) ¿Necesito Secure Boot?
Necesitas un modelo de amenazas, no una casilla. Secure Boot puede valer la pena, pero añade complejidad: firmar kernels o usar artefactos de arranque firmados. Consigue primero una instalación limpia sin Secure Boot y que puedas recuperar, luego añade Secure Boot.
8) ¿Por qué mi entrada de arranque UEFI desapareció tras reiniciar?
Algunos firmwares “limpian” entradas que no les gustan. El archivo fallback de systemd-boot en \EFI\BOOT\BOOTX64.EFI ayuda. También asegúrate de que tu ESP esté sana y de no resetear ajustes de firmware.
9) ¿Debo usar instantáneas Btrfs en un portátil?
Si realmente las usarás antes de actualizaciones y entiendes qué estás instantaneando (root vs home), sí. Si no adoptarás el hábito, ext4 es más simple y te tratará mejor.
Siguientes pasos que realmente valen la pena
Tienes un sistema Arch que arranca con Wi‑Fi y escritorio. Ahora realiza la higiene operativa que evita dolor futuro:
- Confirma que las actualizaciones funcionan: ejecuta
pacman -Syuy verifica que no haya problemas de firmas/hora/red. - Registra tu layout de particiones: guarda la salida de
lsblk -fen algún lugar accesible si el sistema no arranca. - Prueba la recuperación: conserva el USB del ISO. Asegúrate de poder montar root y ESP desde el ISO y hacer chroot.
- Decide sobre instantáneas o backups: si Btrfs, define una rutina de instantáneas; si ext4, define una rutina de backups. “Después” no es un plan.
- Mantén firmware y kernel al día: especialmente en portátiles. El soporte de hardware es un objetivo móvil.
Arch no es inherentemente doloroso. Las suposiciones no verificadas sí lo son. Trata la instalación como un cambio que podrías tener que depurar a las 2 a.m., y dormirás mejor.