Jeena Paradies: read-only filesystem, wie bekomme ich das hin?

Hallo,

Ich habe hier ein schönes Linux das ich mir so zurechtgebogen habe, dass es genau das macht was ich will (naja ein paar Sachen muss ich noch hinbiegen aber egal).

Dieses Linux befindet sich auf einem kleinen 128MB Chip. Dieser Chip ist ca. 20.000 mal beschreibbar (oder so). Das ganze System ist jetzt schon so weit fertig und ich möchte den Chip read-only machen, bzw. das Betriebssystem. Es läuft darauf ein Opera, der ab und zu auch mal Daten in den Cache schreibt und warscheinlich schreiben auch noch andere Programme immer mal wieder was auf die "Platte". Es soll irgendwie möglich sein mit Hilfe von so etwas wie einer RAM-Disk oder so das ganze read-only zu machen. Alles was geschrieben wird, wird nach dem reboot einfach wieder vergessen, so wie bei einer live-CD.

Ich habe irgendwie über so ein Filesystem irgendwo etwas gehört, das sich über das normale drüberlegt oder so, und alles abfängt, was sonst auf die Platte geschrieben worden wäre. Hat jemand eine Ahnung nach was ich suchen muss? Alles was ich sonst finde geht nur darum Dateien auf eine andere Partition zu verschieben wo geschrieben werden darf. Bei mir gibt es aber so eine Partition nicht.

Grüße
Jeena Paradies

  1. echo $begrüßung;

    Es soll irgendwie möglich sein mit Hilfe von so etwas wie einer RAM-Disk oder so das ganze read-only zu machen. Alles was geschrieben wird, wird nach dem reboot einfach wieder vergessen, so wie bei einer live-CD.

    Man nehme eine Live-CD und schaue, wie das da gemacht ist. Beispielsweise eine Gentoo-Installations-CD. Nach einem Start in einem virtuellen Rechner bot sich mir folgendes Bild:

    mount listete ein tmpfs montiert an /, sowie die CD montiert in irgendein Unterverzeichnis. Der Rest ist für die aktuelle Betrachtung unwichtig.
    Ein ls -la / lieferte weitere interessante Hinweise. Einige Verzeichnisse, waren direkt in / angelegt und mit Inhalt gefüllt, andere waren nur Symlinks auf das jeweilige CD-Verzeichnis.
    Die "direkten" Verzeichnisse waren etc, home, mnt, root, tmp, var, also alles welche, wo das System im laufenden Betrieb schreiben möchte. Deren Inhalt wurde höchstwahrscheinlich beim Boot-Vorgang von der CD dort hineinkopiert. In bin, boot, lib, opt, sbin und usr wird im laufenden Betrieb nicht geschrieben, weswegen sie auch auf der CD verblieben und nur per Symlink eingebunden waren. Hinzu kommen noch dev, proc und sys, die eine Sonderstellung einnehmen.

    Als nächstes würde ich nun Informationen über das tmp-Filesystem einholen und versuchen, den Artikel wiederzufinden, der sich mit dem Erstellen einer solchen Live-CD befasste, um da vielleicht noch ein paar Erkenntnise zu gewinnen.
    Ah, Teil 2 ging einfach, ein Verweis fand sich in meiner Linksammlung http://gentoo-wiki.com/HOWTO_build_a_LiveCD_from_scratch, ersteres überlasse ich dir ... :-)

    echo "$verabschiedung $name";

    1. Hallo,

      Danke erst mal für deine ausführliche Info. Ich glaube aber dass ich gerade wieder das gefunden habe wonach ich eigentlich gesucht habe: UnionFS

      Grüße
      Jeena Paradies

      1. Hallo,

        Es klappt mit UnionFS schon prächtig wenn ich das von Hand eingebe, aber wie gebe ich das hier in die /etc/fstab ein?

        mount -t unionfs -o dirs=/mnt/tmpfs=rw:/dev/hda4=ro unionfs /

        Irgendwie kappiere ich nicht so recht.

        Grüße
        Jeena Paradies

        1. Hallo Jeena.

          Es klappt mit UnionFS schon prächtig wenn ich das von Hand eingebe, aber wie gebe ich das hier in die /etc/fstab ein?

          mount -t unionfs -o dirs=/mnt/tmpfs=rw:/dev/hda4=ro unionfs /

          Theoretisch so:

          unionfs  /  untionfs  dirs=/mnt/tmpfs=rw:/dev/hda4=ro

          (Mir steht dieses Dateisystem hier nicht zur Verfügung, ausprobieren ist also nicht drin.

          Einen schönen Freitag noch.

          Gruß, Mathias

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
          1. Hallo,

            none /mnt/tmpfs shm defaults 0 0
            unionfs  /  untionfs  dirs=/mnt/tmpfs=rw:/dev/hda4=ro

            Hm, jo theoretisch sieht das sogar recht gut aus, ich muss nur wohl noch 0 1 anhängen (oder doch 0 2?). Aber es gibt da ein sehr blödes Problem. Das Henne-Ei Problem. Ich kann ja nich /mt/tmpfs in / einhängen, wenn es / noch nicht gibt. Also muss ich /dev/hda4 davor auf / einhängen, was aber wiederum verhindert dass ich das unionfs da anhängen kann ...

            Gibt es irgendeine einfache Möglichkeit, oder muss ich den umständlichen Weg gehen, und alle verzeichnisse in die man schreiben können soll auf das unionfs extra mounten? So weit ich das sehe, wären das /var /tmp /home /dev /etc/mtab

            Grüße
            Jeena Paradies

            1. Hallo,

              [link=http://132.230.4.73/trac/dxs/wiki/UnionfsBenutzen] nach sollte es ja funktionieren, aber leider beschreiben sie nur sehr wage wie. Irgendwas mit initrd ist es aber ich finde nicht heraus was.

              Grüße
              Jeena Paradies

  2. Hallo Jeena,

    Ich habe hier ein schönes Linux das ich mir so zurechtgebogen habe, dass es genau das macht was ich will (naja ein paar Sachen muss ich noch hinbiegen aber egal).

    Einfach auf CD brennen geht nicht?

    Viele Grüße aus Freiburg,
    Marian

    --
    Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
    <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
    1. Hallo,

      Einfach auf CD brennen geht nicht?

      Ähm, nein ich denke nicht, was soll das bringen? Das System auf dem es laufen soll hat kein CDROM-Laufwerk und ansonsten auch nur eine 128 MB "Festplatte", bzw. so einen Flash-Speicher.

      Grüße
      Jeena Paradies