Eine Möglichkeit Plattenplatz zu sparen, und eventuell auch etwas mehr Lese-Geschwindigkeit zu erzielen, ist in OpenSuSE11 das /usr Verzeichnis zu komprimieren. Das geht mit dem squashfs-Dateisystem schonmal problemlos. Allerdings ist das squashfs-Dateisystem nicht beschreibbar. Dafür gibt es das unionFS-Dateisystem. Das ist "stapelbar" und kann mehrere und fremdartige Dateisysteme zu einem transformieren. Ich habe mich für das aufs-Dateisystem entschieden, weil es recht problemlos zu installieren war, und auch noch weiter gepflegt wird.
Beispiel:
Install squashfs and aufs with YAST.
Install aufs
$ modpobe aufs
Make space for the filesystem:
$ mkdir -p /.filesystems/usr/overlay
$ mkdir -p /.filesystems/usr/ro_dir
Now, compress your filesystem:
$ mksquashfs /usr /.filesystems/usr/usr.sqfs
and add the following lines to /etc/fstab:
/.filesystems/usr/usr.sqfs /.filesystems/usr/ro_dir squashfs ro,loop,nodev 0 0
none /usr aufs noatime,br:/.filesystems/usr/overlay=rw:/.filesystems/usr/ro_dir=ro 0 0
Copy paste,tee,comm,diff,tail,readlink,cut and tr from /usr to /bin
$ cp /usr/bin/paste /usr/bin/tee /usr/bin/comm /usr/bin/diff /usr/bin/tail /usr/bin/readlink /usr/bin/cut /usr/bin/tr /bin
Move the uncompressed /usr to /usr.old
$ mv /usr usr.old
Make a new /usr
$ mkdir usr
Reboot and give it a try. If it works, remove the /usr.old directory to reclaim the space.
$ rm -r /usr.old
Damit erhalten Sie ein komprimiertes Verzeichnis /usr, dass aber durch das aufs-Dateisystem trotzdem beschreibbar. bleibt. Mein /usr Verzeichnis war 4,1 GB groß,
nach der Komrprimierung mit squashfs waren es nur noch 1,7 GB. Das sind fast 2,4 GB weniger (41% )!!!
Meine fstab:
/dev/disk/by-id/scsi-SATA_HTS721060G9AT00_XYZ-part2 / ext4dev acl,user_xattr,nodiratime,noatime,extents,barrier=0,mballoc,data=writeback,commit=100,errors=remount-ro,nobh 1 1
/dev/disk/by-id/scsi-SATA_HTS721060G9AT00_XYZ-part3 /home ext3 acl,user_xattr,nodiratime,noatime,data=writeback,commit=100,errors=remount-ro,nobh 1 2
/dev/disk/by-id/scsi-SATA_HTS721060G9AT00_XYZ-part1 swap swap defaults 0 0
/home/xxx/.filesystems/linksys/linksys.sqfs /home/xxx/.filesystems/linksys/ro_dir squashfs ro,loop,nodev 0 0
none /home/xxx/Linksys aufs noatime,nodiratime,br:/home/xxx/.filesystems/linksys/overlay=rw:/home/xxx/.filesystems/linksys/ro_dir=ro 0 0
/.filesystems/usr/usr.sqfs /.filesystems/usr/ro_dir squashfs ro,loop,nodev 0 0
none /usr aufs noatime,nodiratime,br:/.filesystems/usr/overlay=rw:/.filesystems/usr/ro_dir=ro 0 0
/.filesystems/opt/opt.sqfs /.filesystems/opt/ro_dir squashfs ro,loop,nodev 0 0
none /opt aufs noatime,nodiratime,br:/.filesystems/opt/overlay=rw:/.filesystems/opt/ro_dir=ro 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs noauto 0 0
debugfs /sys/kernel/debug debugfs noauto 0 0
usbfs /proc/bus/usb usbfs noauto 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
P.S.:
mount -t aufs -o dirs=/path/to/files1:/path/to/files2 none /path/to/files