Debian aus dem RAM starten

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
rok
Beiträge: 231
Registriert: 23.02.2006 16:58:28

Debian aus dem RAM starten

Beitrag von rok » 19.12.2008 15:13:10

Hallo!

Ich nutze seit geraumer Zeit ein EPIA CN Board als Videoserver. Das Ding spielt den ganzen Tag (mittels mplayer) ein und das selbe Video ab und fängt wieder von vorn an. Drin steckt nicht viel. Nur ein IDE-Flash Chip und ein 512MB RAM Riegel.

Blöd ist, dass das Gerät mittels Haussicherung abends ausgeschaltet wird. Morgens wird der Saft wieder angeschaltet und das Gerät startet normal (gem. BIOS Einstellungen).
Durch das ausschalten kann es aber passieren, dass das rw-Filesystem irgendwann heftig kaputt ist. So wie das jetzt der Fall ist... :(
Dann startet z.B. der Soundtreiber nicht mehr, oder im schlimmsten Fall geht gar nix mehr.

Die Idee die ich hatte war jetzt, dass komplette System in den RAM zu laden und von dort das Video abzuspielen. Dann kann das eigentliche System auf HDD als ro gemountet werden und nimmt keinen Schaden mehr.

Geexbox macht das schon ganz prima, nur sehe ich das Video direkt auf dem PC-Monitor, aber nicht im TV. Liegt wohl an irgend einem fehlenden Treiber.

Mittels Debian läuft ja alles weiterhin (hab ein Image gespeichert), aber auf Dauer finde ich die Lösung mit "System im RAM" funktionaler und stabiler.

Hat jemand eine Ahnung, wie ich das bestehende System umbauen kann, damit es wie vorgestellt läuft? Oder gibt es gar Alternativen zu Geexbox, die mein EPIA-Board unterstützen? Oder gibt es evtl. eine Einstellung, die ich machen sollte, damit Geexbox auch was auf dem Fernseher anzeigt?

BTW: Es gibt kein CD-ROM Laufwerk im System. Ich kann maximal jetzt eins per USB anstecken - für Installationszwecke.

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Debian aus dem RAM starten

Beitrag von cosmac » 19.12.2008 17:38:56

hi,

das komplette System ins RAM zu kopieren halte ich für stark übertrieben, schließlich werden die meisten Dateien sowieso nur gelesen. Für ähnliche Anforderungen habe ich mal ein normales Lenny auf read-only umgebaut und fand die Aktion ziemlich simpel; bestimmt einfacher als das Video auf TV zu bringen ;)
Grundlage war eine minimal-Installation auf einer einzigen Partition. Aus anderen Gründen hab' ich einen angepassten Kernel ohne initrd gebaut und brauchte deshalb kein udev. Insofern gibt's bei dir evt. mehr Komplikationen.

Das Grundprinzip ist, nur die Verzeichnisse und Dateien auf ein tmpfs zu legen, bei denen es nicht anders geht. Die ersten beiden (/var/run und /var/lock) sind bei Debian schon vorbereitet,
man muss nur in /etc/default/rcS die Variablen RAMRUN und RAMLOCK auf "yes" umstellen. Das nächsten beiden, /tmp und /var/log bekommen ein eigenes tmpfs. Die passende /etc/fstab sieht dann ungefähr so aus:

Code: Alles auswählen

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults                      0  0
/dev/hda2       /               ext2    ro,noatime,errors=remount-ro  0  1
tmpfs           /var/log        tmpfs   defaults                      0  0
tmpfs           /tmp            tmpfs   defaults                      0  0
tmpfs           /home           tmpfs   defaults                      0  0
/home muss evt. auch beschreibbar sein, weil manche Anwendung ihre config immer zum Schreiben öffnet, obwohl es nicht nötig wäre. Das ist das einzige Verzeichnis, das beim booten mit "cp -a" kopiert wird (in /etc/rc.local). Die Optionen noatime und errors=... sind für den Wartungsfall, wenn / doch read-write gemountet ist.

Dann gibt es noch 3 spezielle Dateien, die nur aus Tradition nicht sowieso in /var/run liegen:
* /etc/mtab wird ein Link auf /proc/mounts
* /etc/network/run wird ein Link auf /lib/init/rw/run
* /dev/log ist ein Socket für syslog, der beim Start neu erzeugt wird. Da das nicht mehr geht, gibt es einen Link von /dev/log auf /var/run/log. Der muss entsprechend in /etc/rsyslog.conf eingetragen werden.

Das war's eigentlich, was noch fehlen könnte, ist z.B. der Seed für /dev/random. Der muss aber auf so einem System nicht unbedingt über einen Reboot gerettet werden. Ich hab' bestimmt noch was vergessen, aber du kannst ja nochmal in irgendeinem Forum nachfragen...
Beware of programmers who carry screwdrivers.

rok
Beiträge: 231
Registriert: 23.02.2006 16:58:28

Re: Debian aus dem RAM starten

Beitrag von rok » 20.12.2008 12:24:01

Danke, werde es evtl. ausprobieren. Vorher habe ich aber noch eine Frage:
Wenn "nur" gelesen wird - was ja auch bisher nur der Fall war - dann dürfte ja nix kaputt gehen. Dummerweise war aber z.B. der Soundtreiber im Eimer. Hier hörte man nix mehr und die Alsa-Tools liesen sich nicht mehr starten. Lag das daran, weil die HDD bisher als rw gemountet war? Wäre das dann nicht mehr möglich, weil die HDD dann nur noch ro ist?

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Debian aus dem RAM starten

Beitrag von cosmac » 20.12.2008 13:27:56

bei einer normalen Installation werden alle oben erwähnten Dateien (vor allem /var/log) regelmäßig auf die HDD geschrieben. Das reicht auf jeden Fall um beim "Stromausfall" das Dateisystem zu beschädigen.

Wenn eine Partition read-only gemountet wird, kann kein normaler Prozess irgendwas auf diese Partition schreiben. Damit wird es jedenfalls sehr viel sicherer, das Dateisystem kann einfach nicht mehr verändert werden. Es bleiben allerdings noch Hardware-Fehler, Kernel-Bugs oder Prozesse mit root-Rechten, die direkt auf das Device schreiben, aber wo sollen die her kommen?

Eine Frage bleibt noch: sollte man den regelmäßigen File System Check laufen lassen? Eigentlich ist er überflüssig, weil das Dateisystem nie verändert wird -- wenn da nicht mögliche Hardware-Fehler wären. Allerdings schreibt er den Zeitpunkt des Checks in den Superblock, was auch wieder ein Risiko ist...</paranoia>
Beware of programmers who carry screwdrivers.

Antworten