Arch Linux VM

Como primera aproximación al mundo de linux se pueden ejecutar diferentes distribuciones de Linux en una máquina virtual, para esto podemos utilizar VirtualBox.
El método descrito en esta documentación, utiliza la imagen de instalación oficial de archlinux.org, para garantizar que tendremos las últimas versiones del sistema base. Además es prácticamente el mismo que seguiríamos para realizar la instalación directamente en nuestro ordenador o en un pendrive.
Instalación
- VirtualBox
- UTM
Instalar Virtualbox
Lo primero es instalar virtualbox, se puede bajar en su página, hay que seleccionar el archivo dependiendo del sistema operativo de nuestro ordenador.
Si la instalación es correcta, al ejecutar el programa deberíamos ver una ventana similar a esta:

A partir de ahora, siempre que hablemos del sistema operativo OS host estaremos hablando del sistema operativo que se ejecuta nativamente en nuestro ordenador (por ejemplo windows) y cuando mencionemos el OS guest estaremos hablando del que se ejecuta en la máquina virtual.
Podemos ejecutar todo tipo de sistemas operativos como guests dentro de VirtualBox, en nuestro caso nos interesa instalar una distribución de Linux, podemos empezar desde cero y hacer una instalación nueva, o utilizar una imagen expresamente hecha para ejecutarse dentro de virtualbox, existen muchas imágenes disponibles, de una gran variedad de distribuciones en la página de virtualbox o en otras páginas como osboxes.
El manual de VirtualBox en PDF
Instalando UTM
Como los procesadores Apple de la serie M (M1/M4) están basados en la arquitectura ARM, para ejecutar una distribución de Linux que esté compilada para procesadores compatibles con x86 necesitamos utilizar un emulador como QEMU.
También podemos optar por utilizar una distribución que esté compilada para procesadores ARM, debian por ejemplo, mantiene muy buen soporte para esta arquitectura. En el caso de Arch Linux, que es la distribución que utilizaremos en clase, el soporte para ARM se mantiene en la distro ArchlinuxARM, sin embargo utilizarla para crear una máquina virtual en VirtualBox es bastante complicado, por lo cual se recomienda optar por emular el procesador y utilizar la versión x86 de Arch Linux.
Configurar QEMU en MacOS para ejecutar correctamente ArchLinux, es una tarea que no está dentro de los objetivos de esta clase, por lo tanto se recomienda utilizar un front end como UTM.

UTM is a full featured system emulator and virtual machine host for iOS and macOS. It is based off of QEMU. In short, it allows you to run Windows, Linux, and more on your Mac, iPhone, and iPad
Under the hood of UTM is QEMU, a decades old, free and open source emulation software that is widely used and actively maintained. While QEMU is powerful, it can be difficult to set up and configure with its plethora of command line options and flags.
Lo primero es instalarlo, se puede descargar desde su página e instalarlo como cualquier aplicación en MacOS, puedes encontrar más información en su documentación.
La documentación sobre UTM fue posible gracias al trabajo, investigación y experimentación que nos compartió Carlos Romero, ¡Muchas gracias!
Imagen de Arch Linux
Para efectos de esta clase, nos interesa hacer una instalación nueva y la distribución que utilizaremos será Arch Linux. En la página del wiki de Arch Linux están las instrucciones para realizar este procedimiento. Lo primero que tenemos que hacer es bajar la imagen de instalación que nos permite bootear un sistema Arch linux mínimo para realizar el procedimiento de instalación..
En la página de downloads está la información y los links para la última versión disponible. La imagen se puede bajar utilizando un torrent (la opción más rápida y la recomendada) o desde un servidor HTTP.
Se recomienda revisar la autenticidad de la imagen bajada con el archivo de signature, puedes encontrar las intrucciones de cómo hacerlo aquí.
Creando una máquina virtual
- VirtualBox
- UTM
Una vez abierto el software de VirtualBox, creamos una nueva máquina virtual donde utilizaremos la imagen que acabamos de bajar.

Le ponemos un nombre a nuestra máquina virtual, en ISO image seleccionamos el archivo ISO que acabamos de bajar, Linux como Type y Arch Linux (64 bit) como Version.

Le asignamos memoria RAM y número de CPU's a nuestro ordenador virtual:

Creamos un disco duro virtual del tamaño deseado, 8GB deberían ser suficientes, pero si tenemos espacio es mejor más.

Después veremos una ventana similar a esta:

Si todo nos salió bien deberíamos tener la máquina virtual lista para arrancar, solo hace falta picar el botón Start para comenzar la instalación.

Una vez instalado UTM, hay que iniciarlo, y pulsar en el botón Create New Virtual Machine, es muy importante, pulsar Emular en vez de Virtualizar y seleccionar Linux. Si seleccionamos la opción Virtualizar, el software no nos permite cambiar la arquitectura, que por defecto será ARM, con lo cual nuestra imagen de ArchLinux compilada para x86 no podrá ejecutarse. En nuestro caso debemos seleccionar la arquitectura x86_64.
Procedemos a configurar las especificaciones de nuestra máquina virtual en función de las especificaciones y recursos disponibles en nuestro ordenador Mac. Para un buen funcionamiento de la VM se recomienda un máximo de 8 cores y 8gb de RAM. En las demás opciones, en principio, se puede dejar las que se nos ofrecen por defecto. Aquí puedes ver las opciones que se han probado previamente (haz click para verla en grande):

