496 - ArchLinux en la Raspberry
Cómo instalar #ArchLinux en tu #Raspberry Pi y aprovecha su personalización y rendimiento optimizado. Guía completa para esta esta distribución #linux
Hace ya algún tiempo que instalé ArchLinux en la Rasperry, y la desinstalé e instalé no se que… y he vuelto. Esta es la definitiva o eso creo. La cuestión es que son varios motivos los que me llevan a esto, lo cual te lo contaré mas adelante, pero te puedes hacer una idea que va sobre un próximo cambio de Manjaro a ArchLinux, y de aquí mi podcast sobre ArchLinux en la Raspberry.
Tienes que tener en cuenta que mi instalación va a ser como servidor, no como un equipo de escritorio. Así, no necesito ningún tipo de entorno ni nada similar. Lo cual me facilita muchísimo el trabajo.
Sin embargo, si tu caso es el de utilizar ArchLinux con entorno de escritorio, te recomiendo que escuches uno de los últimos podcast de Juan Febles Podcast Linux que precisamente cuenta su experiencia con esta distribución.
ArchLinux en la Raspberry
Algunas razones para instalar ArchLinux en la Raspberry
- Personalización y control: Arch Linux es una distribución conocida por su enfoque minimalista y su enfoque en la simplicidad. Esto significa que tienes un mayor control sobre qué componentes y servicios deseas instalar en tu sistema. Puedes construir una instalación personalizada según tus necesidades específicas y evitar instalar software innecesario que pueda ralentizar el rendimiento de la Raspberry Pi.
- Rendimiento optimizado: Arch Linux está diseñado para ser ligero y eficiente en términos de recursos. En una Raspberry Pi, que tiene recursos limitados en comparación con una computadora de escritorio tradicional, esta optimización puede resultar en un mejor rendimiento general. Arch Linux te permite ajustar y optimizar la configuración de tu sistema para obtener el máximo rendimiento de tu Raspberry Pi.
- Acceso a los últimos paquetes y actualizaciones: Arch Linux sigue un modelo de lanzamiento «rolling release», lo que significa que recibes actualizaciones continuas de software sin tener que actualizar a una versión completamente nueva. Esto puede ser beneficioso para mantener tu Raspberry Pi actualizada con las últimas mejoras de seguridad y características.
- Comunidad activa y documentación: Arch Linux tiene una comunidad muy activa que ofrece soporte y documentación extensa. Hay una gran cantidad de recursos disponibles en línea, incluyendo wikis, foros y tutoriales, que pueden ayudarte a resolver problemas y aprender más sobre la configuración y administración de tu sistema Arch Linux en la Raspberry Pi.
Sin embargo, es importante que tengas en cuenta Arch Linux es una distribución más orientada a usuarios avanzados y requiere un mayor nivel de conocimientos técnicos en comparación con otras distribuciones más amigables para principiantes. Si eres nuevo en Linux o en el uso de una Raspberry Pi, puede resultar más fácil comenzar con una distribución como Raspbian (ahora conocida como Raspberry Pi OS), que está diseñada específicamente para la Raspberry Pi y ofrece una experiencia más amigable para los principiantes.
Básicamente a mi hay dos puntos que me llaman poderosamente la atención, la parte de los últimos paquetes y la documentación que ArchLinux ofrece, y que me parece fantástica.
Creo que es una fantástica manera de profundizar en el mundo Linux de verdad. Si esto le unes los Tiling Window Manager, creo que tienes una pareja ganadora.
Requisitos
Esto es obvio, pero vas a necesitar una Raspberry y una tarjeta microSD, además, por supuesto de la alimentación, una cajita para contener la Raspberry y otros detalles menores.
Instalación
Aunque aquí voy a realizar todos los pasos desde la terminal, lo cierto es que podrías utilizar disks
para crear las particiones. Pero yo al terminal,
El primer paso es localizar el microSD, para ello ejecuta lsblk
, que te arrokará algo como lo que te muestro a continuación
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1,8T 0 disk
└─sda1 8:1 0 1,8T 0 part /data
sdb 8:0 0 32G 0 disk
├─sdb1 8:1 0 1G 0 part /boot
└─sdb2 8:2 0 31G 0 part /
nvme0n1 259:0 0 465,8G 0 disk
├─nvme0n1p1 259:1 0 300M 0 part /boot/efi
└─nvme0n1p2 259:2 0 465,5G 0 part /
Esto es mas o menos lo que verás. Ten en cuenta que lo anterior es una recreación en mi equipo, que no tiene porque coincidir con el tuyo. Mas bien, sería extraño que coincidieran.
En el prompt de fdisk, las particiones existentes deben ser eliminadas y se debe crear una nueva.
- Escribe
o
. Esto eliminará cualquier partición en la unidad. - Escribe
p
para listar las particiones y verificar si aún hay alguna presente. - Para crear la partición de arranque: Escribe
n
y luegop
para primaria,1
para la primera partición en la unidad, presionaENTER
para aceptar el primer sector predeterminado y luego escribe+1G
para el último sector. - Escribe
t
y luegoc
para establecer la primera partición como tipoW95 FAT32 (LBA)
. - Para crear la partición raíz: Escribe
n
y luegop
para primaria,2
para la segunda partición en la unidad, y luego presionaENTER
dos veces para aceptar los primeros y últimos sectores predeterminados. - Escribe
w
para escribir la tabla de particiones y salir del programa.
Ahora tienes que crear el sistema de archivos para la partición de arranque y la partición raíz utilizando el comando mkfs y luego los tienes que montar.
sudo mkfs.vfat /dev/sdb1
sudo mkdir -p /mnt/boot
sudo mount /dev/sdb1 /mnt/boot
sudo mkfs.ext4 /dev/sdb2
sudo mkdir -p /mnt/root
sudo mount /dev/sdb2 root
Aquí, /dev/sdb1
representa la partición de arranque y /dev/sdb2
representa la partición raíz. Asegúrate de reemplazar /dev/sdb1
y /dev/sdb2
con los nombres correctos de las particiones que hayas identificado previamente.
Ahora llegó el momento de descargar la imagen de Arch e instalarla, para ello simplemente
cd /mnt
wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz -P /tmp
sudo bsdtar -xpf /tmp/ArchLinuxARM-rpi-aarch64-latest.tar.gz -C /mnt/root
sudo sync
sudo mv /mnt/root/boot/* /mnt/boot
sudo sed -i 's/mmcblk0/mmcblk1/g' root/etc/fstab
sudo umount /mnt/boot /mnt/root
Primeros pasos en la configuración
En mi caso, tengo la Raspberry conectada por cable, pero si la tienes conectada por WiFi, tendrás que configurarlo para poder acceder, tienes que utilizar el usuario alarm
y la contraseña alarm
. Una vez dentro, hazte root
para continuar, para ello utiliza la contraseña root
su - root
A continuación ejecuta las siguientes instrucciones,
pacman-key --init
pacman-key --populate archlinuxarm
pacman -Syyu
Y por último configura el nombre de tu Raspberry. A mi en particular, que se llame alarm
no me gusta nada. Simplemente ejecuta,
sudo hostnamectl set-hostname archi
Configuración de mi usuario
useradd -m lorenzo
usermod -aG wheel lorenzo
passwd lorenzo
Además en /etc/sudoers
he añadido la siguiente línea,
lorenzo ALL=(ALL:ALL) NOPASSWD: ALL
Además desde mi equipo, añadí la clave público privada a archi
, para no tener que introducir la contraseña cada vez que quisiera acceder. Para ello, tan sencillo como ejecutar la siguiente instrucción,
ssh-copy-id -i ~/.ssh/id_ed25519 lorenzo@192.168.1.143
Y por último, añadí una entrada en ~/.ssh/config
como sigue,
Host archi
Hostname 192.168.1.143
User lorenzo
IdentityFile ~/.ssh/id_ed25519
Esto me permite acceder a la Rasbperry de la siguiente forma,
ssh archi
Ahora si quieres ya puedes borrar el usuario alarm
. Para ello, tan sencillo como ejecutar la siguiente instrucción,
sudo userdel alarm
Configuración de Pacman
Algo a lo que me he acostumbrado recientemente es a tener Pacman algo mas elegante y práctico. Para ello tienes que editar el archivo /etc/pacman.conf
y descomentar o añadir, según el caso, lo siguiente,
Color
VerbosePkgLists
ParallelDownloads=5
ILoveCandy
Instalando Podman
sudo pacman -S podman \
fuse-overlayfs \
buildah \
netavark \
cockpit-podman \
slirp4netns \
aardvark-dns
podman system reset
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 lorenzo
podman system migrate
systemctl --user start podman.socket
echo 'export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/podman/podman.sock"' >> .bashrc
sudo sed -i 's/\# unqualified-search-registries = \[\"example.com\"\]/unqualified-search-registries = ["docker.io"]/g' /etc/containers/registries.conf
Tengo que decirte, que después de lo que te conté en el anterior episodio del podcast, no tengo claro quedarme con Podman o instalar Docker… Ya veremos.
El objetivo de esta Raspberry
Actualmente tengo 4 Raspberry Pi 4. El objetivo era montar un cluster, pero con el paso del tiempo, esta idea ha dejado de tener sentido para mi. Así que definitivamente me voy a quedar con una de ellas, para poder probar los desarrollos que voy haciendo en mi equipo principal.
Además quiero ver como se comporta ArchLinux, en el día a día, en un entorno de semi producción como el que he montado. Dependiendo de este comportamiento, probablemente de el salto de Manjaro a Arch, pero no a corto plazo.
Además de esto, en esta Raspberry quiero levantar algunos servicios que utilizo habitualmente y que tengo en mi equipo principal, así como realizar algunas pruebas de concepto para algunas cosillas que quiero desarrollar.
Y las otras Raspberry
Y te preguntarás, ¿que vas a hacer con las otras tres?. Aprovechando que nos acercamos al episodio 500, y para celebrarlo, he pensado sortear entre las personas que se encuentran en el grupo de atareao con Linux estas tres unidades.
Te tengo que decir que irá la Raspberry montada en la caja actual, pero sin alimentación ni tarjeta microSD… En el caso de que sea fuera de España, dependerá de los costes de envío… No sea que cueste mas el collar que el perro.
Lo cierto es que quiero hacer algo especial para el episodio 500, y una de esas cosas, puede ser el sorteo, y por supuesto un directo, pero no se como enfocarlo todavía.
Ya sabes, se admiten sugerencias, y así de paso, aprovechas el nuevo formulario de contacto.
Al montar el sistema de archivos el comando deberia ser:
sudo mount /dev/sdb2 /mnt/root