Squash en Union FileSystem
Inhoud
Inleiding
Het Squash filesysteem is een goed gecomprimeerd 'alleen lezen' systeem voor Linux .
De bestanden hebben meestal de extentie .sfs en kunnen worden verbonden aan het filesysteem
als zijnde een virtuele drive .
Het Union systeem steld je instaat om verschillende folder onder 1 en dezelfde folder zichtbaar te maken (te verenigen).
Squash
Maken
Maak een klad folder 'my-klad' aan en zet daarin alles wat je opm je virtuele drive 'my-drive' wilt gaan zetten .
Inlcusief alle sub folder .
Met de opdracht mksquashfs my-klad my-drive.sfs maak je het bestand aan .
Mount
Om je virtuele drive te binden aan het filesysteem moet je een mountpoint hebben (of maken) .
B.v. mkdir /mnt/mountvirdrive .
Nu kun je je virtuelle drive mounten .
mount -t squashfs my-drive.sfs /mnt/mountvirdrive -o loop
Nu kijk je de inhoud van je virtuelle drive bekijk met ls /mnt/mountvirdrive of m.b.h. je window-file-manager .
UnMount
Verwijderen van je virtuele drive doe je d.m.v. umount opdracht .
umount /mnt/mountvirdrive
(ook het loop device is dan weer beschikbaar)
Overige
Je kunt deze bestanden ook wijzigen en bewerken zoals je dat kunt met .zip bestanden .
Voor mee informatie zie : SquashFS-HOWTO
Union
Unionfs is ontwikkeld in 2004 op de Stony Brook universiteit en voegd de inhoud van verschillende folders (ook wel 'branches' gemoemd) zamen in een folder terwijl de ze physiek gescheiden blijven .
Gebruik
In volgende voorbeeld verenigen we twee folders zamen in een folder . Wel aannemende dat de folder bestaan .
mount -t unionfs -o dirs=/mnt/cdrom1=ro:/mnt/cdrom2=ro none /mnt/union
Na deze 'mount' bevat de folder /mnt/union alle files en folder van beide cdrom's .
Wel met dien verstande dat cdrom1 voorrang heeft boven cdrom2 als het gaat om een zelfde folder / bestands naam .
Voor het ongedaanmaken gebruik je umount /mnt/union .
Een meer uitgebreide methode is die welke gebruik maakt van unionctl .
Een opdracht als unionctl /mnt/union --list geeft aan welke elementen aan de union zijn gekoppeld .
Zou kun je later een union toevoegen :
unionctl /mnt/union --add --before /mnt/cdrom1 -mode rw /mnt/changes .
Hiermee kun je de veranderingen opslaan in /mnt/change welke als eerste op de union stack staat .
Wil je een union verwijderen (uit zo'n union stack) dan doe je dit met --remove eventueel met een plaatsbepaling (--before --after) .
Vb. unionctl /mnt/union --remove /mnt/change . De wijzigingen staan op /mnt/change .
Voorbeeld
Een leuk gebruik hiervan is het toevoegen van iets als OpenOffice aan je Puppy .
OpenOffice is geheel geinstaleerd iets van 300 mB terwijl de .sfs maar 100 Mb is .
Door de Squash te kombieneren met Union kun je heel OpenOffice gebruiken zonder deze geheel op je hardeschijf te zetten .
mount -t squashfs /OpenOffice.sfs /opt/OO -o loop
mount -t unionfs -o dirs=/usr/local:/opt/OO/local=ro none /usr/local .
Nu zijn alle folder van /opt/OO/local vereningd met die van /usr/local waardoor alle opdrachten beschikbaar zijn .
Dit daar het path naar /usr/local/bin standaard open staat .
Wil de OpenOffice weer kwijt dan : umount /usr/local en umount /mnt/opt/OO is voldoende .
Overige
Hier wat interesante referenties :
Kernel Korner - Unionfs: Bringing Filesystems Together
A Stackable Unification File System
Heb je hierwat aan gehad mail mij dan maar eens .