GNU/Linux >> Tutoriels Linux >  >> Arch Linux

Ramroot - Exécutez Arch Linux entièrement à partir de la RAM !

Comme vous le savez déjà, il y a chaque jour des centaines de nouveaux ajouts au référentiel GitHub. Mais, de nombreux bons projets passent inaperçus et ne reçoivent jamais l'attention qu'ils méritent. Aujourd'hui, je suis tombé sur un projet sympa nommé Ramroot . En utilisant Ramroot, nous pouvons exécuter Arch Linux entièrement à partir de RAM ! Oui, vous avez bien lu.

Ramroot charge l'intégralité du système de fichiers racine dans la RAM au démarrage du système. Il est spécialement conçu pour Arch Linux. Je l'ai essayé dans Ubuntu, mais cela n'a pas fonctionné. J'espère que le développeur le fera fonctionner également sur d'autres distributions Linux.

Exécuter Arch Linux à partir de la RAM en utilisant Ramroot

Ramroot est disponible en AUR , vous pouvez donc l'installer à l'aide de n'importe quel programme d'assistance AUR, par exemple Paru ou Oui .

$ Paru -S ramroot

Ou,

$ yay -S ramroot

Ensuite, activez Ramroot à l'aide de la commande :

$ ramroot enable

Exemple de résultat :

:: 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 cela ne fonctionne pas pour une raison quelconque, récupérez le binaire Ramroot du référentiel GitHub et exécutez-le comme décrit ci-dessous.

Git clone le dépôt Ramroot à l'aide de la commande :

$ 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.

La commande ci-dessus créera un dossier nommé "ramroot" dans le répertoire de travail actuel et y enregistrera tout le contenu du projet Ramroot.

Ensuite, allez dans la bin Ramroot répertoire :

$ cd ramroot/bin/

Transformez les fichiers suivants en exécutable :

$ chmod +x ramroot-build
$ chmod +x ramroot-enable

Enfin, exécutez la commande suivante pour activer le Ramroot.

$ ./ramroot-enable

Entrez votre sudo ou root mot de passe lorsque vous y êtes invité.

Maintenant, redémarrez le système. Au processus de démarrage, vous serez invité à charger le système de fichiers dans la RAM. Tapez "Oui" pour continuer.

Charger le système de fichiers racine dans la RAM

Veuillez noter que cette invite (y/N) est définie par défaut sur oui avec un délai de 15 secondes si 4G ou plus de RAM est détecté. Depuis, j'ai 2 Go de RAM, j'ai dû taper "Y" pour continuer.

Attendez un moment pour terminer le processus de chargement. Il faudra plusieurs minutes pour charger l'intégralité du système de fichiers racine dans la RAM. Assurez-vous d'avoir suffisamment de RAM installée sur votre système.

Si vous souhaitez maintenir des temps de synchronisation RAM plus rapides, essayez de garder un système propre et réduit. Supprimez les packages anciens et inutiles et gardez votre dossier de cache de packages propre.

Mise à jour :

Si vous utilisez la version la plus récente de Ramroot, la taille de la RAM installée doit être supérieure d'au moins 500 Mo à la taille du système de fichiers racine . S'il y a au moins 500 Mo de RAM de plus que la taille du système de fichiers, l'utilisateur sera invité à charger le système de fichiers racine dans la RAM. Si la taille du système de fichiers racine est inférieure à la mémoire installée, la dernière version de Ramroot ne chargera pas le système de fichiers racine dans votre RAM. Il ne vous demandera même pas s'il doit charger le système de fichiers dans la RAM ou non. Le système de fichiers sera automatiquement monté sur votre disque local et Arch Linux démarrera normalement.

Une fois le système de fichiers racine chargé dans la RAM, vous serez redirigé vers rootfs rapide. Veuillez noter que rien ne sera enregistré après le redémarrage . Parce que notre Arch Linux se charge entièrement depuis la RAM, pas depuis le disque local.

Système de fichiers racine chargé dans la RAM

Afficher l'aide Ramroot

Pour afficher la section d'aide de Ramroot, exécutez :

$ ramroot --help

Exemple de résultat :

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).

Supprimer Ramroot

Redémarrez votre système et tapez "n" lorsqu'il demande de charger le système de fichiers dans la RAM pour se connecter normalement à votre système Arch Linux. Allez dans le ramroot/bin dossier et rendez les fichiers suivants exécutables.

$ cd ramroot/bin/
$ chmod +x ramroot-disable
$ chmod +x ramroot-remove

Enfin, supprimez Ramroot de votre système Arch Linux à l'aide des commandes :

$ ./ramroot-disable
$ ./ramroot-remove

Si vous avez installé Ramroot depuis AUR, supprimez-le à l'aide des commandes :

$ ramroot disable
$ ramroot remove

Et, enfin, supprimez le package Ramroot :

$ sudo pacman -Rns ramroot

Conclusion

Ramroot peut être utile pour ceux qui veulent faire des tests sur leur boîte Arch Linux. De plus, si vous souhaitez une session privée pour apprendre les commandes Linux, Ramroot est certainement utile. Essayez-le et n'oubliez pas de partager vos réflexions sur ce projet dans la section des commentaires ci-dessous.


Arch Linux
  1. Comment ignorer la mise à niveau d'un package dans Arch Linux

  2. Linux - Comment exécuter un chargeur de démarrage à partir de Linux ?

  3. Exécutez la commande sur plusieurs serveurs Linux à partir de Windows

  4. Exécuter un script canalisé à partir de stdin (Linux/Shell Scripting)

  5. Comment faire pour que le système Ubuntu démarre et s'exécute entièrement en RAM?

Comment compiler PHP7.0/PHP7.1 à partir de la source sur Arch Linux

Comment connecter l'iPhone à Arch Linux

Comment empêcher PHP-FPM de consommer trop de RAM sous Linux

Comment installer Skype sur Arch Linux

Comment installer Java sur Arch Linux

10 meilleurs systèmes d'exploitation / distributions Linux portables à installer et à exécuter à partir d'USB