NixOS Nómada mediante un USB
Ante la necesidad de usar mi equipo personal fuera de casa encuentro los siguientes problemas:
- Mi portátil: En casos de viajes largos es perfecto, pero si el viaje es corto o si el espacio es un factor limitante no lo hace viable.
- Teléfono: Me puede sacar de un apuro usando termux y wireguard, conectándome a mi servidor y usando ssh, pero no me permite usar programas ni nada del estilo.
- Portátil de empresa: Al igual que mi teléfono, puedo usar el Subsistema de Linux para Windows (WSL) para conectarme vía ssh a mis servidores y además de eso me permite usar algunas utilidades en el terminal de Linux si necesito de hacer algo en local, pero, no puedo correr aplicaciones nativas de Linux, no tengo mi escritorio personalizado y no puedo hacer una partición del disco y hacer un dual boot del sistema por las políticas de la empresa.
Por estos problemas propongo una solución inspirada en el sistema operativo NomadBSD, que propone un sistema operativo cuyo almacenamiento y sistema están enteramente contenidos dentro de un USB, pero en lugar de usar un sistema BSD, lo quiero basar en un sistema basado en NixOS, que permite describir nuestro sistema de forma declarativa, lo que permite replicar nuestro entorno de forma sencilla. En este post muestro mi solución a un sistema completamente portátil contenido enteramente en un USB.
Instalación
Material
En primer lugar se necesitará:
- Un ordenador/portátil con al menos 2 puertos USB disponibles.
- Un USB de al menos 32GB de almacenamiento y de rápida lectura y escritura. Este USB contendrá nuestra información, es por ello que recomiendo que sea de una marca reconocida como Kingston.
- Un segundo USB de por lo menos 4GB de almacenamiento.
Instalación
Se deberá configurar la imagen de instalación de NixOS en el segundo USB con una utilidad como rufus o raspi-imager. Pondremos ambos USBs en el ordenador y se reiniciará el equipo configurando desde la BIOS el inicio al USB de instalación.
Cuando comience el proceso de instalación de NixOS se deberá seleccionar el USB de al menos 32 GB de almacenamiento como disco duro y se deberá seleccionar que el disco esté encriptado, esto para evitar que ante una pérdida del USB nuestros datos estén expuestos.
Utilización
Para la utilización de nuestro nuevo sistema deberemos acceder al mismo conectando nuestro USB a cualquier equipo y seleccionando en el mismo el inicio desde el USB.
En este nuevo sistema recomiendo instalar algún programa que permita la sincronización con nuestros otros equipos y servidores, como Synchting e instalar el cliente como Wireguard para acceder a nuestras redes locales. En mi repositorio de Github se tiene mi configuración actual de mi sistema nómada usando NixOS
Este equipo tendrá la potencia de procesamiento y de almacenamiento volátil del equipo al que se conecte, lo que lo hará más o menos rápido en función del equipo al que se le conecte. El único factor que será constante será la velocidad del disco duro, es decir, la velocidad de escritura y lectura de nuestro USB1
Conclusión
Con este nuevo equipo tendremos una solución muy portátil, encriptada y reproducible de nuestro equipo, para trabajar con la comodidad de nuestro escritorio personalizado en cualquier lugar.
El único problema que he encontrado con esta configuración es que el sistema es completamente dependiente de tener otro ordenador/portátil para poder funcionar. Esto no me resulta un problema ya que siempre transporto mi portátil en viajes, pero podría suponer uno para el lector si no es su caso o si ya porta su propio portátil con su distribución personalizada. Además de esto, la lectura y escritura siempre estará limitada por la velocidad del USB que, hasta el momento de escribir este artículo, es muy inferior a la velocidad de un disco duro o SSD2.
| Dispositivo | Linux | Portabilidad | Encriptación | Independencia 3 | Todo en uno 4 |
|---|---|---|---|---|---|
| Portatil Personal | ✓ | ✖ | ✓ | ✓ | ✓ |
| Teléfono | ✖ | ✓ | ✖ | ✖ | ✓ |
| Portatil de Empresa | ✖ | ✖ | ✖ | ✖ | ✓ |
NixOS en USB | ✓ | ✓ | ✓ | ✓ | ✖ |
La velocidad también se podrá ver limitada por el puerto USB utilizado, siempre merece la pena usar un puerto USB 3.2 antes que alguno de una versión anterior, por las mejoras de velocidad que supone usar un puerto frente a otro. ↩︎
: ¡Ojo! Considera que el desgaste también es un factor relevante, los USBs no están preparados para el número de escrituras para el que si está preparado un disco duro. Si esto es una solución a la que se le va a dar un gran uso recomendaría usar una SSD portátil. De todas formas, si alguien se encuentra en una situación similar a la mía, en la que necesita acceder a “su ordenador” para hacer un apaño o una prueba rápida, considero que esta solución es más que apropiada. ↩︎
Relacionado a si se necesita un segundo equipo externo, como un servidor, para poder ser útil/una solución práctica. ↩︎
¿Precisa de un segundo equipo físico presente con nosotros o puede funcionar por si solo? ↩︎