Como ya sabes, todos los días hay cientos de nuevas incorporaciones al repositorio de GitHub. Pero, muchos buenos proyectos pasan desapercibidos y nunca reciben la atención que merecen. Hoy, me topé con un proyecto genial llamado Ramroot . ¡Usando Ramroot, podemos ejecutar Arch Linux completamente desde RAM! Sí, has leído bien.
Ramroot carga todo el sistema de archivos raíz en la RAM al arrancar el sistema. Está especialmente diseñado para Arch Linux. Lo probé en Ubuntu, pero no funcionó. Espero que el desarrollador también lo haga funcionar en otras distribuciones de Linux.
Ejecute Arch Linux desde RAM usando Ramroot
Ramroot está disponible en AUR , para que pueda instalarlo usando cualquier programa auxiliar de AUR, por ejemplo, Paru o Yay .
$ Paru -S ramroot
O,
$ yay -S ramroot
Luego, habilite Ramroot usando el comando:
$ ramroot enable
Salida de muestra:
:: Detected root UUID: 6517af02-68e9-484e-9dae-f0ed61822ad3 :: No /boot UUID detected. :: zram added to mkinitcpio.conf MODULES :: ext4 added to mkinitcpio.conf MODULES :: vfat added to mkinitcpio.conf MODULES :: ramroot added to mkinitcpio.conf HOOKS :: Enabling ramroot... [sudo] password for sk: ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img ==> Starting build: 4.17.6-1-ARCH -> Running build hook: [base] -> Running build hook: [udev] -> Running build hook: [ramroot] -> Running build hook: [autodetect] -> Running build hook: [modconf] -> Running build hook: [block] -> Running build hook: [filesystems] -> Running build hook: [keyboard] -> Running build hook: [fsck] ==> Generating module dependencies ==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img ==> Image generation successful ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect ==> Starting build: 4.17.6-1-ARCH -> Running build hook: [base] -> Running build hook: [udev] -> Running build hook: [ramroot] -> Running build hook: [modconf] -> Running build hook: [block] ==> WARNING: Possibly missing firmware for module: wd719x ==> WARNING: Possibly missing firmware for module: aic94xx -> Running build hook: [filesystems] -> Running build hook: [keyboard] -> Running build hook: [fsck] ==> Generating module dependencies ==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img ==> Image generation successful :: ramroot enabled.
Si no funciona por algún motivo, tome el binario Ramroot del repositorio de GitHub y ejecútelo como se describe a continuación.
Git clona el repositorio Ramroot usando el comando:
$ git clone https://github.com/arcmags/ramroot.git Cloning into 'ramroot'... remote: Counting objects: 94, done. remote: Compressing objects: 100% (52/52), done. remote: Total 94 (delta 41), reused 82 (delta 32), pack-reused 0 Unpacking objects: 100% (94/94), done.
El comando anterior creará una carpeta llamada "ramroot" en el directorio de trabajo actual y guardará todo el contenido del proyecto Ramroot en ella.
Luego, vaya a Ramroot bin
directorio:
$ cd ramroot/bin/
Haga que los siguientes archivos sean ejecutables:
$ chmod +x ramroot-build $ chmod +x ramroot-enable
Finalmente, ejecute el siguiente comando para habilitar Ramroot.
$ ./ramroot-enable
Introduce tu sudo
o root
contraseña cuando se le solicite.
Ahora, reinicie el sistema. En el proceso de arranque, se le pedirá que cargue el sistema de archivos en la RAM. Escribe "Sí" para proceder.

