Correo contacto@iltec.cl

Instalación ARCHLINUX vía Netboot (BIOS/GPT – LVM on LUKS)

Archlinux Netboot BIOS/GPT LVM on LUKS [Portada]

Hola gente, les traigo una pequeña guía con esta extraña formula de instalación de esta popular distribución del sistema GNU/Linux espero les sirva a más de alguien.

Últimamente tuve que formatear un par de maquinas con esta misma formula, y ya llevo un par de años usándola, así que decidí tomar nota de los pasos y hacer esta guía de instalación.

Sugerencias

Lo primero que les debo advertir es que este tipo de cosas con varias configuraciones y varios pasos nunca se deben hacer con poco tiempo, si no estas acostumbrado o si no estás familiarizado con esto es muy probable que cometas muchos errores, necesitas un par de horas, es decir, necesitas hacer esto con tiempo.

También deben realizar un respaldo de todos sus archivos importantes que no quieran perder. Si en el disco duro que planean iniciar esta instalación tenían su antiguo sistema y les falló, hay mil formas de recuperar los datos, les recomiendo recuperarlos antes de seguir con esto (próximamente publicaré la manera en que lo hago yo), claro si es que los datos valen la pena. Por otro lado, si su antiguo sistema no les falló, y solo quieren renovar la instalación o cambiar al sistema que presento en esta guía, de igual manera, piensen dos veces los datos que tienen en el disco, esta guía tiene en mente el formato del disco, respalden configuraciones de programas, copias de seguridad de claves, albumes de fotos, documentos, etc, la mayoría de las personas cuentan con alguna nube, instituciones, empresas, organizaciones a las cuales pertenecen y tiene acceso a algún espacio para archivos en dichos lugares, hay miles de programas para crear sincronizaciones programadas, si temen a la falta de privacidad, también hay varias formas de encriptar archivos, o si tienen otros dispositivos bajo su poder, pueden hacer sincronización del tipo p2p o algún tipo de sincronización dentro de su red local (publicaré mas adelante acerca de sincronización, respaldo y encriptado de archivos), y bueno nunca está de más tener un dispositivo de almacenamiento usb como u pendrive o un disco duro portátil, solo piensen bien en lo que pueden perder al formatear su computadora y vean si vale la pena hacer un respaldo.

Por ultimo leer bien las instrucciones, si bien explico con detalle algunas cosas, el usuario primerizo o con poca experiencia en algunas configuraciones podría llegar a tener problemas. También tener la wiki del sistema a mano para leer en caso de no entender algo (siempre leer las páginas en inglés, las de español a veces están desactualizadas).

Bueno gente en resumen, necesitan tiempo, un respaldo si es que lo desean, y una buena comprensión lectora, también sugiero una buena lista de reproducción de música y un par de tazas de café.

¿Por que…?

Usaremos una instalación tipo netboot desde algún dispositivo de almacenamiento usb (pendrive), que al momento de iniciar, éste nos dará la opción de escoger entre varios mirrors o ubicaciones de internet desde donde descargar la versión con los programas mas reciente de nuestro querido Archlinux, y así poder iniciar el proceso de instalación.

Personalmente me sirve muchísimo un usb con inicio de red porque primero, teniendo ese usb podre siempre instalar la versión mas reciente de Archlinux, segundo, no pierdo tiempo descargando e instalando todo en algún usb cada vez que lo quiera utilizar, y tercero, no pesa casi nada, y hace tiempo atrás me estafaron en una feria con unos pendrives piratas, la famosa técnica de falsear el espacio, los compré de 8 GB, pero realmente se podían usar 120MB (lo descubrí mediante un proceso que compartiré en alguna próxima publicación), no sabía en que usarlos, así que el netboot calza como anillo al dedo.

La publicación esta enfocada para computadoras con inicio de BIOS, o Legacy para maquinas contemporáneas, esto porque aun trabajo con estas computadoras mas antiguas e instalarle un sistema GNU/Linux les da una segunda oportunidad para estar vigentes, también porque a la fecha de esta publicación en Chile, las computadoras están carismas y cabe la casualidad que reviví varios notebooks y torres con estos sistemas.

Usaré tambien una tabla de particiones GPT en un disco solido, por ser la tabla vigente el día de hoy, tambien el sistema, no así el boteo, estará encriptado, asi que nadie sin la contraseña podra tener acceso a nuestros archivos, sobre esto manejaremos los distintos puntos de montaje como lo son el root, el home y la memoria swap con volumenes logicos, y estos a su vez, exepto la swap, con formato btrfs, el cual tiene sus pro y sus contras, pero si tienen dudas, pueden usar el confiable ext4.

