Archivo de la etiqueta: freebsd

Instalando i3wm en FreeBSD

Para muchos el entorno de escritorio es una pieza fundamental y quizá imprescindible en su maquinaria. Para otros, todo lo contrario, amantes del minimalismo, buscan vivir lo más posible dentro de la consola. En la amplia gama intermedia de estos dos extremos estamos quienes al mismo tiempo que nos sentimos plenamente cómodos trabajando en la consola, no sólo para tareas administrativas, sino que también acostumbramos tener algún reproductor de música, gestor de archivos, lector de correo y hasta navegadores web en una interfaz de línea de comandos (CLI), también tenemos una amplísima batería de aplicaciones gráficas (GUI), ya sea por gusto, comodidad, facilidad de interacción, versatilidad.

Habiendo terminado la instalación de FreeBSD en mi equipo, empecé a preguntarme qué entorno le daría vida en formas y colores a mi reciente sistema aún en temprana fase TTY. Y así me voy dando cuenta de que puedo andar sin un entorno de escritorio del tipo “robusto y completo”. Un entorno gráfico minimalista parece ser la mejor opción esta vez.

Para disfrutar de una interfaz gráfica en FreeBSD es necesario instalar el servidor Xorg y decirle al sistema, mediante el archivo /etc/rc.conf que inicie los servicios dbus y hal al arranque.

$ pkg install xorg hal dbus

$ Xorg -configure

$ echo "hald_enable="YES"" >> /etc/rc.conf

$ echo "dbus_enable="YES"" >> /etc/rc.conf

$ reboot

Al iniciar nuevamente, podré arrancar las Xs simplemente con:

$ startx

Todo funciona a la perfección. Pero las Xs así de fábrica son feas, poco intuitivas y con una practicidad casi nula. Insatisfecho pues con esto, me viene a la mente aquel gestor de ventanas en mosaico, ligero, ampliamente configurable y tan amado por los usuarios con corazón de hacker y entrañas de geek. Por si fuera poco, funciona de manera autónoma, lo que me resulta muy conveniente. Hablo ni más ni menos que de i3wm.

$ pkg install i3 i3lock i3status dmenu

$ echo "/usr/local/bin/i3" >> /usr/home/usuario/.xinitrc

$ chown usuario /usr/home/usuario/.xinitrc

$ reboot

Una última cuestión a considerar es que parece haber un problema al momento de crear el archivo de configuración. Por esto, lo recomendable es copiar el archivo que viene por defecto (/usr/local/etc/i3/config) y luego editarlo a nuestro gusto.

$ cp /usr/local/etc/i3/config ~/.i3/

Ahora, al iniciar sesión en modo TTY, sólo debo escribir startx para iniciar una sesión gráfica con i3wm.

Anuncios

Crónicas de un arranque dual o de cómo FreeBSD convive pacíficamente junto a Manjaro en mi disco duro

Todos los que hemos recorrido los caminos del software libre hemos desarrollado un fuerte interés por FreeBSD en más de una ocasión. En mi experiencia, he tenido oportunidad de echarle mano en el ámbito laboral, pero para uso personal siempre me sentí más cómodo con las distribuciones GNU/Linux.

Sin embargo, me doy cuenta que esta tendencia está cambiando. Por un lado, systemd ya no es una opción para mí y ciertamente veo más complicado cada día andar por el mundillo “linuxero” evitando el contacto con el daemonio del sistema, a pesar de las múltiples y excelentes opciones que hay en la vía (tema que da lugar quizá a otra entrada).

Por otra parte, la mayoría de nosotros cuenta con abundante espacio en disco duro y a menudo andamos buscando alternativas para llenar esas particiones con sistemas que llamen nuestra curiosidad por conocer y analizar, prácticamente de laboratorio por decirlo de alguna manera. Por mi parte, no me considero un distrohopper y tampoco soy de virtualizar mis instalaciones, pero soy de los que gusta tener una o varias particiones del disco listas para recibir un nuevo huésped con quien divertirme o aprender un rato.

Actualmente mi máquina de escritorio juega con Manjaro OpenRC y KDE Plasma como entorno de escritorio (versión 5.8.1 al momento de escribir la entrada) y mi intención es que siga siendo el sistema operativo principal por un tiempo más. El planteo entonces es poder instalar FreeBSD en una de las particiones disponibles y correr un arranque dual utilizando el actual Grub de Manjaro para escoger entre sistemas operativos.

Lo que sigue no es un tutorial de cómo instalar FreeBSD, el proceso en sí es bastante intuitivo y comprensible, además está amplia y perfectamente descrito en la Documentación oficial del Proyecto. Lo que sigue es más bien la crónica de mi experiencia instalando FreeBSD junto a mi actual distribución GNU/Linux.

Preparando la instalación

Es algo obvio, pero por si alguien se pregunta, lo primero fue preparar un dispositivo de arranque con la imagen de FreeBSD que descargué desde aquí y que luego pasé a un pendrive así:

$ sudo dd if=/ruta_de_descarga/FreeBSD-11.0-RELEASE-xxx-memstick.img of=/dev/sdc
1433746+0 registros leídos
1433746+0 registros escritos
734077952 bytes (734 MB, 700 MiB) copied, 268,342 s, 2,7 MB/s

Algo verdaderamente notorio es la multiplicidad de opciones que ofrece FreeBSD en cuanto a arquitecturas, imágenes listas para importar a máquinas virtuales y tarjetas SD para dispositivos embebidos.

