Cómo construir tu propio sistema operativo

8 min

Arch Linux sigue el principio del minimalismo, permitiendo a los usuarios construir cualquier funcionalidad que deseen. A continuación, se presenta una guía sencilla para configurar tu propio sistema Arch Linux en una máquina física.

Preparación

Necesitarás: una computadora, una unidad USB (o cualquier medio de almacenamiento extraíble), conexión a internet y habilidades básicas de búsqueda de información.

  • Independientemente de la imagen de instalación que elijas, incluso para instalaciones sin conexión, se recomienda tener acceso a internet para garantizar la actualización del kernel y las herramientas. Si eres un usuario experimentado, puedes decidir por tu cuenta.
  • Si usas Wi-Fi, asegúrate de que el nombre de la red esté en inglés, ya que el entorno tty no puede mostrar caracteres no ASCII, que aparecerán como bloques ilegibles.
  • Si planeas configurar un arranque dual en el mismo disco, reserva suficiente espacio para Arch Linux: se recomienda al menos 100 GB para futuras instalaciones de software. Asegúrate de que la partición EFI tenga al menos 256 MB o crea un punto de montaje adicional.
  • Verifica si la partición de Windows 10 utiliza cifrado BitLocker. Obtén la clave de recuperación con antelación y desactiva el “Inicio rápido” en las opciones de energía.

Antes de proceder, lee cuidadosamente y busca información sobre cualquier aspecto que no entiendas. Opera con precaución y realiza copias de seguridad regularmente: los datos son invaluables.

Creación del medio de instalación

  1. Descarga la imagen de instalación únicamente desde la página oficial de descargas de Arch Linux. Ten en cuenta que Arch Linux es una distribución de lanzamiento continuo.
  2. Si deseas compilar tu propio kernel, consulta la guía de Compilación tradicional del kernel.
  3. Para la imagen de instalación oficial, se recomienda usar Ventoy para crear un USB booteable.

Instalación base

1. Arranque desde el medio de Arch Linux

Apaga la computadora, inserta la unidad USB y enciéndela. Ingresa al BIOS, selecciona el USB como dispositivo de arranque, elige la primera opción y presiona Enter para acceder al entorno de instalación de Arch Linux.

2. Verificación de UEFI

systemctl stop reflector.service
# Deshabilita la actualización automática de espejos, ya que las condiciones de red geográficas pueden causar problemas.
ls /sys/firmware/efi/efivars
# Si se muestra una lista de variables EFI, el sistema está arrancado en modo UEFI. La mayoría de las máquinas en 2025 usan UEFI.

3. Configuración de red

La instalación de Arch Linux requiere conexión a internet. La instalación sin conexión es más compleja; consulta la guía de Instalación sin conexión.

Para conexiones por cable, conecta el cable Ethernet, verifica si el LED de la interfaz parpadea y espera unos segundos para que se establezca la conexión.

En redes de campus, puede ser necesaria la autenticación a través de un enrutador superior. Consulta el proyecto nbtverify.

Para Wi-Fi, utiliza iwctl para conectarte.

lspci -k | grep Network
# Verifica si el adaptador inalámbrico está funcionando. Si estás seguro de que está operativo, puedes omitir este paso.

Comprueba si el kernel ha cargado el controlador de la red inalámbrica.

Deberías ver algo como: 00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20).

Si no aparece nada, verifica si la conexión inalámbrica está desactivada (blocked: yes).

rfkill list
# El adaptador inalámbrico suele llamarse wlan0.
ip link set wlan0 up
# Si aparece un error como “Operation not possible due to RF-kill”, ejecuta:
rfkill unblock wifi
# Conéctate a Wi-Fi usando iwctl
iwctl # Ingresa al modo interactivo
device list # Lista los dispositivos inalámbricos, por ejemplo, wlan0
station wlan0 scan # Escanea las redes
station wlan0 get-networks # Lista las redes Wi-Fi disponibles
station wlan0 connect wifi-name # Conéctate a la red. Los nombres no ASCII no son compatibles. Ingresa la contraseña cuando se solicite.
exit # Salir tras conectar

