Saltar al contenido principal

Instalación con BTRFS, encriptación, ZRAM y otros

1. Configuraciones

  • Arch Linux install medium (x86_64, UEFI)
  • Aumentar tamaño de fuente: setfont ter-122b o setfont ter-132n
  • Opcional. Verificar que sea UEFI cat /sys/firmware/efi/fw_platform_size
  • Opcional. Ver distribución de teclados disponible: localectl list-keymaps
  • Opcional. Cambiar distribución de teclado (temporal): loadkeys la-latin1
  • Opcional. Cambiar idioma del instalador:
nano /etc/locale.gen     # Descomentar el idioma local
locale-gen # Actualizar configuracion
export LANG=es_GT.UTF-8 # Definir el idioma descomentado

WiFi

Opción 1

iwctl         # Ingresar a la configuración de red
station list # Ver tarjetas de red disponibles
station <name> get-networks # Ver redes disponibles
station <name> connect "network name" # Conectar a la red
exit

Opción 2

iwctl                # Entrar a la configuracion de red
device list # Muestra las tarjetas de red
<mode> <name> scan # Elegir dispositivo y escaner las redes disponibles
<mode> <name> get-networks # Mostrar las redes escaneadas
<mode> <name> connect "network name" # Elegir red
<mode> <name> show # Información de la conección
exit

Opcional. Utilidades

ip link          # Ver adaptadores
ip a | ip addr # Ver ip
ping [-c 5] google.com # Probar conexión

2. Discos

# Opción 1
fdisk -l

# Opción 2
lsblk

Comando útil para ver discos disponibles, particiones creadas, particiones montadas y también para confirmar cuál formatear si es necesario.

Formatear disco

wipefs -a /dev/<disk>     # Formatear disco

Ejemplo 1. BTRFS y encriptación con Lux

Crear particiones

  • Ejemplo con comandos: gdisk
  • Crea y formatea las particiones
gdisk /dev/<disk> # Ingresar al disco a particionar
o # Crear nueva GUID tabla de particiones (GPT) (similar a formatear)

# Se crean dos particiones, una EFI y otra default
n # Crear/agregar particion
>>> # Partition number: por defecto
>>> # First sector: por defecto
>>> # Last sector: "+1G" para EFI, Enter para la particion principal
>>> # Hex code or GUID: "ef00" para EFI, Enter para default 8300

w # Aplicar cambios

Comandos útiles de gdisk

?   # Ver ayuda
p # Ver tabla actual de particiones
l # Ver tipos de particiones

Encriptar disco con Lux

cryptsetup luksFormat /dev/<root-disk-part>
  • Encriptar la partición principal/raíz con Lux
  • La contraseña debería ser diferente de root o cualquier otro usuario

Abrir disco encriptado y crear subvolúmenes BTRFS

cryptsetup luksOpen /dev/<root-disk-part> <name>

Formatear particiones

mkfs.btrfs /dev/mapper/<name>
  • <name> es el mismo que se definió al Abrir disco encriptado

Montar/activar particiones

mount /dev/mapper/<name> /mnt

cd /mnt # Ingresar a /mnt
btrfs subvolume create @ # Crear subvolumen Raiz
btrfs subvolume create @home # Crear subvolumen para usuarios
cd - # Salir de /mnt

umount /mnt
mount -o noatime,ssd,compress=zstd,space_cache=v2,discard=async,subvol=@ /dev/mapper/<name> /mnt

mkdir /mnt/home
mount -o noatime,ssd,compress=zstd,space_cache=v2,discard=async,subvol=@home /dev/mapper/<name> /mnt/home
mkfs.fat -F 32 /dev/<efi-disk-part>  # Formatear particion EFI
mkdir /mnt/boot
mount /dev/<efi-disk-part> /mnt/boot

Ejemplo 2. Particionado tradicional

Crear particiones

  • Ejemplo con TUI: cfdisk
cfdisk /dev/<disk>

Opcional en VM. Select label type -> gpt

  • Nueva -> 300M -> Tipo -> Sistema EFI
  • Nueva -> 8G -> Tipo -> Linux swap (Swap es opcional si se utiliza ZRAM)
  • Nueva -> Resto -> Tipo -> Sistema de ficheros de Linux

Confirmar particionado: Escribir Salir: Salir

Formatear particiones

mkfs.ext4 /dev/<disk-part-root>      # Raiz
mkswap /dev/<disk-part-swap> # Swap
mkfs.fat -F 32 /dev/<disk-part-efi> # EFI

Montar/activar particiones

mount /dev/<disk-part-root> /mnt    # Montar la raiz primero

mkdir -p /mnt/boot # Crear directorio para EFI
mount /dev/<disk-part-efi> /mnt/boot # Montar EFI
mount --mkdir /dev/<disk-part-efi> /mnt/boot # Lo anterior en un solo paso

swapon /dev/<disk-part-swap> # Activar swap

Instalar/montar el sistema base

pacstrap -K /mnt base #linux linux-firmware networkmanager

Ocasionalmente suelen ocurrir errores al descargar los paquetes, solo es necesario reintentar hasta descargar todos los paquetes.

Configurar las particiones para el arranque

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

Notas

  • Busca qué particiones están montadas en /mnt (el nuevo sistema instalado).
  • Genera automáticamente el archivo /etc/fstab, que le indica al sistema qué particiones debe montar al arrancar.
  • Con -U usa los UUIDs de las particiones, lo que es más seguro que usar nombres como /dev/sdaX.

