Flatpak es un formato de distribución de aplicaciones para GNU/Linux que funciona de forma paralela al gestor de paquetes del sistema operativo. Entre las características de Flatpak se incluye la posibilidad de enlazar un paquete de aplicación con otros paquetes de dependencias, de tal manera que al instalar un programa también se instalen los paquetes de los que depende para funcionar (versiones del sistema de ventanas, drivers de NVIDIA, packs de iconos…). Es conveniente, sobre todo por la posibilidad de tener programas con distintas versiones de una dependencia conviviendo sin problemas, y por la (aparente) seguridad que transmite su sandbox, donde se puede restringir la capacidad de un programa de conectarse a la red, acceder al almacenamiento o usar el hardware del ordenador.
Sin embargo, también hay mucha gente que no tolera Flatpak, y hay muchas distribuciones que no incorporan Flatpak preinstalado porque consideran que la labor de instalar programas depende del gestor de paquetes del sistema operativo y no de otras ruedas reinventadas que a la gente se le ocurre. Debian es una de estas distros, por lo que si quieres usar Flatpak en Debian 12, lo primero que tendrás que hacer es instalarlo.
makepkg es la herramienta más primitiva que puedes usar para compilar paquetes que vengan de AUR en Arch Linux y distribuciones relacionadas (Manjaro, EndeavourOS, Xero Linux…). La mayoría de personas inmediatamente van a querer dar el salto a un gestor de paquetes compatible con AUR, como Yay o Paru, por las limitaciones que tiene vivir únicamente de makepkg exclusivamente.
Sin embargo, en algunos casos puede salvar la vida cuando todo lo demás falla, así que creo que es muy relevante saber, al menos cómo descargar y compilar un paquete de AUR con makepkg. ¿Por qué? Así como mínimo, porque para instalar Yay necesitarás usar algo, ¿no? ¿o pretendes mantener yay fuera de la base de datos de pacman? Además, si eres una de esas personas que saben cómo crear y modificar PKGBUILDs, trabajar con makepkg te será más sencillo en muchos casos.
He revisado las instrucciones para asegurarme que son compatibles con Ubuntu 24.10. Ponte que un día enciendes tu ordenador y por lo que sea no logras pasar de la pantalla de inicio de sesión en Ubuntu porque has olvidado la contraseña. Por ejemplo, puede que sea una partición a la que entras una vez cada muchos meses. Esto es lo que tendrías que hacer.
Lo que vas a hacer va a ser entrar en modo recuperación. Es un tipo de arranque especial que se usa para reparar errores en el sistema. Llegar hasta este menú a veces es complicado, y hay que pulsar muchos botones, así que te recomiendo que primero leas los siguientes párrafos antes de tocar el ordenador, para que puedas prepararte.
Para entrar en el modo recuperación antes tienes que lograr ver en tu ordenador una pantalla como esta:
Menú de arranque GRUB.
Si tienes más de un sistema operativo instalado en tu sistema (por ejemplo, tienes Windows y Ubuntu), es probable que, de hecho, la veas siempre que enciendes el ordenador. Sin embargo, si no recuerdas haberla visto, tal vez sea porque tu sistema la esconde para encender más deprisa.
Si no recuerdas haber visto esta pantalla, vas a tener que pulsar una tecla mientras el ordenador se enciende para forzar que aparezca. La tecla normalmente es la Escape, pero en algunos ordenadores antiguos puede ser la Mayúsculas. No te preocupes. Si no funciona y vuelves a la pantalla de contraseña de Ubuntu, puedes reiniciar y volverlo a intentar.
Cuando pulses esa tecla, pueden pasar varias cosas.
Una, sería rara, pero es que entres al menú de configuración de la placa base de tu ordenador (lo que tradicionalmente se ha venido llamando el menú BIOS). No te interesa estar aquí, porque ese menú es para cambiar cosas como el orden de los discos duros, la velocidad del ventilador, la memoria… Sal del menú como corresponda en tu placa base. La próxima vez que enciendas el sistema, espera unos segundos antes de empezar a pulsar Escape o Mayúsculas, para que el ordenador no se piense que intentas abrir el menú.
Otra cosa que puede pasar, es que veas una pantalla como esta, donde sólo se ve grub>. A lo mejor hasta varias veces, debido a que has mantenido pulsada la tecla Escape lo suficiente. Si ves esta pantalla, escribe normal y pulsa Enter. Deberías acceder al menú, aunque en mis experimentos algunas veces puede que salte directamente al arranque de Ubuntu. Reinicia y vuelve a intentarlo.
Si ves esta consola que dice grub, escribe normal y pulsa Enter.
Cuando veas la pantalla que nos interesa, que es la que te mostraba antes, lo primero que quiero que hagas es pulsar las teclas Abajo y Arriba del teclado. La razón es que, a menudo, esta pantalla lleva un temporizador que arranca el sistema automáticamente si no haces nada, y al pulsar una tecla lo cancelarás para que puedas tomarte tu tiempo.
Pulsa las teclas Abajo o Arriba, y selecciona desde el menú la opción Advanced options for Ubuntu. Luego pulsa Enter para activarla. Se abrirá un submenú donde debes volver a usar las teclas de dirección para seleccionar alguna opción que termine en (recovery mode), y luego pulsa Enter para iniciar el sistema así.
Esta es la opción que te debe interesar.
Después de un arranque caótico, deberías acabar viendo una pantalla con fondo rosa-morado y este mensaje.
Menú de recuperación de Ubuntu
Tendremos que hacer lo siguiente. Primero, hacer que se puedan modificar archivos sobre el disco. Para ello, utiliza la tecla Abajo para desplazarte hasta la tercera fila, la que dice dpkg, y pulsa Enter. Esto mostrará un mensaje que diga algo como: "Continuar remontará el sistema de archivos / en modo lectura/escritura y montará cualquier otro sistema de archivos definido en /etc/fstab. ¿Quiere continuar?", al que debes responder que sí pulsando Enter.
El objetivo es que el disco se monte en modo escritura, de modo que podamos cambiar la contraseña para poder usarla en el próximo reinicio. Realmente no pretendemos hacer nada con dpkg, es solamente una excusa para que cambie el disco; aunque a cambio, ahora al menos sabes que no tienes paquetes rotos en tu sistema.
Aparecerán varios mensajes por pantalla. Esto es un proceso normal. Simplemente, espera a que diga "Finalizado, ahora pulse Intro", y entonces… pulsa la tecla correspondiente.
Regresarás al mismo menú. Ahora pulsa varias veces la tecla Abajo hasta seleccionar la entrada que dice root, y pulsa Enter. Esta es la opción para iniciar una consola de superusuario en tu ordenador. Es como haber entrado siendo root directamente, sin tener que introducir la contraseña.
Aparecerá un mensaje que diga "Pulsa Enter para mantenimiento". De nuevo, pulsa Enter. Con esto activarás una shell. Todo lo que tienes que hacer ahora es escribir el siguiente comando: passwd, luego un espacio, y luego el nombre de tu cuenta de usuario. Por ejemplo, si tu cuenta de usuario es paquita, escribirías:
passwd paquita
Te preguntará por la nueva contraseña. Escríbela despacio para no cometer errores, y luego pulsa Enter. Te pedirá que la escribas una segunda vez, para confirmar que no has cometido faltas de ortografía. Vuélvela a poner, y pulsa Enter. Verás un mensaje que dice passwd: contraseña actualizada correctamente.
Es posible que si la contraseña que escribes es demasiado corta, veas un mensaje que dice CONTRASEÑA INCORRECTA: La contraseña tiene menos de 8 caracteres. Sin embargo, como estás usando el modo de recuperación y estás en una consola de superusuario, te dejará continuar igualmente.
Con este procedimiento hecho, sólo queda reiniciar el sistema, escribiendo reboot, y ya deberías tener acceso al sistema usando la nueva contraseña que acabas de establecer.
¿Te has olvidado de la contraseña que le diste a la cuenta de root en tu instalación de Debian? Suele pasar si no la usamos con mucha frecuencia. Te cuento cómo usar el modo rescate para reestablecerla.
Cuando se configura Debian, una de las primeras cosas que pregunta el sistema operativo es qué contraseña le pretendemos dar a la cuenta de superusuario, es decir, a la cuenta root. Otras distribuciones GNU/Linux han decidido restringir el uso de la cuenta root y facilitar que la distribución se instale teniendo una cuenta superusuario como primera cuenta. No es el caso de Debian, que sigue dándole mucha importancia a la cuenta de superusuario root, y que ni siquiera configura por defecto sudo en la cuenta principal cuando se instala el sistema.
Sin embargo, ¿qué hacer cuando no hemos utilizado en una larga temporada esa cuenta y nos hemos olvidado de su contraseña? ¿Cómo podemos reestablecer la contraseña de root en Debian 11? Vamos a ver qué opciones tenemos en este post.
El juego de ejecutar passwd como root
El objetivo es conseguir tener acceso a una shell root desde la que podamos ejecutar passwd. Este es un comando interesante de administración de sistemas UNIX que sirve para cambiar una contraseña. Cuando lo ejecutamos como root, nos permite cambiar la contraseña de cualquier cuenta del sistema.
Si ponemos passwd sin más cuando somos root, cambiaremos la contraseña de root. Tan fácil como esto. De modo que el objetivo de este juego será conseguir una shell de root con la que hacer el cambio de contraseña.
El caso más simple es si ya tienes montado sudo en tu ordenador. Si tu cuenta personal está configurada para poder utilizar sudo, no tienes que hacer nada más que ejecutar sudo su. Con esto, utilizarás tu propia contraseña para acceder a una shell de root.
workstation ~ $ sudo su -
[sudo] contraseña para dani:
[root@workstation ~]# passwd
Nueva contraseña:
Sólo recuerda que:
Cuando teclees la contraseña, esta no será visible por pantalla, así que teclea con confianza y sin detenerte. Con esto evitarás problemas si estás escribiendo palabras y no te equivocarás.
Tendrás que escribir la contraseña dos veces y tiene que coincidir. Si la has escrito mal alguna de las veces, te avisará y tendrás que volver a empezar.
Entrar en modo rescate
Si no tienes montado sudo, doas ni nada parecido (cosa que deberías), no quedará otra que entrar en modo de rescate. Resulta sorprendente lo fácil que es arrancar GNU/Linux en modo rescate saltándose cualquier medida de protección, pero si el disco no está cifrado, técnicamente no hay nada que impida hacer esto.
Para entrar en un modo rescate que nos permita saltar la contraseña, todo lo que haremos será reiniciar el ordenador y pulsar e cuando estemos en la pantalla de elección de entorno.
Pantalla de GRUB en Debian 11.
Al pulsar la tecla e aparece el editor de arranque. Con esto podemos modificar los comandos que se ejecutan por GRUB para arrancar el sistema operativo. Por dar la nota, cuando seleccionamos una opción premarcada como Debian GNU/Linux en GRUB realmente ejecutamos todas las instrucciones que se están viendo ahí.
Todo lo que haremos ahora será desplazarnos hacia la línea que empieza por linux (la que empieza por linux /boot/vmlinuz...). Nos desplazamos al final de la línea (aquí puedes usar Ctrl + E para ir rápidamente al final de la línea). Después, borramos las últimas palabras (ro quiet) y en su lugar pondremos rw init=/bin/bash. En definitiva, la línea de linux tiene que quedar tal que así:
linux /boot/vmlinuz-5.10.0-19-amd64 root=UUID=... rw init=/bin/bash
Ten en cuenta que la versión del kernel que acompaña a vmlinuz puede cambiar. Además, he suprimido el UUID completo de mi disco porque será diferente al tuyo. Una vez lo hayas comprobado, pulsa Ctrl-X o F10 para arrancar el sistema.
El aspecto de GRUB para arrancar en modo rescate
Cuando termine de cargar, verás una shell. Esta shell está conectada al disco duro, por lo que con esto ya tenemos una sesión root para poder ejecutar algunos comandos. Deberías poder comprobar que el disco duro está montado en modo escritura. Esto es algo que puedes hacer ejecutando el comando mount y comprobando si en la salida se incluye una línea que contenga tu partición y la raíz (/). En los flags de montaje debe salir la opción rw. Por ejemplo, en mi caso veo:
/dev/vda1 on / type ext4 (rw,relatime)
Esto es suficiente de por sí.
Como puedes ver en tu shell, root@(none) implicará que tenemos una shell de root. Con esto ya podemos ejecutar el comando passwd y establecer una nueva contraseña para la cuenta de superusuario:
Una vez que hagas esto, reinicia tu ordenador. Posiblemente a la fuerza si tienes problemas para escribir reboot. Deberías comprobar que si ahora tratas de escribir la contraseña de superusuario (por ejemplo, usando el comando su), ya te la aceptará.
¿Qué hacer cuando no se puede iniciar sesión en Ubuntu porque hemos olvidado la contraseña y no hay más cuentas de usuario en el sistema?
Es posible, si tienes una máquina virtual que no sueles usar a menudo, o si tu ordenador tiene dual boot y no pasas mucho tiempo en Ubuntu, que se te pueda olvidar la contraseña que estableciste cuando instalaste el sistema operativo. O bien, por la razón que sea. Existen muchísimas razones por las que se puede perder la contraseña de instalación. ¿Qué hacemos en caso de que no podamos entrar en nuestra instalación de Ubuntu?
Los supuestos
En este post os voy a contar una forma rápida y efectiva de recuperar la contraseña de Ubuntu. No digo que sea la forma definitiva y puede que haya casos donde no funcione.
Por ejemplo, si tu partición está cifrada con LUKS, este consejo no te vale. Es más, ningún consejo te vale. Si los datos de tu disco duro están cifrados y no recuerdas la contraseña, no existe forma de recuperar el acceso, ni siquiera la información contenida en el disco.
Sin embargo, estas instrucciones os pueden echar una mano si habéis hecho una instalación típica de Ubuntu para sobremesas o para máquinas virtuales.
Cambiando la contraseña desde el modo de recuperación
Esta forma de cambiar una contraseña olvidada es tan simple que parece sorprendente que siga funcionando a día de hoy. Pero no nos vamos a centrar hoy en si es excesivamente inseguro y simplemente vamos a aprovechar en nuestro beneficio el hecho de que desde el modo de recuperación de Ubuntu es posible acceder a una shell del sistema operativo, con la que podremos cambiar la contraseña via el comando passwd.
Todo lo que tienes que hacer es arrancar tu máquina de tal forma que salga el menú GRUB. Si Ubuntu es el único sistema operativo de tu ordenador o máquina virtual, es posible que el menú GRUB se salte y se inicie Ubuntu automáticamente. En este caso, GRUB estará configurado para solamente mostrar el menú si no se pudo arrancar de forma segura por última vez. En este caso, reinicia a la fuerza tu ordenador, para que en el segundo arranque salga el menú.
El cargador de arranque de GRUB, versión 2.06.
Ahora lo que tendremos que hacer es pulsar la tecla Abajo para desplazarnos hacia la opción Advanced options for Ubuntu, y pulsar Enter para abrir el submenú. Dentro de este, utilizaremos las teclas de dirección para seleccionar alguna opción de recuperación (por ejemplo, que termine en recovery mode).
Menú de opciones avanzadas de GRUB
Una vez la tengamos seleccionada, pulsamos Enter y dejamos que arranque el ordenador. En este estado, se iniciará una versión diferente de Ubuntu. En vez de entorno gráfico, se cargará un menú de color donde nos presentarán varias opciones de arranque. Tendremos que usar las teclas de dirección para seleccionar la opción root (consola de superusuario), y pulsaremos Enter para confirmar. Después, pulsaremos Enter una segunda vez para entrar en modo mantenimiento cuando pida la confirmación.
Menú de recuperación de Ubuntu entrando en modo consola de superusuario
En la mayoría de instalaciones recientes de Ubuntu, la partición directamente se montará en modo de lectura y escritura. En otras palabras, con este método hemos ganado acceso a una shell de superusuario en el sistema operativo. ¡Tremendo!
Sin embargo, ahora tenemos la posibilidad de cambiar la contraseña utilizando el comando passwd, que tendremos que invocar especificando la cuenta cuya contraseña querramos cambiar. Por ejemplo, para cambiar la contraseña de una cuenta llamada operator, utilizaremos el siguiente comando:
root@ubuntu22:~# passwd operator
Nueva contraseña:
Vuelva a escribir la nueva contraseña:
passwd: contraseña actualizada correctamente
Si tecleáis una contraseña de menos de 8 caracteres es posible que salga un mensaje como CONTRASEÑA INCORRECTA: La contraseña tiene menos de 8 caracteres. Sin embargo, este mensaje es solo un aviso, porque la establecerá igualmente. Contraseñas más largas son más seguras y previenen accesos no autorizados al ordenador.
Hecho eso, salimos de la shell utilizando la combinación de teclas Control-D. Esto nos llevará de vuelta al menú de color, donde tendremos que elegir la opción resume (Continuar con el arranque normal), lo que nos iniciará el ordenador en modo completo, cargando el entorno gráfico.
Cómo crear un archivo swap para poder cambiar su tamaño una vez que ya hemos formateado el ordenador.
La swap o espacio de intercambio es una zona de memoria extra en disco duro o disco SSD que el kernel Linux se reserva para aumentar la cantidad de memoria virtual disponible para asignar a las aplicaciones. De este modo, cuando un ordenador tiene muchas aplicaciones abiertas, el sistema operativo puede identificar qué zonas son las que menos se están usando en ese instante, y moverlas al disco duro como si fuese una mesa auxiliar en la que dejar lo que no se está usando en ese momento. Esto libera espacio en el chip para que otra aplicación más activa sí pueda utilizar la memoria.
Cuando se instala el sistema operativo, el asistente pregunta a la hora de particionar el disco duro cuánto se quiere asignar a la swap. Cuanto más espacio de swap haya disponible, más fluidez puede adquirir el ordenador porque más grande será la estantería donde el kernel puede depositar los datos en uso por parte de programas poco activos para liberar espacio en RAM para aquellos que sí están más activos. Al contrario, si la swap es limitada (o si prefieres no crer swap), puede ocurrir que se agoten del todo los recursos del sistema, un panorama que provocará que el ordenador funcione de manera poco fluida y que tal vez provoque que algunas aplicaciones se cierren a la fuerza a medida que el kernel cierra cosas para hacer espacio y evitar el colapso de la máquina.
¿Cuánta swap debería tener mi ordenador?
En otros tiempos, la limitación en cuanto a cantidad de memoria RAM del ordenador era un problema importante, que provocaba que existiesen fórmulas precisas tales como «la swap debería ser siempre el doble de grande que la memoria RAM disponible». Sin embargo, hoy en día los ordenadores tienen bastante memoria por lo que hay que tener en cuenta más factores.
Más que considerar «la swap siempre es necesaria» o «la swap ya nunca es necesaria», la respuesta correcta es: ¿qué tipo de cargas de trabajo va a tener mi ordenador? Para un ordenador doméstico que se use para cosas básicas, es probable que, efectivamente, si tienes suficiente memoria RAM no necesites tener una swap. Es espacio en disco duro que se desaprovecha si nunca se llena la memoria RAM. Sin embargo, si vas a estar continuamente ejecutando aplicaciones intensivas en memoria (tales como simulaciones, juegos o programas de edición de vídeo o, en general, programas complicados que ejecuten muchos algoritmos y que trabajen con muchos datos), es posible que incluso aun teniendo 16 o 32 GB de RAM sea recomendable establecer un espacio de intercambio, sobre todo si corres el riesgo de que uno de esos programas verdaderamente sea capaz de consumir toda la memoria RAM disponible.
Algunos fabricantes suelen recomendar sus propias fórmulas. En el caso de Red Hat, por ejemplo, recomiendan hoy en día lo siguiente:
Si tienes un ordenador de 2 GB de RAM o menos (como un ordenador viejo), deberías tener una swap que tenga el doble de la cantidad de memoria RAM que tu PC tenga.
Si tienes un ordenador de entre 2 y 8 GB de RAM, deberías tener una swap que tenga el mismo tamaño que la cantidad de memoria RAM que tu PC tenga.
Si tienes un ordenador de más de 8 GB de RAM, deberías tener una swap de al menos 4 GB en función de las circunstancias.
De nuevo, con la cantidad de memoria RAM que hay hoy en día y con el uso tan diferente que se puede hacer de un ordenador, conviene preguntarse qué se va a hacer con el ordenador, ya que eso puede influenciar que queramos darle una swap más pequeña o incluso no darle swap, sobre todo si es un PC con mucha memoria.
¿Qué hago si necesito más swap una vez he particionado mi PC?
Por lo general, el instalador ofrecerá la posibilidad de formatear una partición extra al instalar GNU/Linux de tipo swap. Con esto, se reserva una zona del disco duro para este propósito. Queda fuera del sistema de archivos principal, por lo que nunca verás la swap para que no moleste.
Si después de instalar el ordenador necesitamos cambiar su tamaño (por ejemplo, porque es un servidor web y nos hemos dado cuenta que en horas pico se queda corta la swap y provoca caídas de sistema), vamos a tener complicado particionar de nuevo.
Por suerte, es posible igualmente utilizar el comando swapon para activar un archivo de disco duro y que se comporte como espacio de intercambio. Para ello, lo primero que tendríamos que hacer es crear un archivo en blanco que tenga el tamaño deseado. Esto lo podemos hacer con dd, aunque yo hoy en día suelo utilizar el programa fallocate(1) porque es más rápido:
$ sudo fallocate -l 4G /swapfile
Esto crea un archivo de 4 GB llamado swapfile en la raíz del disco duro. Por supuesto, tú deberías cambiar ese 4G por el tamaño que quieras que tenga tu RAM, sustituyendo el 4 por la cantidad de gigas correcta, por ejemplo, 2G u 8G para, respectivamente, 2 GB u 8 GB.
Ahora lo que tenemos que hacer es formatear el archivo, es decir, configurarlo para que el kernel se piense que es un área swap normal y corriente. Esto lo podemos conseguir con el comando mkswap:
$ sudo mkswap /swapfile
Opcionalmente, si queremos deshacernos de otras particiones o archivos swap en uso, podríamos retirar toda la swap. Ten en cuenta que esto volcará su contenido en memoria RAM, así que no conviene correr este comando si el ordenador no está tranquilo.
$ sudo swapoff -a
Y finalmente pedirle al sistema que active este archivo que acabamos de crear como un archivo swap:
$ sudo swapon /swapfile
Si ahora usamos una herramienta como htop, deberíamos poder verificar que existe una swap del tamaño solicitado.
Cómo activar la carga de nuestro swapfile en cada arranque
Sorprendentemente, el archivo /etc/fstab también permite introducir rutas a swapfiles que haya en otra partición. De modo que es posible configurar el sistema operativo para que active este swapfile cada vez que se encienda el ordenador.
Para ello, todo lo que hay que hacer es modificar el archivo /etc/fstab como superusuario, y poner al final del archivo la siguiente línea:
/swapfile none swap defaults 0 0
Si el archivo se ha creado con otro nombre, habrá que cambiar la ruta que va al principio de la fila. A partir de ese momento, cuando se reinicie el ordenador debería cargarse automáticamente el swapfile que hemos creado.