===== 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.