Ahora bien, antes de iniciar desde el pendrive, hay que echar un ojo a las particiones en el disco (/dev/sda) para tenerlas bien identificadas.

$ lsblk /dev/sda -o NAME,SIZE,MOUNTPOINT
NAME       SIZE       MOUNTPOINT
sda        465,8G
├─sda4     1,9G       [SWAP]
├─sda2     19,1G
├─sda3     425,8G     /home
└─sda1     19,1G      /

Como puede verse, tengo un disco con una disposición bastante estándar, es decir, una tabla MBR con 4 particiones primarias: el directorio raíz (/) un directorio de usuario por separado (/home) una partición de intercambio (swap) y una partición libre (/dev/sda2). No cabe duda que FreeBSD irá a parar a /dev/sda2 y obviamente no quiero tocar los preciados datos en /home ni mucho menos dañar la actual instalación de Manjaro (/), así que voy tomando nota.

Para facilitar todavía más las cosas, lo que personalmente prefiero es eliminar la partición /dev/sda2 para que quede como espacio sin asignar o sin utilizar. De esta manera, la tarea de configurar esa partición la haré desde el instalador de FreeBSD.

Ahora sí está todo listo para iniciar desde el dispositivo USB. Una vez que arranca dará a escoger entre iniciar el instalador , ejecutar una consola de comandos o una sesión en vivo del sistema . Más por capricho que por experiencia, me inclino a ejecutar la shell  para preparar la partición manualmente y posteriormente ejecutar el instalador.

When finished type 'exit' to return the installer.

#

Creando y configurando las particiones

Para gestionar las particiones en FreeBSD contamos con una gran herramienta: gpart. Algo a tener en cuenta al momento de trabajar con el disco es la notación que usa FreeBSD para nombrar los dispositivos: donde en GNU/Linux teníamos /dev/sda, aquí se llama ada0; la partición /dev/sda1 ahora es ada0s1 y así con el resto.

# gpart show -p ada0
ada0        MBR            (468.8G)
ada0s1      linux-data     (19.1G)
- free -                   (20G)
ada0s3      linux-data     (428.8G)
ada0s4      linux-swap     (1.9G)

El primer paso a partir de aquí es crear la partición ada0s2 utilizando el espacio libre que dejó la ya eliminada /dev/sda2.

# gpart add -t freebsd -i 2 ada0
ada0s2 added
Antes de continuar, una pequeña reseña del comando:
gpart add: agrega una nueva partición a la tabla ya existente
-t freebsd: el tipo de partición (freebsd en este caso)
-i 2 ada0: indicarle a gpart que la partición se creará con el índice número 2 en el dispositivo ada0. Si no especificamos un tamaño, lo asignará automáticamente

Al mirar nuevamente la tabla, la cosa va tomando forma.

# gpart show -p ada0
ada0        MBR            (468.8G)
ada0s1      linux-data     (19.1G)
ada0s1      freebsd        (20G)
ada0s3      linux-data     (428.8G)
ada0s4      linux-swap     (1.9G)

A continuación, debe crearse el sistema de archivos en la partición (freebsd-ufs) con el siguiente comando:

# newfs ada0s2
/dev/ada0s2: 20000.0MB (40960000 sectors) block size 32768, fragment size 4096
using 32 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
super-block backups (for fsck_ffs -b #) at:
...
Un detalle a tener en cuenta es que BSD discrimina entre particiones primarias y lógicas llamando a estas segundas slices. Por ejemplo, la partición primaria /dev/ada0s2 (del tipo BSD) tendrá el slice /dev/ada0s2a (freebsd-ufs o simplemente ufs).

Teniendo ya lista la partición, regreso al instalador escribiendo # exit y realizo los primeros pasos de configuración del sistema: distribución del teclado, hostname, componentes opcionales) hasta llegar al editor de particiones.

A partir de este punto me encuentro ante dos alternativas: seleccionar Manual y configurar los puntos de montaje desde allí o continuar ensuciándome las manos desde la Shell. Como me gusta complicarme la vida a fuerza de comandos, lo que hago es irme de nuevo a la consola.

Primero voy a generar el archivo /tmp/bsdinstall_etc/fstab.

# echo "/dev/ada0s2a / ufs rw 1 1" > /tmp/bsdinstall_etc/fstab

Luego, montar el nuevo sistema de archivos y salir.

# mount -t ufs /dev/ada0s2a /mnt

# exit

El instalador comenzará la copia de archivos, pedirá configurar la red, el usuario root, la zona horaria, el reloj y demás. Bastará aquí con seguir los pasos. Al terminar, salgo y reinicio.

Agregando FreeBSD al Grub de GNU/Linux

Como es natural, al reiniciar el Grub no mostrará FreeBSD entre las opciones de arranque. Normalmente, en Manjaro bastaría con ejecutar $ sudo update-grub, pero en este caso lo que debe hacerse es crear la entrada de forma manual y regenerar el Grub.

$ sudo nano /etc/grub.d/40_custom

/etc/grub.d/40_custom

!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD" {
set root=(hd0,2)
chainloader +1
}
Añadimos la entrada manual indicando que el directorio raíz se encuentra en /dev/sda2 (hd0,2).
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
Generando un fichero de configuración de grub...
...
Encontrado unknown Linux distribution en /dev/sda2
...
hecho

¡Y listo! Reinicio y veo a FreeBSD flamante entre las opciones del Grub, lista para convivir pacíficamente junto a Manjaro en mi disco. Restará instalar y configurar un entorno gráfico y las aplicaciones que uso a diario, pero esa es toda una historia aparte.