Get RheaVFS at Fast, secure and Free Open Source software downloads


Transparent access to archived data in Linux OS.


1. What is it?
2. Installation
3. How to use RheaVFS - examples
4. Download
5. About the author

1. What is it?

RheaVFS allows you to turn an archive into a virtual directory, so all the files in the archive can be accessed as if they were in the virtual directory. This works transparantly for all programs without any need to modify them.

Currently RheaVFS is in a beta stage of the development. It has read/write support for the following archives:

zip, tar, bzip2, gzip, gpg (encryption)

2. Installation

There are two principal parts in the RheaVFS system: a redirector and a server. Currently a redirector is implemented by a kernel patch which must be installed in the Linux kernel. The server part uses a FUSE library to create a virtual filesystem.

2.1. The kernel patch

The Linux kernel patch is in the 'kernel_patch' subdirectory. There are versions for kernels 2.6.20 through 2.6.23. Currently only i386 is supported, but extending to other architectures should be straitforward (as soon as I get a new HW ;-)

Patch your favorite kernel:

patch -p1 < shdw-2.6.23.patch
and recompile-install-reboot.

2.2. The server

Required libraries (Fedora 6 packages): Type 'make' in the 'src/' subdirectory and the VFS server will be (hopefully) compiled.

2.3. Running

There's a script: 'src/run-vfs'. It will setup some minor things and run FUSE VFS server in a foreground. The default mount point is at ~/usrmnt. The VFS server will automaticaly setup 'shadow directories' implemented in the kernel patch.

Install scripts do not work.

3. How to use RheaVFS - examples

The basic use-case is to open an archive like a directory:

To open a file as a directory you must append an escape character to its name - it's the '^'. You can read and write, create and delete any file in the virtual directory and all the changes will be propagated back to the source file.

TAR.GZ/BZ2 files are a little more tough. You must use two '^' to open the archive:

	cd foo.tar.gz^^
That's because the first '^' will decompress GZIPed file and the second converts TAR file to a directory. See for yourself:
$ stat hello.tar.gz

  File: `hello.tar.gz'
  Size: 284             Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 430324      Links: 1
Access: (0644/-rw-r--r--)  Uid: (  500/    jara)   Gid: (  500/    jara)
Access: 2007-05-29 00:10:25.000000000 +0200
Modify: 2007-05-29 00:09:47.000000000 +0200
Change: 2007-05-29 00:09:47.000000000 +0200

$ stat hello.tar.gz^

  File: `hello.tar.gz^'
  Size: 10240           Blocks: 24         IO Block: 4096   regular file
Device: 17h/23d Inode: 21          Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (  500/    jara)   Gid: (  500/    jara)
Access: 2007-05-29 00:10:25.000000000 +0200
Modify: 2007-05-29 00:10:25.000000000 +0200
Change: 1970-01-01 01:00:00.000000000 +0100

$ stat hello.tar.gz^^

  File: `hello.tar.gz^^'
  Size: 72              Blocks: 0          IO Block: 4096   directory
Device: 17h/23d Inode: 16          Links: 0
Access: (0777/drwxrwxrwx)  Uid: (  500/    jara)   Gid: (  500/    jara)
Access: 2007-05-29 00:09:41.000000000 +0200
Modify: 2007-05-29 00:09:41.000000000 +0200
Change: 1970-01-01 01:00:00.000000000 +0100

4. Download

RheaVFS packages:
download from - select the latest release.
My bechelor thesis about RheaVFS (in czech):
LaTeX source and PDF

5. About the author

Jaroslav Sýkora, email: jaroslav.sykora at,
Visit me at my home page, or check out my other SF.NET project sc2vhdl.

This page was last updated on 2009-06-22