Cargue el sistema de archivos raíz en la RAM
Tenga en cuenta que este aviso (s/n) está predeterminado en sí con un tiempo de espera de 15 segundos si 4G o más de RAM se detecta. Como tengo 2 GiB de RAM, tuve que escribir "Y" para continuar.
Espere un momento para que finalice el proceso de carga. Llevará varios minutos cargar todo el sistema de archivos raíz en la RAM. Asegúrese de tener suficiente RAM instalada en su sistema.
Si desea mantener tiempos de sincronización de RAM más rápidos, intente mantener un sistema limpio y recortado. Elimine los paquetes antiguos e innecesarios y mantenga limpia la carpeta de caché de paquetes.
Actualización:
Si usa la versión más reciente de Ramroot, el tamaño de RAM instalado debe ser al menos 500 MB más que el tamaño del sistema de archivos raíz . Si hay al menos 500 MB más de RAM que el tamaño del sistema de archivos, se le pedirá al usuario que cargue el sistema de archivos raíz en la RAM. Si el tamaño del sistema de archivos raíz es menor que la memoria instalada, la última versión de Ramroot no cargará el sistema de archivos raíz en su RAM. Ni siquiera le preguntará si debe cargar el sistema de archivos en la RAM o no. El sistema de archivos se montará en su disco local automáticamente y Arch Linux se iniciará normalmente.
Una vez que el sistema de archivos raíz se cargue en la RAM, aterrizará en rootfs
oportuno. Tenga en cuenta que no se guardará nada después de reiniciar . Porque nuestro Arch Linux se carga completamente desde la RAM, no desde el disco local.

Sistema de archivos raíz cargado en RAM
Mostrar la ayuda de Ramroot
Para mostrar la sección de ayuda de Ramroot, ejecute:
$ ramroot --help
Salida de muestra:
NAME ramroot - load root (and /boot) filesystem entirely to RAM during boot SYNOPSIS ramroot <ACTION> [OPTIONS] ACTIONS disable Remove ramroot from /etc/mkinitcpio.conf HOOKS. Remove ext4, vfat, and zram from /etc/mkinitcpio.conf MODULES. Rebuild linux cpio boot image. enable Rebuild build and runtime hooks in /usr/lib/initcpio. Add ramroot to /etc/mkinitcpio.conf HOOKS. Add ext4, vfat, and zram to /etc/mkinitcpio.conf MODULES. Rebuild linux cpio boot image. remove Disable ramroot. Remove build and runtime hooks from /usr/lib/initcpio. status Print ramroot and root filesystem status to screen. Return exit status 0 if enabled and currently loaded to RAM. Return exit status 1 if enabled and not loaded RAM. Return exit status 2 if disabled. OPTIONS -b, --boot <UUID> Specify /boot partition UUID to use when building hooks. -D, --dryrun Execute ACTION without making any changes. -F, --fstab Mount all other partitions in /etc/fstab normally. -H, --help Display help text and exit. -K, --keep Keep copies of new build and runtime hooks in ~/.cache/ramroot. -M, --message Print 'Arch on RAM' message at tty login by using custom /etc/issue. -N, --no Change startup prompt default to not load filesystem to RAM. -r, --root <UUID> Specify root partition UUID to use when building hooks. -t, --timeout <SECONDS> Set RAM boot prompt timeout (default=15).
Eliminar ramroot
Reinicie su sistema y escriba "n" cuando solicita cargar el sistema de archivos en la RAM para iniciar sesión normalmente en su sistema Arch Linux. Vaya a ramroot/bin
y haga que los siguientes archivos sean ejecutables.
$ cd ramroot/bin/ $ chmod +x ramroot-disable $ chmod +x ramroot-remove
Finalmente, elimine Ramroot de su sistema Arch Linux usando los comandos:
$ ./ramroot-disable $ ./ramroot-remove
Si ha instalado Ramroot desde AUR, elimínelo usando los comandos:
$ ramroot disable
$ ramroot remove
Y, finalmente, elimine el paquete Ramroot:
$ sudo pacman -Rns ramroot
Conclusión
Ramroot podría ser útil para aquellos que quieran hacer algunas pruebas en su caja Arch Linux. Además, si desea una sesión privada para aprender los comandos de Linux, Ramroot definitivamente es útil. Pruébalo y no olvides compartir tus opiniones sobre este proyecto en la sección de comentarios a continuación.