From 5156f07940a4933e135688b7182ece6e8b433d88 Mon Sep 17 00:00:00 2001 From: Tim Eertmoed Date: Mon, 31 Mar 2025 15:49:12 +0200 Subject: [PATCH] =?UTF-8?q?data/scripts/ramfsROOT.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/scripts/ramfsROOT.sh | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 data/scripts/ramfsROOT.sh diff --git a/data/scripts/ramfsROOT.sh b/data/scripts/ramfsROOT.sh new file mode 100644 index 0000000..2434659 --- /dev/null +++ b/data/scripts/ramfsROOT.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e + +fail() { + echo -e "$1" >&2 + exit 1 +} + +# Prüfen, ob genügend RAM frei ist (in KB) +RAM_FREE=$(grep MemAvailable /proc/meminfo | awk '{print $2}') +if [ "$RAM_FREE" -lt 3000000 ]; then # 3GB als Mindestgrenze + fail "Nicht genügend freier RAM!" +fi + +# RAMFS als neues Root mounten +echo "Erstelle RAM-basiertes Root-Dateisystem..." +mount -t ramfs -o mode=0755 ramfs /mnt || fail "Fehler beim Mounten von ramfs" + +# Sicherstellen, dass notwendige Verzeichnisse existieren +mkdir -p /mnt/{proc,sys,dev,run,tmp} + +# Komplettes Root-Dateisystem nach RAMFS kopieren +echo "Kopiere System nach RAM..." +cp -ax / /mnt || fail "Fehler beim Kopieren nach RAMFS" + +# Mountpunkte ins neue Root verschieben +mount --move /proc /mnt/proc +mount --move /sys /mnt/sys +mount --move /dev /mnt/dev +mount --move /run /mnt/run + +# Wechsle zum neuen Root-FS +cd /mnt +pivot_root . oldroot || fail "pivot_root fehlgeschlagen" + +# Altes Root unmounten +umount -l /oldroot/proc || true +umount -l /oldroot/sys || true +umount -l /oldroot/dev || true +umount -l /oldroot/run || true +umount -l /oldroot || true + +# Startet das System normal weiter +exec /sbin/init