UnionFS #

Bei unionfs handelt es sich um ein Linux-Filesystem das dazu dient, mehrere Filesysteme "übereinanderzulegen". Dabei kann man mehrere Verzeichnisbäume kombinieren, von denen einige read-only und andere read-write sein können. Ein gutes Beispiel ist eine beschreibbare CD. Man mountet die eigentliche CD und legt ein leeres Verzeichnis, das auf der Festplatte liegt, "darüber". Die Kombination aus beiden wird nun mit unionfs gemountet. Sobald man irgendetwas in das entstehende Verzeichnis hineinschreibt, wird dieses auf die Festplatte geschrieben. Alles nicht geänderte wird jedoch von der CD gelesen (und braucht auf der Festplatte keinen Platz). UnionFS wird auch schon von einigen Live-CD Distributionen in genau dieser Weise benutzt.

Installation The Debian Way #

Paketerstellung #

Da unionfs noch nicht im Standard-Kernel enthalten ist, hat der Liebe Gott vor das Glücksgefühl leider eine kurze Installationsprozedur gesetzt. Dazu kommt, das das aktuelle unionfs einen Kernel 2.6.11 benötigt. Um diesen zu installieren, muss man auf einem Debian Sarge System Testing-Pakete mit einbinden (siehe AptPaketverwaltung bzw. UnstablePaketeNutzen). Dann installiert man mit folgendem Befehl die Kernel-Sourcen (die wir für die Übersetzung des UnionFS-Kernelmodules benötigen), packt sie aus und konfiguriert sie. Vorher ist es sinnvoll, den Kernel, für den man das Paket erstellt, auch wirklich laufen zu haben, sonst sollte man mit der Option --kvers-liste den Kernel angeben, für den man übersetzen will.

  aptitude install linux-image-2.6.12       (danach ggf. reboot)
  aptitude install linux-source-2.6.12
  cd /usr/src
  tar xjf linux-source-2.6.12.tar.bz2
  ln -s linux-source-2.6.12 linux
  cd linux
  cp /boot/config-2.6.12 .config
  make prepare

Dann startet man modules-assistant und geht die angebotenen Menüpunkte der Reihe nach durch. In der langen Auswahlliste von Debian unterstützter Module wählt man unionfs. Der Rest geht so gut wie von alleine.

eigentliche Installation #

Auf dem Rechner, auf dem man UnionFS benutzen will (das kann natürlich der gleiche sein, auf dem compiliert wurde, muss aber nicht), führt man nun folgendes aus:

  dpkg -i kernel-image-2.6.14lug_1.0_i386.deb
  dpkg -i unionfs-modules-2.6.14lug_1.0.14-1+1.0_i386.deb
  aptitude install unionfs-utils

Konfiguration des Systems #

Nun führt man eigentlich nur noch einen simplen Mount-Befehl aus wie auf http://www.unionfs.org erklärt, z.B. so

  mount -t unionfs -o dirs=/var/cdbuffer=rw:/media/cdrom=ro none /media/writablecd

und los gehts!

Beim Neubauen meines Routers nun eine kleine Änderung, es scheint, dass das angeben von rw nicht mehr notwendig ist, so lege ich den buffer nun über das filesystem
 mount -t unionfs -o dirs=/dev/shm:/var=ro none /var
 mount -t unionfs -o dirs=/dev/shm:/tmp=ro none /tmp
 mount -t unionfs -o dirs=/dev/shm:/opt=ro none /opt
Tags:  Linux

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-5) was last changed on 02-May-2012 16:31 by Peter Hormanns