Mi primera incidencia en Arch Linux
Pensaba que iba a ser uno de los pocos elegidos que nunca iba a tener problemas con Arch Linux, pero ya os puedo decir que he dejado de ser uno, por hacer la tontería más grande que nunca me ha pasado. Y esta ha sido borrar SystemD e impidiendo que se pudiera iniciar el sistema.
Seguramente os estaréis preguntando cómo ha podido suceder eso, pero es tan simple que había instalado el paquete base-devel y fakeroot y así poder utilizar el paquete pacman-contrib y poder usar checkupdates y encuentras otra manera más fácil de usarlo sin todos los paquetes que te indica el sistema y vas y te pones a eliminar paquetes como si no hubiera un mañana, pues pasa lo que pasa. Que me cargo el sistema y yo sin enterarme hasta que reinició el sistema.
Lo puedes ver, cuando se inicia el sistema y este te dice que no puede encontrar /sbin/init y es aquí cuando te cogen todos los sudores 😰.
Pero gracias a la IA, que para lo poco que la utilizo es para usarla como buscador de información y así me ahorro tener que buscar en miles de páginas hasta encontrar la solución correcta, si me lo puede hacer ella, pues, eso que gano. Sé que no es lo correcto, porque seguramente pierdo poder aprender más cosas, pero en este caso, quería volver a tener en funcionamiento mi sistema lo antes posible y sobre todo, evitar tener que reinstalarlo todo de nuevo. Y así ha sido 😬
A continuación explico cómo he podido recuperar el sistema, por si a alguien le puede servir de ayuda y como información para sí, por si me vuelve a pasar en un futuro 🤞
Empezamos iniciando el sistema, con el USB de instalación de Arch Linux, una vez iniciado todo, tenemos que conocer las particiones que tenemos, por si no te acuerdas y esto se puede conseguir a través de la instrucción:
usuari@archlinux:~$ lsblk -f
Donde visualizaremos el particionado de nuestro equipo. En mi caso tengo lo siguiente (tener en cuenta, que yo tengo el sistema instalado en un NVME):
usuari@archlinux:~$ lsblk -f
├─nvme0n1p1 vfat FAT32 2060-F52D 941.7M 8% /boot
├─nvme0n1p2 ext4 1.0 243ca655-c4dc-4b51-9941-c851ad60f059 83.3G 6% /
└─nvme0n1p3 ext4 1.0 bcb9ab01-8372-4652-97cb-b57eef626f78 330.8G 4% /home
Una vez tenemos esta información, recordar que estamos usando el USB de instalación de Arch, pasamos a montar el sistema:
usuari@archlinux:~$ mount /dev/nvme0n1p2 /mnt
usuari@archlinux:~$ mount /dev/nvme0n1p1 /mnt/boot
usuari@archlinux:~$ mount /dev/nvme0n1p2 /mnt/home
Ahora entramos en arch-chroot para así poder, siempre que se puede, instalar lo que por equivocación había borrado:
usuari@archlinux:~$ arch-chroot /mnt
Con esto accedemos al Arch que tenemos instalado en el equipo y ahora es, si el destrozo no ha sido muy grande, tengo que decir que no ha sido nada del otro mundo, para lo que podía haber sido, procedemos a instalar los paquetes que había eliminado por equivocación:
usuari@archlinux:~$ pacman -Syu systemd systemd-syscompat base
En el caso de que diera algún error, podemos obligar a que haga la instalación sí o sí:
usuari@archlinux:~$ pacman -Syu systemd systemd-syscompat base --overwrite
Ahora viene la parte donde puedes tocar el cielo o el infierno (como ha sido mi caso), verificar que existe /sbin/init:
usuari@archlinux:~$ ls -l /sbin/init
Dando como resultado, si todo ha ido bien, lo siguiente:
usuari@archlinux:~$ init -> ../lib/systemd/systemd
Regeneramos initramfs, cosa muy recomendable:
usuari@archlinux:~$ mkinitcpio -P
Salimos de arch-chroot y desmontamos las particiones y hacemos un reboot del sistema:
usuari@archlinux:~$ exit && unmount -R /mnt && reboot
Aquí es donde se puede ver si todo ha ido bien 🥳 o 😭 y en mi caso sí que ha sido 🥳 consiguiendo recuperar todo el sistema sin problemas y ahorrando tener que volver a reinstalar todo el sistema de nuevo.
Espero que como a mí, os pueda servir de ayuda estos apuntes, porque nunca se sabe cuándo algo así puede volver a pasar 😆