Cramfs

From Wikipedia, the free encyclopedia

The compressed ROM file system (or cramfs) is a free (GPL'ed) read-only Linux file system designed for simplicity and space-efficiency. It is mainly used in embedded systems and small-footprint systems.

Unlike a compressed image of a conventional file system, a cramfs image can be used as it is i.e. without the need to decompress the image first. For this reason, some Linux distributions also use cramfs for initrd images (Debian 3.1 in particular) and installation images (SUSE Linux in particular), where there are constraints on memory and image size.

[edit] Design

Files on cramfs file systems are zlib-compressed one page at a time to allow random read access. The meta-data is not compressed, but is expressed in a terse representation that is designed to be more space-efficient than conventional file systems.

The file system is intentionally read-only to simplify its design; random write access for compressed files is difficult to implement. cramfs ships with a utility (mkcramfs) to pack files into new cramfs images.

File sizes are limited to less than 16MB.

Maximum file system size is a little over 256MB. (The last file on the file system must begin before the 256MB block, but can extend past it.)

[edit] See also