La gran ventaja el día de hoy en la instalación de archlinux es el script (en desarrollo) archinstall, similar al que tenia Manjaro (derivado de archlinux) llamado architect que ya no se desarrolla, que simplifica varias configuraciones que no son mas que editar texto, copiar y pegar, algo tedioso, que nos quitaria varios minutos de nuestras vidas, mucho mas si no se manejan bien con la consola.

Por último, ¿por que Archlinux? Personalmente uso archlinux desde que lo probé, es una de las distribuciones GNU/Linux madres, la instalación del sistema es, lo que tu quieres lo instalas, es decir, no se instala nada que tu no especifiques, no es como Ubuntu, Fedora, Linix Mint, Manjaro, que son mucho mas fáciles su instalación, y dejan todo preparado para el usuario según las preferencias de la distribución para que cada sistema funcione, me refiero a que instalando Archlinux tendrás un sistema ligero y a la medida, según tus propias especificaciones, obviamente como cualquier sistema, mientras mas cosas le instales y se ejecuten en su uso diario, mas va a pesar el sistema. Además se aprende mucho sobre el sistema GNU/Linux gracias a la wiki que explica los distintos procedimientos de instalación y configuración, y lo mejor es que es una distro rolling release, es decir, solo hay un Archlinux, no hay una version 2020, 2019, ni una versión Lite, ni una versión para músicos, nada de eso gente, tu debes especificar lo que quieres instalar y despues debes configurarlo, en resumen, vas a tener un sistema a tu medida, y va a ser tan ligero según tu especifiques.

Nada mas que decir, toda la información recopilada está en la mítica wiki de Archlinux, yo la junté toda para este caso, y la ordené según mi experiencia, manos a la obra gente, y que les funcione a la primera.

1. Configurar un usb para el Netboot

Usaremos el método del archivo ipxe.lkrn, el cual podemos descargar desde aquí Arch Linux Netboot, si tenemos grub en nuestro sistema actual debemos instalar syslinux para tener los archivos suficientes para crear el pendrive de inicio.

# sudo pacman -S syslinux

Con nuestro pendrive conectado ejecutamos lsblk -l para conocer su ubicación:

# lsblk -l

Supongamos que está ubicado en /dev/sdc, montamos el pndrive en alguna carpeta vacía, en este ejemplo es la carpeta en la raiz mnt, creamos los directorios necesarios y copiamos el archivo descargado, de ser necesario lo renombramos.

# mount /dev/sdc /mnt
# mkdir -p /mnt/boot/syslinux
# cp ipxe.xxxxxxxxxxxx.lkrn /mnt/boot/ipxe.lkrn

Creamos el archivo de configuración para syslinux, en este ejemplo usamos el software nano, editor de texto para terminal.

nano /mnt/boot/syslinux/syslinux.cfg

Texto:

DEFAULT arch_netboot
   SAY Booting Arch over the network.
LABEL arch_netboot
   KERNEL /boot/ipxe.lkrn

En nano presionamos ctrl+o para guardar y ctrl+x para salir. Procedemos a desmontar la unidad (ojo: no la retiramos de la computadora), e instalamos syslinux en ella:

# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdc
# syslinux --directory /boot/syslinux/ --install /dev/sdc1

Para otros tipos de netboot, ver aquí Netboot – Archwiki

2. Bootear usb y lanzar archlinux

Configuramos nuestro equipo para iniciar desde un usb, deben recordar que ésta publicación es para sistemas con BIOS, si usa UEFI es probable que puedas cambiar a inicio de tipo BIOS o Legacy dice también, ojo que para usar UEFI es ligeramente distinto el procedimiento, tendrá otra publicación en este sitio.

Conectamos el usb y esperamos que se ejecute, seleccionamos un mirror, o ubicación de la descarga, obviamente mientras mas cerca de su ubicación mas rápido deberia ser la descarga, yo escogí las de Chile, el servidor de la UFRO eaeaeae.

Esperamos la descarga y que se inicie el sistema para la instalación.

3. Configurar distribución del teclado

Una vez ejecutado el sistema, debemos configurar el teclado, ya que por defecto se ejecuta otra distribución y en el proceso debemos teclear constantemente caracteres especiales, para hispano hablantes con la distribucion latinoamericana del teclado es la-latin1.

# loadkeys la-latin1

Si usas otro tipo de teclado aquí hay mas información acerca de la configuración: Installation Guide, Set keyboar layout – Archwiki

4. Conectarse a internet

OJO: Se da por hecho que están conectados por cable si usamos el netboot.

Nos conectamos a internet, pueden conectarse directamente por cable es mas rápido o conectarse a la wifi vía iwctl, si es que su tarjeta es compatible con los driver ejecutados.

