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.