Slackware 15: Instalación
La distribución GNU/Linux más antigua aún vigente, con un enfoque en la estabilidad y el minimalismo. En esta pequeña guía explico cómo instalar Slackware 15 en una unidad de almacenamiento encriptada para equipos con BIOS y UEFI.
---
## Particiones
Identifica la unidad de almacenamiento:
```bash
fdisk -l
```
Un comando útil para limpiar la unidad de forma segura (opcional):
```bash
dd if=/dev/zero of=/dev/sda
```
Limpia la tabla de particiones:
```bash
gdisk /dev/sda
Enter 'x' to enable the extended options.
Enter 'z' to zap (wipe out) the existing GPT.
Answer 'Y' to confirm.
```
Particiones para UEFI (GPT):
| Partición | Tamaño | Punto de montaje | Tipo |
| --------- | ------ | ---------------- | ---- |
| `/dev/sda1` | 1 GB | `/boot` | Linux filesystem |
| `/dev/sda2` | 512 MB | `/boot/efi` | EFI System |
| `/dev/sda3` | 100% | `LVM` | Linux LVM |
Particiones para BIOS (GPT):
| Partición | Tamaño | Punto de montaje | Tipo |
| --------- | ------ | ---------------- | ---- |
| `/dev/sda1` | 1 MiB | `N/A` | BIOS boot |
| `/dev/sda2` | 1 GB | `/boot` | Linux filesystem |
| `/dev/sda3` | 100% | `LVM` | Linux LVM |
Crea las particiones:
```bash
cfdisk /dev/sda
```
Verifica con:
```bash
lsblk -f /dev/sda
```
## LUKS y LVM
Cifra la partición que contendrá las particiones LVM:
```bash
cryptsetup -s 512 -y luksFormat /dev/sda3
```
Desbloquea a la partición cifrada y asigna un nombre:
```bash
cryptsetup luksOpen /dev/sda3 slackcrypt
```
Crea un volumen físico para LVM:
```bash
pvcreate /dev/mapper/slackcrypt
```
Para verificar si se ha creado:
```bash
pvdisplay
```
Crea un grupo de volúmenes en el volumen físico y asigna un nombre:
```bash
vgcreate cryptvg /dev/mapper/slackcrypt
```
Para verificar si se ha creado:
```bash
vgdisplay
```
Volúmenes lógicos o particiones virtuales:
| Volumen | Punto de montaje |
| ------- | ---------------- |
| swap | SWAP |
| root | / |
Recomendación para swap:
| Tamaño en RAM | Tamaño en swap |
| ------------- | -------------- |
| Menos de 2 GB | 2 veces al tamaño en RAM |
| 2 GB y menor a 8 GB | Igual al tamaño en RAM |
| 8 GB y menor a 64 GB | La mitad del tamaño en RAM |
| Más de 64 GB | Al menos 4 GB |
Comando útil para consultar la memoria RAM disponible:
```bash
free -g
```
Crea los volúmenes lógicos:
```bash
lvcreate -L 4G -n swap cryptvg
lvcreate -l 100%FREE -n root cryptvg
```
Para confirmar si se han creado correctamente:
```bash
lvdisplay
```
Escanea y asegura activar los volúmenes:
```bash
vgscan --mknodes
vgchange -ay
```
Formatea la partición swap:
```bash
mkswap /dev/cryptvg/swap
```
Formatea la partición únicamente para EFI:
```bash
mkfs.fat -F32 /dev/sda2
```
## Instalación
Inicia el asistente de instalación:
```bash
setup
```
1. Selecciona el idioma del teclado.
2. Formatea las particiones y asigna los puntos de montaje.
3. Selecciona el origen de los paquetes de Slackware que serán instalados (desde el USB).
4. Selecciona los grupos de paquetes a instalar.
Instalación mínima:
```text
[*] A - Base del sistema operativo
[*] AP - Aplicaciones que no requieren X
[*] D - Herramientas de desarrollo de programas
[ ] E - GNU Emacs
[ ] F - Preguntas frecuentes, tutoriales y otras documentaciones
[ ] K - Código fuente del kernel linux
[ ] KDE - El entorno de escritorio KDE Plasma
[*] L - Bibliotecas del sistema
[*] N - Programas de conexión
[ ] T - Programas para TeX
[ ] TCL - Lenguajes de scripting Tcl/tk
[*] X - El sistema de ventanas X
[*] XAP - Aplicaciones que requieren X
[ ] XFCE - El entorno de escritorio XFCE
[ ] Y - Juegos
```
5. Selecciona el modo de instalación `terse` o `full`.
6. Omite la creación de una USB de arranque.
7. Omite instalar LILO.
8. Selecciona la configuración del mouse `ps2` (de mayor compatibilidad).
9. Habilita `gpm` para copiar y pegar en la terminal (sin entorno gráfico).
10. Continúa la configuración de la red.
11. Ingresa un nombre para el equipo.
12. Ingresa el nombre de dominio `localdomain` para el equipo.
13. Omite la configuración de red por VLAN.
14. Selecciona y confirma `NetworkManager` para configurar la red.
15. Selecciona los servicios que se iniciarán durante el arranque.
Servicios mínimos:
```text
[ ] rc.atalk - Servidor de archivos/impresión Netatalk Appletalk
[ ] rc.atd - Programa tareas para ejecutarse más tarde
[ ] rc.bind - Servidor BIND (Sistema de Nombres de Dominio)
[*] rc.crond - Programador de tareas basado en tiempo
[*] rc.cups - Servidor de impresión CUPS
[ ] rc.dnsmasq - Servidor DHCP/DNS dnsmasq
[ ] rc.dovecot - Servidor IMAP/POP3 Dovecot
[*] rc.fuse - Biblioteca de sistema de archivos en espacio de usuario
[ ] rc.httpd - Servidor web Apache
[ ] rc.inetd - Demonio Inetd de BSD
[ ] rc.ip_forward - Reenvío activo de paquetes IP
[*] rc.messagebus - Bus de mensajes del sistema D-Bus
[ ] rc.mysqld - Servidor de base de datos MySQL
[ ] rc.nfsd - Demonio del Sistema de Archivos en Red (NFS)
[*] rc.ntpd - Servidor de tiempo en red
[ ] rc.openldap - Servidor OpenLDAP
[ ] rc.openvpn - Demonio OpenVPN
[ ] rc.pcmcia - Servicios de tarjetas PCMCIA/Cardbus
[ ] rc.postfix - Servidor de correo Postfix
[ ] rc.rpc - Demonio RPC (NFS)
[ ] rc.samba - Servidor de archivos/impresión Samba
[ ] rc.saslauthd - Servidor de autenticación SASL
[ ] rc.smartd - Demonio de monitoreo SMART
[ ] rc.snmpd - Demonio Net-SNMP
[*] rc.syslog - Utilidades de registro del sistema Linux
[ ] rc.sshd - Demonio SSHD (shell seguro)
```
16. Omite la configuración de la fuente de la terminal.
17. Selecciona `NO` para configurar la hora del equipo.
18. Selecciona `vim` como editor de textos por defecto.
19. Cancela la selección de un gestor de ventanas.
20. Establece una contraseña para el usuario `root`.
21. Finaliza la instalación presionando `EXIT`.
22. Selecciona `Shell` para regresar a la terminal.
## Idioma
Ingresa al sistema instalado:
```bash
chroot /mnt /bin/bash
```
Crea un script `/etc/profile.d/keymap.sh` para definir el idioma del teclado:
```bash
#!/bin/sh
export KEYMAP=la-latin1
```
Establece permisos de ejecución y cárgalo:
```bash
chmod 755 /etc/profile.d/keymap.sh
. /etc/profile.d/keymap.sh
```
Modifica el idioma del sistema en `/etc/profile.d/lang.sh`:
```bash
export LANG=es_MX.UTF-8
```
## Imagen del kernel
Genera una imagen del kernel que soporte LUKS y LVM:
```bash
eval "$(/usr/share/mkinitrd/mkinitrd_command_generator.sh -i)"
```
## Gestor de arranque
Para instalarlo en UEFI:
```bash
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
```
Para instalarlo en BIOS:
```bash
grub-install --target=i386-pc /dev/sda
```
Genera la configuración de GRUB:
```bash
grub-mkconfig -o /boot/grub/grub.cfg
```
## Reiniciar
```bash
exit
umount -R /mnt
swapoff -a
vgchange -an cryptvg
cryptsetup luksClose slackcrypt
reboot
```
## Iniciar sesión
```bash
login: root
password: ********
```
## Modo recuperación
Si necesitas reparar tu Slackware por alguna razón, puedes ingresar desde el USB booteable:
```bash
cryptsetup luksOpen /dev/sda3 slackcrypt
vgscan --mknodes
vgchange -ay
lvscan
mount /dev/cryptvg/root /mnt
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
```
Para UEFI:
```bash
mount /dev/sda1 /mnt/boot
mount /dev/sda2 /mnt/boot/efi
```
Para BIOS:
```bash
mount /dev/sda2 /mnt/boot
```
Por último:
```bash
chroot /mnt /bin/bash
```
## Conclusión
Slackware se ha convertido en mi distribución GNU/Linux principal desde hace varios años y estos son los pasos que sigo en cada nueva instalación. Desde este punto tenemos un sistema base listo para ser configurado e instalar las herramientas que necesitamos.
## Referencias
* <https://docs.slackware.com/slackbook:start>
* <https://docs.slackware.com/slackware:install>
* <https://wiki.archlinux.org/title/Partitioning>
* <https://docs.redhat.com/es/documentation/red_hat_enterprise_linux/8/html/performing_a_standard_rhel_installation/recommended-partitioning-scheme_partitioning-reference>
* <https://wiki.archlinux.org/title/EFI_system_partition>
* <https://www.slackwiki.com/LVM/Luks_Encryption>
* <https://blog.aktsbot.in/slackware-install-lvm-luks.html>
* <https://blog.edie.io/2019/06/16/slackware-lvm-over-luks/>
* <https://wiki.archlinux.org/title/Dm-crypt/Encrypting_an_entire_system#LVM_on_LUKS>
* <https://mirrors.slackware.com/slackware/slackware64-15.0/README_CRYPT.TXT>
* <https://mirrors.slackware.com/slackware/slackware64-15.0/README_LVM.TXT>
* <https://wiki.hyperbola.info/doku.php?id=es:manual:encrypted_installation>
* <https://mirrors.slackware.com/slackware/slackware64-15.0/README_UEFI.TXT>
* <http://www.slackware.com/install/softwaresets.php>
* <https://gist.github.com/ruario/7c2742d6d1dd2f89575c>
* <https://docs.slackware.com/start?id=howtos:slackware_admin:how_to_chroot_from_media>
* <https://docs.slackware.com/slackware:localization>
* <https://docs.slackware.com/howtos:slackware_admin:set_up_grub_as_boot_loader_on_uefi_based_hardware>
* <https://docs.slackware.com/howtos:slackware_admin:grub_on_first_install>
* <https://wiki.archlinux.org/title/GRUB>
Etiquetas: slackware, linux