Si aun así necesitas conectarte a wifi durante el proceso de instalación, aquí hay un manual de uso de iwctl: Iwd, iwctl – Archwiki

5. Actualizar el reloj del sistema

Si es una computadora antigua que tenían guardada, es muy posible que la pila del reloj interno se haya agotado y deban cambiarla, y ademas que tengan una hora errónea, eso afecta en las descargas porque los certificados de seguridad de los sitios web tiene fecha de vida útil (https):

# timedatectl set-ntp true

6. Preparar el disco

Particionar

Iniciaremos la preparación del disco, primero borraremos todo (si, es mejor que respalden lo que no quieran perder), usaremos la utilidad gdisk (para crear tabla GPT), recuerden que haremos un sistema LVM-on-LUKS, volumenes lógicos sobre partición encriptada, y ademas nuestro disco tiene una tabla de particiones GPT, en un sistema BIOS o Legacy.

  • Identificar nuestro disco (usualmente y esta guía será /dev/sda)

    # lsblk -l

  • Ejecutar gdisk en nuestro disco

    # gdisk /dev/sdX

  • Usamos la opción z para destruir todo.

Ojo: Se recomienda hacer una limpieza total, sin la limpieza es posible recuperar archivos borrados con anterioridad, esto es opcional, mas información aquí: Securely wipe disk – Archwiki.

  • Ingresar nuevamente a gdisk, crear partición para /boot, le damos default al primer sector, y al ultimo escribimos +200M, después default nuevamente par el tipo de sistema de archivos.

  • Crear partición contenedora a encriptar, e este caso será la totalidad del disco que queda a parte de /boot, default a todo.

  • Importante este paso, se debe crear partición de booteo necesaria para sistema de inicio bios con disco particionado gpt para GRUB (más información aquí GRUB, GUID Partition Table (GPT) specific instructions – Archwiki, cuando es la ultima partición usará el espacio en los primero sectores vacíos que quedan fuera por la alineación del espacio en las particiones comunes que ya creamos, le damos default a los sectores, y en el sistema de archivos escribimos ef02.

  • Le damos w para guardar los cambios y salimos de gdisk, la tabla debería verse así:

/dev/sda1 -> Boot
/dev/sda2 -> Contenedor encriptado
/dev/sda3-> boot necesario para bios/gpt en GRUB

Encriptado de partición contenedora

Usaremos encriptado de sistema de archivos con LUKS:

  • encriptar contenedor: cryptsetup luksFormat /dev/sda2

  • Abrir contenedor, llamaremos cryptlvm cryptsetup open /dev/sda2 cryptlvm

Quedara en /dev/mapper/cryptlvm.

Creación de volumenes lógicos

  • Preparar contenedor para volúmenes lógicos, el grupo se llamará en este ejemplo MyVolGroup:
pvcreate /dev/mapper/cryptlvm
vgcreate MyVolGroup /dev/mapper/cryptlvm
  • Crear volúmenes lógicos para puntos de montaje, haremos uno para la memoria swap, otro para el directorio raíz del sistema, y otro para la carpeta de los usuarios, dejé 50GiB para la raíz, porque personalmente siempre instalo muchas cosas, entre juegos y aplicaciones y 50GiB me andan bien, con 30 que es lo que se recomienda siempre me queda corto.
lvcreate -L 8G MyVolGroup -n swap
lvcreate -L 50G MyVolGroup -n root
lvcreate -l 100%FREE MyVolGroup -n home

Queda así:

/dev/MyVolGroup/swap
/dev/MyVolGroup/root
/dev/MyVolGroup/home

Formato y montaje de volúmenes

  • Formatear volúmenes lógicos con nuestros sistemas de archivos preferidos, yo usaré btrfs, le ponen la etiqueta que quieran.
mkfs.btrfs -L pcroot /dev/coralvm/root
mkfs.btrfs -L pchome /dev/coralvm/home
mkswap /dev/coralvm/swap
  • Ahora montamos los volúmenes en /mnt, para iniciar el proceso de instalación.
mount /dev/MyVolGroup/root /mnt
mkdir /mnt/home
mount /dev/MyVolGroup/home /mnt/home
swapon /dev/MyVolGroup/swap

Preparar partición /boot

Recordemos que esta partición está fuera del contenedor de encriptado, ojo que no es la partición especial que hicimos en /dev/sda3, está fuera del encriptado, de otra manera tendríamos que ingresar 2 veces la contraseña de encriptado, una para el boteo y otra para el inicio del sistema.

mkfs.ext4 /dev/sda1
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot

Antes de seguir, si quieres mas información de proceso que acabamos de realizar, visita esta pagina de donde me guíe para este tipo de instalación: dm-crypt/Encrypting an entire system, LVM on LUKS – Archlinux.

8. Escribir tabla de particiones, fstab:

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

9. Ejecutar archinstall (Varias configuraciones)

Ahora ejecutaremos el script archinstall, que nos guiará en la configuración:

  • Seleccionar ubicación para idioma.
  • Mirrors para instalaciones (al igual que en el Netboot).
  • Particiones y formato, en esta opción deben escoger la selección que les dice usar la que ya montaron (la que acabamos de hacer), no lo hacemos desde archinstall, porque hasta la fecha no permite este tipo de configuración que propongo, por eso lo hicimos antes.
  • Escoger el hostname, el nombre de su computadora.
  • Contraseña root, la que usaremos para ejecutar comandos como Super Usuario.
  • Usuarios y contraseñas, es posible dotar a los usuarios como sudoers, que ejecuten ordenes como super usuario, sin ser el usuario root.
  • Escoger kernel, personalmente recomiendo linux-lts, linux avanza muy rápido y aveces eh tenido problemas de compatibilidad con aplicaciones que debo compilar porque no están en los repositorios oficiales.
  • Entorno de escritorio, nos pregunta si queremos interfaz grafica, terminal, etc.., si queremos grafica nos da a escoger que entorno queremos, personalmente uso siempre xfce.
  • Software extra para instalar escribimos nano y lvm2, uno para el editor de texto y el otro necesario para la configuración de mkinitcpio, que haremos en el paso siguiente.
  • Luego de instalar todo nos pregunta por entrar a nuestro sistema como chroot, le damos que si, para los toques finales del sistema ecriptado.

10. Entrar en chroot

Si por algún motivo no le dimos que si en el ultimo paso de archinstall, no importa basta con ejecutar arch-chroot /mnt

11. Configurar mkinitcpio

Configuramos el archivo /etc/mkinitcpio.conf, para añadir las opciones de encriptado y volúmenes lógicos, recordar haber instalado lvm2 y nano para editar el archivo, si no basta con ejecutar: pacman -S lvm2 nano, abrimos el archivo de configuración:

nano /etc/mkinitcpio.conf

Buscamos la línea que dice HOOKS, nos aseguramos de que se vea así:

HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt lvm2 filesystems fsck)

