===== Instalar Arch de manera cifrada con tabla de particiones MBR o GPT (NO UEFI/LVM) =====
En esta guía rápida se muestra la manera de instalar Arch usando el modo legacy de la BIOS, es decir sin UEFI, aunque actualmente ha funcionado sin tener que activar el modo legacy / desactivar UEFI. Las instrucciones son prácticamente las mismas que si se tuviera UEFI activado, pero esta guía se basa en una instalación sin UEFI y con Secure Boot desactivado. Para más información sobre instalaciones de Arch cifradas, por ejemplo sobre volúmenes LVM, consultar estos enlaces.
* [[https://wiki.archlinux.org/index.php/Installation_guide_(Espa%C3%B1ol)]]
* [[https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system_(Espa%C3%B1ol)]]
**Instalación de Arch cifrada con MBT / GPT** (NO UEFI).
Para el ejemplo se presupone un disco /dev/sda para instalar Arch y el sistema de ficheros XFS, pero como es lógico puede usarse cualquier otro.
Si se va a usar un dispositivo extraible para instalar Arch, se debe usar "dd" para pasar la imagen al usb.
dd bs=4M if=/ruta/a/archlinux-XXX.iso of=/dev/sdX && sync
Asegurarse de que el sistema se ha arrancado en modo BIOS.
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Configurar teclado.
loadkeys es
Configurar la red para tener acceso a internet (Wifi / Ethernet) durante la instalación.
# Conexión Wifi mediante iwd (actualmente la forma más estándar). Se muestran las interfaces, se escanea, se muestra el resultado y se conecta al SSID deseado. La propia aplicación pedirá las credenciales y ejecutará dhcp para configurar la ip de la interfaz.
# IWD Documentación: https://wiki.archlinux.org/title/Iwd
iwctl
[iwd]# device list
[iwd]# station device scan
[iwd]# station device get-networks
[iwd]# station device connect SSID
# Conexión Ethernet.
ip addr # Conocer el nombre de las interfaces de red.
ip link set XXX up # Levantar el dispositivo.
## IP Mediante DHCP (No necesario si se usa wifi mediante iwctl).
dhcpcd # Solicitar una IP por dhcp.
## IP Configurada manualmente.
ip route add 192.168.1.44/24 via 192.168.1.1 dev XXX # Configurar IP y Gateway manualmente. No olvidar incluir los DNS en el fichero /etc/resolv.conf
Borrar la actual tabla de particiones y reiniciar (recomendado).
dd bs=1k count=1 if=/dev/zero of=/dev/sda
partprobe
reboot
Particionar el disco de instalación con la herramienta que se quiera, por ejemplo cfdisk y seleccionar el tipo de particiones que se quiera utilizar, MBR o GPT.
**MBR**:
- sda1 ext4 1G
- sda2 xfs El Resto de espacio o lo que queramos. Es donde se instalará el sistema.
**GPT**:
- sda1 BIOS BOT 8M
- sda2 ext4 1G
- sda3 xfs El Resto de espacio o lo que queramos. Es donde se instalará el sistema.
Ejemplo de configuración con GPT.
Device Start End Sectors Size Type
/dev/sda1 2048 18431 16384 8M BIOS boot
/dev/sda2 18432 2115583 2097152 1G Linux filesystem
/dev/sda3 2115584 83886046 81770463 39G Linux filesystem
Ciframos la partición donde instalaremos el sistema operativo, es decir, la partición correspondiente a / y la montamos.
# Con -c se puede cambiar el sistema de cifrado, por ejemplo a "camellia".
cryptsetup -y -v luksFormat /dev/sdaX
cryptsetup open /dev/sdaX cryptroot
mkfs -t xfs /dev/mapper/cryptroot
mount -t xfs /dev/mapper/cryptroot /mnt
NOTA: Depende de como sea el particionado se deberá instalar el sistema en sda2 (MBR) o sda3 (GPT), sustituir la X de "sdaX" por la partición que corresponda en cada caso.
Preparamos en Ext4 la partición para /boot y la montamos. Antiguamente no se podía usar xfs en la partición de boot, pero actualmente no es ningún problema. Realmente ya no es necesario crear una partición extra con otro sistema de ficheros para /boot en instalaciones sin cifrado.
mkfs -t ext4 /dev/sdaX
mkdir /mnt/boot
mount -t ext4 /dev/sdaX /mnt/boot
Una vez montado tanto la raíz del sistema como la partición de arranque, instalamos Arch y nos enjaulamos dentro para que los comandos que ejecutemos puedan escribir en el disco.
pacstrap /mnt base linux linux-firmware
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
Editar el fichero /etc/mkinitcpio.conf y agregar en HOOKS "encrypt".
HOOKS=(base udev autodetect modconf encrypt block filesystems keyboard fsck)
Ejecutar los siguientes comandos para generar la imagen initram con soporte para le cifrado.
pacman -S intel-ucode # Instalar actualizaciones de microcódigo antes de la crear la imagen initram.
pacman -S xfsprogs # Instalar soporte para xfs si se usa XFS en la partición donde está boot.
mkinitcpio -p linux # Crea la imagen initramfs, se debe estar atentos a posibles errores.
Instalar Grub.
pacman -Syy
pacman -S grub
Editar el fichero /etc/default/grub.
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdaX:cryptroot"
Si existen otros sistemas operativos en el equipo, por ejemplo otros Linux o Windows, es recomendable instalar el paquete "os-prober" para facilitar a Grub el encontrar otros sistemas instalados. Para ello os-prober debe estar instalado y permitido en la configuración de Grub.
Fichero /etc/default/grub.
GRUB_DISABLE_OS_PROBER=false
Configurar el cargador de arranque.
grub-install --target=i386-pc /dev/sda
# Si os-prober está instalado y su uso permitido, encontrará el resto de sistemas operativos instalados.
grub-mkconfig -o /boot/grub/grub.cfg
**Retocamos un poco más el sistema antes de reiniciarlo**.
Zona horaria y sincronización de la hora automática.
pacman -S ntp
systemctl ntpd enable && systemctl ntpd start
unlink /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime
hwclock --systohc # Actualiza el reloj de la bios.
Editamos el fichero /etc/locale.gen y descomentamos las locales para nuestro lenguaje, p.e "es_ES.UTF-8".
locale-gen
Agregar al archivo /etc/locale.conf el valor de la variable "LANG".
LANG=es_ES.UTF-8
Crear el fichero /etc/vconsole.conf
KEYMAP=es
Cambiar la contraseña de cifrado es posible con este comando.
cryptsetup luksChangeKey /dev/sdaX
**Wifi y escritorio** (Elección personal para laptops Dell): Wifi mediante iwd (iwctl) / Escritorio XFCE con XDM como display manager / Tarjeta gráfica Intel.
pacman -S dialog xf86-video-intel xfce4 xfce4-battery-plugin xscreensaver xorg-server xorg-xinit binutils xorg-fonts-encodings noto-fonts-cjk noto-fonts-emoji fakeroot mesa xorg-xdm alsa-utils alsa-plugins unzip zip unrar gvfs pkgfile dhcpcd iwd pulseaudio noto-fonts-emoji
systemctl enable xdm # El fichero $HOME/.xsession debe tener permisos 700
systemctl enable iwd # Se configura el demonio iwd en el arranque (necesario para usar y guardar automáticamente la configuración wireless tras la instalación).
NOTA: El paquete "noto-fonts-emoji" es recomendado para poder visualizar emoticonos, por ejemplo en la terminal.
Se debe crear previamente un usuario en el sistema con directorio /home para iniciar una sesión de escritorio.
useradd -m -s /bin/bash usuario1
Para arrancar el escritorio Xfce en el arranque, simplemente crear en el directorio del usuario que utilizará el entorno gráfico el fichero .xsession (permisos 700 o xdm no arrancará) con el siguiente contenido
startxfce4
# En caso de querer utilizar ssh-agent (https://www.busindre.com/ssh-agent_disponible_al_inicio_del_sistema).
# ssh-agent startxfce4
Ya solo queda reiniciar para probar los cambios realizados. Para el acceso a internet wireless (mediante [[https://wiki.archlinux.org/title/Iwd|iwd]]), la primera vez que reiniciemos el sistema tras la instalación, será necesario conectar a nuestro punto de acceso como lo hicimos en la instalación mediante los comandos iwctl. Esto es necesario porque la primera vez se ejecuto desde la imagen de instalación y no bajo el sistema que se estaba instalando. Esta configuración quedará guardada en /var/lib/iwd/XXX.type y será usada al iniciar el sistema.