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!
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