Verificarlo con:

# Durante la instalación
cat /mnt/etc/fstab

# Con el sistema ya instalado
cat /etc/fstab

Cambiar al nuevo sistema

arch-chroot /mnt

2. Configuraciones básicas

Opcional. Habilitar NetworkManager

  • Verificar conexión a internet ping google.com
  • Instalarlo si no se copió junto al sistema base en los pasos anteriores
systemctl enable NetworkManager

Zona horaria

# Zona horaria
ln -sf /usr/share/zoneinfo/America/Guatemala /etc/localtime

# Reloj
hwclock --systohc
  • Para ver las zonas disponibles se puede presionar Tab después de /zoneinfo/America

Idioma

pacman -S [nano | micro]    # Para editar archivos
# Buscar y descomentar el idioma local
nano /etc/locale.gen
#es_GT.UTF-8 UTF-8
#en_US.UTF-8 UTF-8

# Recargar configuracion
locale-gen

# Cambiar idioma
echo "LANG=es_GT.UTF-8" >> /etc/locale.conf
echo "KEYMAP=us" >> /etc/vconsole.conf

Nombre del host

echo "arch" >> /etc/hostname
nano /etc/hosts

127.0.1.1 arch.localdomain arch

Contraseña del root

passwd

Nuevo usuario

# Crear usuario con home, grupo wheel y shell bash
useradd -m -G wheel -s /bin/bash <user>
passwd <user>

# Instalar sudo
pacman -S sudo

# Editor temporal
export EDITOR=nano

# Editar sudoers de forma segura
visudo

# Desocmentar la siguiente linea
%wheel ALL=(ALL:ALL) ALL

# Opcional. Confirmar que el usuario puede usar sudo
sudo whoami # Debe mostrar 'root'

Notas

# Ver shell por defecto que se asigna a nuevos usuarios
cat /etc/default/useradd

# Verificar los grupos de un usuario
groups <user>

Sobre useradd

  • -m → crea el home (/home/<user>).
  • -G wheel → agrega al grupo wheel (permite sudo si se configura).
  • -s /bin/bash → define la shell por defecto.

Sobre sudo

  • visudo abre /etc/sudoers con control de errores de sintaxis (evita romper sudo).

Habilitar sudo, método con grupo wheel (recomendado)

  • %wheel ALL=(ALL:ALL) ALL → cualquier usuario en wheel puede usar sudo.
  • Permite agregar múltiples usuarios sin editar sudoers de nuevo.

Habilitar sudo, método con usuario directo

  • <user> ALL=(ALL:ALL) ALL → solo ese usuario puede usar sudo.
  • Si se agrega otro usuario, es necesario añadir otra línea manualmente.
  • Riesgo de errores al editar directamente /etc/sudoers.

Ejemplo con edición directa

# Crear usuario
useradd -m <user>
passwd <user>

# Instalaciones
pacman -S sudo

# Editar archivo sudoers (NO recomendado sin visudo)
nano /etc/sudoers

# Desocmentar la siguiente linea
root ALL=(ALL:ALL) ALL
<user> ALL=(ALL:ALL) ALL

Ejemplo con /etc/sudoers.d/

# Crear usuario con home, grupo wheel y shell bash
useradd -m -G wheel -s /bin/bash <user>
passwd <user>

# Crear el directorio /etc/sudoers.d si no existe, con permisos seguros
mkdir -m 755 /etc/sudoers.d

# Crear un archivo con la regla de sudo para el usuario
echo "<user> ALL=(ALL) ALL" > /etc/sudoers.d/<user>

# Ajustar permisos (0440 obligatorio)
chmod 0440 /etc/sudoers.d/<user>

# Instalar sudo
pacman -S sudo

Reflector

pacman -S reflector #rsync

# Opcional. Ver nombre de países
reflector --list-countries

sudo reflector -c "United States" -a 12 --sort rate --fastest 10 --save /etc/pacman.d/mirrorlist
  • -c "United States" → filtra mirrors solo de Estados Unidos.
  • -a 12 → solo usa mirrors actualizados en las últimas 12 horas.
  • --sort rate → ordena por velocidad de descarga estimada.
  • --save /etc/pacman.d/mirrorlist → guarda la lista generada como la lista principal de pacman.

Microcódigo de CPU

sudo pacman -S [intel-ucode | amd-ucode]

Cargador de arranque

Systemd-boot y BTRFS

Grub

# Instalar GRUB y herramientas EFI
pacman -S grub efibootmgr

# Instalar GRUB en la partición EFI
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ArchLinux
# Opcional: añadir --removable, crea un bootloader alternativo en caso de problemas de detección en algunas placas madre.

# Generar archivo de configuración de GRUB
grub-mkconfig -o /boot/grub/grub.cfg

Reiniciar sistema

exit                 # Salir de chroot
umount -R /mnt # Desmontar todas las particiones
swapoff -a # Desactivar swap si existe
poweroff # Apagar y retirar USB

Nota

  • Packages 168 (pacman)
  • Memory 344.67 MiB
sudo pacman -S base-devel linux linux-firmware linux-headers btrfs-progs mtools networkmanager network-manager-applet openssh git iptables-nft ipset firewalld acpid
There are 3 providers available for initramfs
1. mkinitcpio (core)
2. booster (extra)
3. dracut (extra)
man-db
man-pages
textinfo
bluez bluez-utils
pipewire
alsa-utils
pipeware-pulse
pipeware-jack
sof-firmware
ttf-firacode-nerd
kitty
firefox