ping www.google.com # Prueba la conectividad de red

Para problemas de configuración de red, consulta Configuración de red/Inalámbrica.

5. Sincronización del reloj del sistema

timedatectl set-ntp true # Sincroniza la hora del sistema con la hora de la red
timedatectl status # Verifica el estado del servicio

6. Actualización de la lista de espejos (opcional para usuarios en España)

vim /etc/pacman.d/mirrorlist # Edita la lista de espejos si es necesario
Server = https://mirror.librelabucm.org/archlinux/$repo/os/$arch # Espejo de la UCM
Server = https://ftp.rediris.es/mirror/archlinux/$repo/os/$arch # RedIRIS
Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch # Kernel.org

7. Creación de particiones Btrfs

Verificación de la información del disco

lsblk

Muestra la estructura actual de particiones. Verifica cuidadosamente el disco de destino para la instalación de Arch Linux.

Convenciones de nomenclatura de discos:

  • Discos SATA: sda, sdb, sdc … Particiones: sda1, sda2, etc.
  • Discos NVMe: nvme0n1, nvme1n1 … Particiones: nvme0n1p1, nvme0n1p2, etc.

Este ejemplo usa un disco SATA. Reemplaza /dev/sdx con tu disco real.

cfdisk /dev/sdx

Deberías ver una interfaz TUI amigable para particionar. 😄

Pasos para particionar

1. Crear partición Swap
  • Usa las teclas de flecha para seleccionar Free space.
  • Presiona [New], presiona Enter e introduce el tamaño (recomendado: 60%–100% de la RAM).
  • Presiona [Type] y selecciona Linux swap.
2. Crear partición raíz (para Btrfs)
  • Selecciona el Free space restante, presiona [New] y Enter.
  • Introduce el tamaño (por defecto: usa todo el espacio restante).
  • Mantén el tipo como Linux filesystem.
3. Escribir la tabla de particiones
  • Selecciona [Write], escribe yes y presiona Enter.

    ⚠️ Nota: Los cambios no se aplicarán si no se escriben.

Formatear particiones

Volver a verificar los discos
fdisk -l
Formatear la partición EFI (si es nueva)
mkfs.fat -F32 /dev/sdxn

💡 Para usuarios con arranque dual, puedes reutilizar la partición EFI de Windows sin formatearla, pero asegúrate de que tenga suficiente espacio. Consulta Arranque dual con Windows.

Formatear la partición Swap
mkswap /dev/sdxn
Formatear la partición Btrfs
mkfs.btrfs -L myArch /dev/sdxn

Crear y montar subvolúmenes Btrfs

mount -t btrfs -o compress=zstd /dev/sdxn /mnt

# Crear subvolúmenes
btrfs subvolume create /mnt/@        # Subvolumen raíz
btrfs subvolume create /mnt/@home    # Subvolumen para /home

umount /mnt

⚠️ Recordatorio final

  • ¡Revisa nuevamente todos los comandos y operaciones!
  • Los errores pueden causar pérdida de datos, especialmente al eliminar particiones de Windows 😥.

8. Montar particiones, comenzando por la raíz

mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # Montar el directorio /
mkdir /mnt/home # Crear el directorio /home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # Montar el directorio /home
mkdir -p /mnt/boot # Crear el directorio /boot
mount /dev/sdxn /mnt/boot # Montar el directorio /boot
swapon /dev/sdxn # Activar la partición de intercambio
df -h # Verificar montajes
free -h # Verificar el montaje de la partición de intercambio

9. Instalar el sistema

pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
# Si usas el sistema de archivos Btrfs, instala el paquete btrfs-progs
pacman -S archlinux-keyring
# Si aparece un error de clave GPG, puede deberse a una imagen desactualizada. Actualiza archlinux-keyring para resolverlo.
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
# Instala paquetes funcionales esenciales con pacstrap

10. Generar el archivo fstab

Genera el archivo fstab para definir las particiones del disco basadas en los montajes actuales.

genfstab -U /mnt > /mnt/etc/fstab

11. Entrar al nuevo sistema

arch-chroot /mnt
# ¿Desapareció el resaltado de código? ¡No te preocupes, has cambiado al chroot con éxito!