Es probable que falte añadir keyboard, keymap, encrypt y lvm2, guardamos los cambios ctrl+o y salimos ctrl+x en nano. Ahora ejecutamos la siguiente orden para guardar los cambios para mkinitcpio:

mkinitcpio -P

12. Instalar y configurar GRUB

Llegamos a la parte crucial, necesitamos obtener el UUID del disco contenedor encriptado, que es una cadena alfanumérica bastante larga como para equivocarse a escribirla, así que anótenla bien en alguna parte, después deben ingresarla en el archivo de configuración GRUB:

  • Instalar GRUB:

grub-install --target=i386-pc /dev/sda

  • Obtener uuid de /dev/sda2:

lsblk -o NAME,UUID

  • Editar /etc/default/grub:

nano /etc/default/grub

y añadimos en la línea que dice GRUB_CMDLINE_LINUX=""

cryptdevice=UUID=device-UUID:cryptlvm root=/dev/MyVolGroup/root

Donde device-UUID es la UUID que obtuvimos anteriormente de nuestro contenedor encriptado /dev/sda2, es importantísimo no equivocarse al escribirlo, de escribirlo mal no se ejecutara el proceso de des-encriptado y fallará el inicio.

Debería quedar algo así:

GRUB_CMDLINE_LINUX="cryptdevice=UUID=a1b2c3d4-a1b2-c3d4-e5f6-a1b2c3d4e5f6:cryptlvm root=/dev/MyVolGroup/root"

  • Guardamos la configuración:

grub-mkconfig -o /boot/grub/grub.cfg

13. Reiniciar y ya esta lo básico listo para usar

14. En caso de fallar

En caso de que tengan todo listo, y le erraron a la configuración final, deberán iniciar nuevamente el pendrive de instalación:

  • Configurar teclado.
  • Des-encriptar partición contenedora.
  • Montar volúmenes lógicos.
  • Entrar al sistema con arch-chroot /mnt`.
  • Verificar los archivos de configuración.

Si aún tienes problemas no dudes en escribirme, y buscar mas información en la wiki que es la fuente de esta pequeña guía.

Un afectuoso saludo, mucho éxito gente.

,

Agregar un comentario

Tu dirección de correo electrónico no será publicada. Los campos requeridos están marcados *