<- Atrás

Guía de instalación de archlinux

Bootear el entorno y preparar el sistema

En caso de tener un teclado con una disposición distinta a us:

1
2
localectl list-keymaps # Listar keymaps disponibles
loadkeys mi-keymap     # Cargar un keymap

Particionar discos

1
2
3
4
# listar los discos:
# fdisk -l

fdisk /dev/sdx

La configuración mínima para UEFI son dos particiones:

  • Partición que será montada en /boot de al menos 1G
  • Partición que será montada en / de al menos 23G

NOTA: En el resto de la guía, se asume que las particiones

  • sdx1 es la partición EFI que será montada en /boot
  • sdx2 será montada en /

Encripción (opcional)

1
2
cryptsetup luksFormat /dev/sdx2
cryptsetup open /dev/sdx2 cryptlvm

Necesitaremos los UUIDs de la partición encriptada y de cryptlvm para más adelante, es buena idea guardarlos:

1
2
# El primero es crypto_LUKS y el segundo es la partición root desencriptada
lsblk -f | grep 'crypto_LUKS\|cryptlvm' | awk '{print $4}'

Formato

1
2
mkfs.ext4 /dev/sdx2
mkfs.fat -F 32 /dev/sdx1

Montar

1
2
mount /dev/sdx2 /mnt
# mount /dev/mapper/cryptlvm /mnt # <- En caso de usar encripción
1
2
mkdir -p /mnt/boot
mount /dev/sdx1 /mnt/boot/

Pacstrap

1
2
3
4
5
6
pacstrap -K /mnt base linux linux-firmware grub sudo networkmanager efibootmgr

# No olvidar el editor de texto, por ejemplo vim o nano
pacstrap -K /mnt vim

# pacstrap -K /mnt cryptsetup lvm2 # <- En caso de usar encripción

Configurar el sistema

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

A partir de ahora, estaremos dentro del sistema que estamos instalando, con el comando:

1
arch-chroot /mnt

Locale

1
2
# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
ln -sf /usr/share/zoneinfo/America/Costa_Rica /etc/localtime

Luego:

1
hwclock --systohc

Editar /etc/locale.gen y descomentar las locales requeridas, por ejemplo: #es_CR.UTF-8 UTF-8

Luego, generarlas con:

1
locale-gen

Crear el archivo /etc/locale.conf y configurar el lenguaje agregando la línea (o cualquier otra locale de preferencia):

1
LANG=es_CR.UTF-8

Redes

Definir el hostname en /etc/hostname, escribiendo por ejemplo: arch-pc o el hostname deseado.

Configurar /etc/hosts, una configuración mínima de ejemplo:

127.0.0.1       localhost
127.0.1.1       arch-pc # (el nombre definido en /etc/hostname)
::1             localhost
1
systemctl enable NetworkManager

Usuarios

1
2
useradd -G -m wheel mi-usuario # utilizar el nombre de preferencia
passwd mi-usuario              # definir la contraseña del usuario

Ejecutar visudo y descomentar la línea para habilitar a miembros de “wheel” usar “sudo”, (o en su defecto, agregarla manualmente):

# %wheel ALL=(ALL:ALL) ALL

(Opcional) Comprobar que se puede utilizar el comando sudo cuando se usa el nuevo usuario:

1
2
3
su - mi-usuario
sudo whoami # debería imprimir: root
exit # volver al usuario root

(Opcional) Bloquear usuario root por seguridad:

1
passwd -l # correr como usuario root

Initramfs

(Opcional, en caso de habilitar encripción) Editar el archivo en /etc/mkinitcpio.conf y agregar las siguientes HOOKS:

1
2
# Asegurarse que estén en este orden y antes de "filesystems" y "fsck"
HOOKS=(... encrypt lvm2 ...)

Crear un entorno de disco ram inicial

1
mkinitcpio -P

Bootloader

Asumiento que se utiliza GRUB:

(Opcional, en caso de usar encripción) Modificar esta línea en /etc/default/grub:

1
2
3
4
...
# cryptdevice es crypto_LUKS y root es la partición root desencriptada
GRUB_CMDLINE_LINUX_DEFAULT="... cryptdevice=UUID=00000000-0000-0000-0000-000000000000:cryptlvm root=UUID=00000000-0000-0000-0000-000000000000"
...

Generar configuración de GRUB

1
2
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg

Finalizar

Salir de chroot y reiniciar

1
2
exit
reboot

(Opcional) Post-install

Algunas opciones extras en caso de requerir audio, drivers de nvidia, o un entorno de escritorio.

Audio

Suponiendo un sistema con pipewire (el servidor multimedia de preferencia actualmente)

1
pacman -S pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber

Nvidia

1
pacman -S nvidia nvidia-utils lib32-nvidia-utils

Hasta la fecha actual (2024-12-27), es necesario agregar estas opciones para utilizar un chip de nvidia junto con el driver propietario.

Modificar esta línea en /etc/default/grub

1
2
3
...
GRUB_CMDLINE_LINUX_DEFAULT="... nvidia-drm.modeset=1 nvidia_drm.fbdev=0"
...

Agregar/Modificar esta línea en /etc/mkinitcpio.conf

1
2
3
...
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
...

GUI

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# KDE Plasma
pacman -S plasma-meta    # Instalar todo el entorno
pacman -S plasma-desktop # Instalar la base solamente

# GNOME
pacman -S gnome gnome-extra # Instalar todo el entorno
pacman -S gnome             # Instalar la base solamente

# i3
pacman -S i3-wm

# Qtile
pacman -S qtile

Siguiente: Usando darktable-cli para minimizar el tiempo invertido editando fotos ->