12. Configurar el nombre del host y la zona horaria

vim /etc/hostname
# Elige un nombre para el host (evita caracteres especiales o espacios para evitar problemas; no establecer un nombre de host puede causar fallos en algunas aplicaciones GUI).
vim /etc/hosts
# Edita el archivo hosts

Añade lo siguiente (reemplaza myarch con tu nombre de host, usa tabuladores para alinear):

127.0.0.1   localhost
::1         localhost
127.0.1.1   myarch.localdomain  myarch
ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime
# Crea un enlace simbólico para la zona horaria de Madrid
ls /usr/share/zoneinfo/
# Verifica las zonas horarias disponibles y actualiza el comando anterior si es necesario

13. Configuración del reloj de hardware

hwclock --systohc
# Sincroniza la hora del sistema con el reloj de hardware

14. Configuración de la localización

vim /etc/locale.gen
# Edita /etc/locale.gen, descomenta las líneas en_US.UTF-8 UTF-8 y es_ES.UTF-8 UTF-8
# Este paso define el idioma y el conjunto de caracteres para el software
locale-gen
# Genera las localizaciones
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# Configura locale.conf. No se recomienda usar localizaciones en español en tty, ya que pueden causar problemas de codificación

15. Establecer la contraseña de root

passwd root
# La entrada de la contraseña es invisible, ¡no es un problema del teclado! 😄

16. Instalar microcódigo

pacman -S intel-ucode # Para procesadores Intel
pacman -S amd-ucode # Para procesadores AMD

17. Instalar el cargador de arranque Grub

pacman -S grub efibootmgr os-prober
# grub es el cargador de arranque, efibootmgr escribe las entradas de arranque en NVRAM, os-prober permite detectar Windows 10
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
# Instala grub en la partición EFI
vim /etc/default/grub
# Edita los parámetros de arranque
# Cambia "loglevel=3 quiet" a "loglevel=5 nowatchdog"
# Añade al final del archivo: GRUB_DISABLE_OS_PROBER=false
  • Elimina el parámetro quiet de la línea GRUB_CMDLINE_LINUX_DEFAULT.
  • Cambia loglevel de 3 a 5 para facilitar la depuración de errores.
  • Añade nowatchdog para mejorar la velocidad de encendido/apagado.
  • Habilita os-prober para detectar Windows 10.
grub-mkconfig -o /boot/grub/grub.cfg
# Genera el archivo de configuración de grub
# Si se detecta Windows 10, aparecerá una línea como: “Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi done”
# Si Windows está en otro disco, no aparecerá. Una vez en el sistema, vuelve a montar y ejecuta este comando nuevamente.

Consulta todos los parámetros en Arch Wiki.

18. Finalizar la instalación

exit # Regresa al entorno de instalación
umount -R /mnt # Desmonta las nuevas particiones
reboot # Reinicia

Tras reiniciar, inicia sesión con la cuenta root.

systemctl enable --now NetworkManager # Habilita y ejecuta el servicio NetworkManager
ping www.google.com # Prueba la conectividad de red

Para Wi-Fi:

nmcli dev wifi list # Lista las redes Wi-Fi cercanas
nmcli dev wifi connect "SSID de Wi-Fi" password "contraseña de red" # Conéctate a una red Wi-Fi específica
nmtui
# Personalmente, prefiero nmtui, ¡es más amigable! 😄
pacman -S fastfetch
fastfetch
# Instala fastfetch para verificar la información del sistema
# ¡Llega el momento clásico de neofetch! 😄
shutdown 0
shutdown -h now
poweroff
# Los tres comandos apagan el sistema. 😄 Apaga correctamente, ya que las políticas de energía aún no están configuradas.

¡Felicidades 🎉

¡Has instalado con éxito una versión mínima de Arch Linux sin interfaz gráfica!

La guía para la interfaz gráfica se incluirá en la próxima actualización, pero como siempre: ¡lee el manual!

Esta guía es solo un punto de partida, con la esperanza de inspirar a más entusiastas a unirse a la comunidad tecnológica.


Enlaces relacionados: NBTCA