Si al finalizar la instalación de archinstall, después de pulsar NO cuando pregunta por la post-instalación, aparece un error de Python en color rojo, se debe desmontar el disco ejecutando el comando: umount /dev/sda1.
Y proceder a instalar de nuevo, volviendo a ejecutar archinstall como la primera vez.
Arch live system
Una vez arranquemos nuestro sistema de instalación deberíamos ver la ventana de arranque del boot loader, la primera opción que se nos ofrece por defecto es la que necesitamos para realizar una instalación normal.
Cuando hacemos click dentro de la ventana de virtualbox, nuestro mouse y teclado son capturados, para liberarlos podemos usar la tecla Control del lado derecho de nuestro teclado.

Una vez que termine el proceso de boot.
Deberíamos estar en una consola virtual como usuario root. Ahora podemos iniciar la instalación y configuración:
Teclado
Para poder operar correctamente en el ambiente de instalación es bueno configurar el idioma y distribución de nuestro teclado, por defecto está configurado en inglés para cambiarlo a español usamos el comando:
loadkeys es
Internet
Para poder realizar la instalación necesitamos estar conectados a internet, para verificar que la conexión funciones podemos utilizar el comando:
ping archlinux.org
Si recibimos respuesta (como la imagen anterior) es que todo va bien! Información sobre como configurar la red aqui
VirtualBox/Install Arch Linux as a guest en el arch wiki.
Script de instalación (archinstall)
Una manera de automatizar la instalación es utilizando un script que realiza los pasos necesrios por nosotros, basándose en un archivo de configuración o guiándonos a lo largo del proceso.
Just another guided/automated Arch Linux installer with a twist. The installer also doubles as a python library to install Arch Linux and manage services, packages, and other things inside the installed system (Usually from a live medium).
El script de archinstall está incluido en el ambiente de instalación oficial, así que para utilizarlo sólo tenemos que ejecutar el comando:
archinstall
No hace falta configurar todas las entradas del menu, en esta guía vamos a ver sólo las indispensables.
- Locales: Teclado, idiomas y set de caracteres.
- Disk configuration:
- Seleccionar Use a best-effort default partition layout.
- Seleccionar el disco, PELIGRO DE BORRAR DATOS: normalmente es ATA VBOX HARDDISK
/dev/sda, pero si tienes dudas pregunta!!. - Seleccionar
ext4
- Hostname: El nombre de nuestra máquina virtual.
- Root password: Contraseña de root (Administrador para quién viene de windows).
- User Account: Agregar y configurar usuarios, deberíamos agregar por lo menos uno (se recomienda hacerlo superusuario/sudo).
- Profile: Elegir el tipo de sistema que estamos instalando, para este ejercicio se recomienda seleccionar en Type → Desktop (Xfce4) y dejar lo demás en default.
- Audio: Se recomienda Pulseaudio.
- Additional packages: Se recomienda por lo menos: networkmanager firefox neovim nano.
- Network configuration: Se recomienda seleccionar Use networkManager.
- Timezone: Europe/Andorra.
Una vez tengamos todo configurado seleccionamos Install, el script nos mostrará la configuración, y después de picar Enter se iniciará el proceso.
Si todo va bien, después de unos minutos y muchos mensajes en la consola, se nos preguntará si necesitamos hacer alguna tarea de post-instalación, seleccionamos no y se nos regresará a la consola del sistema.
Reiniciar en el nuevo sistema
- VirtualBox
- UTM
En la consola ponemos el comando reboot y una vez que se nos presente nuevamente la ventana de arranque del sistema de instalación archlinux, antes de seleccionar nada:
- Removemos la imagen de instalación: en el menú Devices → Optical drive → Remove disk from virtual drive
- Reiniciamos la máquina virtual: en el menú Machine → reset.
En la consola ponemos el comando reboot y antes de que la VM arranque de nuevo la apagamos, regresamos a la pantalla principal de UTM y en el menú desplegable que se encuentra hasta abajo de a ventana seleccionar clear o limpiar para remover la imagen iso de ArchLinux.
De esta manera evitamos volver a empezar el proceso de instalación cada vez que reiniciamos nuestro sistema.
Si todo ha salido bien, tenemos nuestro nuevo sistema!!
Para realizar una instalación manual se pueden seguir directamente las instrucciones del Arch Wiki a partir del punto 1.9 Partition the disks.
Tips
Setup network connection
En caso de no haber instalado ningún manejador de red durante el proceso de instalación general, necesitamos configurar la red utilizando los demonios incluidos por defecto que forman parte de systemd.
Para ello tenemos que configurar, iniciar y habilitar permanentemente los demonios systemd-networkd para la configuración de nuestra interface y systemd-resolved para la configuración del servicio de resolución de nombres.
Lo primero es conocer con que interfaces contamos y asegurarnos de que nuestra interface esté levantada:
ip link
ip link set enp0s3 up
Crear un archivo de configuración en /etc/systemd/network/20-wired.network con el siguiente contenido:
[Match]
Name=enp0s3
[Network]
DHCP=yes
Reiniciar el demonio de systemd-networkd y ver si ya tenemos IP asignada:
sudo systemctl restart systemd-networkd
ip addr
Si vemos una dirección IP en la interface, podemos probar si tenemos salida a internet:
ping 9.9.9.9
ping archlinux.org
Si no tenemos servidor de nombres asignado el segundo ping no funcionará, para iniciar el demonio de systemd-resolved utilizamos:
sudo systemctl restart systemd-resolved
y por último para asegurarnos de que ambos demonios se inicien automáticamente en boot:
sudo systemctl enable systemd-networkd
sudo systemctl enable systemd-resolved
Puedes encontrar más información en el artículo de Network configuration del arch wiki.