GNU/Linux >> LINUX-Kenntnisse >  >> Arch Linux

Ramroot – Führen Sie Arch Linux vollständig aus dem RAM aus!

Wie Sie bereits wissen, gibt es jeden Tag Hunderte von Neuzugängen im GitHub-Repository. Aber viele gute Projekte bleiben unbemerkt und erhalten nie die Aufmerksamkeit, die sie verdienen. Heute bin ich über ein cooles Projekt namens Ramroot gestolpert . Mit Ramroot können wir Arch Linux vollständig aus dem RAM ausführen! Ja, Sie haben richtig gelesen.

Ramroot lädt beim Systemstart das gesamte Root-Dateisystem in den Arbeitsspeicher. Es wurde speziell für Arch Linux entwickelt. Ich habe es in Ubuntu versucht, aber es hat nicht funktioniert. Ich hoffe, der Entwickler schafft es, auch mit anderen Linux-Distributionen zu arbeiten.

Führen Sie Arch Linux aus dem RAM mit Ramroot aus

Ramroot ist in AUR verfügbar , sodass Sie es mit beliebigen AUR-Hilfsprogrammen installieren können, zum Beispiel Paru oder Juhu .

$ Paru -S ramroot

Oder,

$ yay -S ramroot

Aktivieren Sie dann Ramroot mit dem Befehl:

$ ramroot enable

Beispielausgabe:

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

Wenn es aus irgendeinem Grund nicht funktioniert, holen Sie sich die Ramroot-Binärdatei aus dem GitHub-Repository und führen Sie sie wie unten beschrieben aus.

Git klont das Ramroot-Repository mit dem Befehl:

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

Der obige Befehl erstellt einen Ordner namens "ramroot" im aktuellen Arbeitsverzeichnis und speichert den gesamten Inhalt des Ramroot-Projekts darin.

Gehen Sie dann zum bin von Ramroot Verzeichnis:

$ cd ramroot/bin/

Machen Sie die folgenden Dateien zu einer ausführbaren Datei:

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

Führen Sie abschließend den folgenden Befehl aus, um Ramroot zu aktivieren.

$ ./ramroot-enable

Geben Sie Ihren sudo ein oder root Passwort, wenn Sie dazu aufgefordert werden.

Starten Sie nun das System neu. Beim Startvorgang werden Sie aufgefordert, das Dateisystem in den Arbeitsspeicher zu laden. Geben Sie "Ja" ein um fortzufahren.

Root-Dateisystem in RAM laden

Bitte beachten Sie, dass diese Eingabeaufforderung (j/n) standardmäßig auf ja lautet mit einem Timeout von 15 Sekunden bei 4G oder mehr RAM erkannt. Da ich 2 GiB RAM habe, musste ich "Y" eingeben um fortzufahren.

Warten Sie eine Weile, bis der Ladevorgang abgeschlossen ist. Es dauert einige Minuten, das gesamte Root-Dateisystem in den Arbeitsspeicher zu laden. Stellen Sie sicher, dass auf Ihrem System ausreichend RAM installiert ist.

Wenn Sie schnellere RAM-Synchronisierungszeiten beibehalten möchten, versuchen Sie, ein sauberes und abgespecktes System zu halten. Entfernen Sie alte und unnötige Pakete und halten Sie Ihren Paket-Cache-Ordner sauber.

Aktualisierung:

Wenn Sie die neueste Ramroot-Version verwenden, sollte die installierte RAM-Größe mindestens 500 MB größer sein als die Größe des Root-Dateisystems . Wenn mindestens 500 MB mehr RAM als die Größe des Dateisystems vorhanden sind, wird der Benutzer aufgefordert, das Root-Dateisystem in den RAM zu laden. Wenn die Größe des Root-Dateisystems kleiner als der installierte Speicher ist, lädt die neueste Ramroot-Version das Root-Dateisystem nicht in Ihren Arbeitsspeicher. Es wird Sie nicht einmal fragen, ob es das Dateisystem in den RAM laden soll oder nicht. Das Dateisystem wird automatisch auf Ihrer lokalen Festplatte gemountet und Arch Linux bootet normal.

Sobald das Root-Dateisystem in den RAM geladen ist, landen Sie in rootfs prompt. Bitte beachten Sie, dass nach dem Neustart nichts gespeichert wird . Weil unser Arch Linux vollständig aus dem RAM geladen wird, nicht von der lokalen Festplatte.

Root-Dateisystem in RAM geladen

Ramroot-Hilfe anzeigen

Um den Ramroot-Hilfeabschnitt anzuzeigen, führen Sie Folgendes aus:

$ ramroot --help

Beispielausgabe:

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

Ramroot entfernen

Starten Sie Ihr System neu und geben Sie "n" ein wenn es darum bittet, das Dateisystem in den RAM zu laden, um sich normal bei Ihrem Arch Linux-System anzumelden. Gehen Sie zu ramroot/bin Ordner und machen Sie die folgenden Dateien ausführbar.

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

Entfernen Sie schließlich Ramroot von Ihrem Arch Linux-System mit den folgenden Befehlen:

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

Wenn Sie Ramroot von AUR installiert haben, entfernen Sie es mit folgenden Befehlen:

$ ramroot disable
$ ramroot remove

Und schließlich das Ramroot-Paket entfernen:

$ sudo pacman -Rns ramroot

Schlussfolgerung

Ramroot könnte für diejenigen hilfreich sein, die einige Tests auf ihrer Arch Linux-Box durchführen möchten. Auch wenn Sie eine private Sitzung wünschen, um Linux-Befehle zu lernen, ist Ramroot definitiv hilfreich. Probieren Sie es aus und vergessen Sie nicht, Ihre Meinung zu diesem Projekt im Kommentarbereich unten mitzuteilen.


Arch Linux
  1. So ignorieren Sie die Aktualisierung eines Pakets in Arch Linux

  2. Linux – Wie führe ich einen Bootloader von Linux aus?

  3. Führen Sie den Befehl auf mehreren Linux-Servern von Windows aus aus

  4. Ausführen eines von stdin geleiteten Skripts (Linux/Shell-Skripterstellung)

  5. Wie kann man das Ubuntu-System dazu bringen, vollständig im RAM zu booten und zu laufen?

So kompilieren Sie PHP7.0/PHP7.1 aus dem Quellcode unter Arch Linux

So verbinden Sie das iPhone mit Arch Linux

So verhindern Sie, dass PHP-FPM unter Linux zu viel RAM verbraucht

So installieren Sie Skype unter Arch Linux

So installieren Sie Java unter Arch Linux

10 beste tragbare Linux-Betriebssysteme/Distributionen zum Installieren und Ausführen von USB