Filesystems HOWTO: Other filesystems

Next Previous Contents

## 9. Other filesystems

## 9.1 ADFS - Acorn Disc File System

The Acorn Disc Filing System is the standard filesystem of the RiscOS operating system which runs on Acorn's ARM-based Risc PC systems and the Acorn Archimedes range of machines.

Linux kernel 2.1.x+ supports this filesystem. Author of Linux filesystem implementation is Russell King < rmk@arm.uk.linux.org>.

## 9.2 AFFS - Amiga fast filesystem

The Fast File System (FFS) is the common filesystem used on hard disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20).

Linux kernel 2.1.x+ supports this filesystem. Author of Linux filesystem implementation is Ray Burr < ryb@nightmare.com>.

## 9.3 BeFS - BeOS filesystem

BeFS is journaling filesystem used in BeOS. For more information about BeFS see Practical File System Design with the Be File System book or BeFS linux driver source code.

Linux BeFS implementation:

- Homepage: http://hp.vector.co.jp/authors/VA008030/bfs/
- Download: http://hp.vector.co.jp/authors/VA008030/bfs/bfs-19990528.tar.gz
- Author: Makoto Kato < m_kato@ga2.so-net.ne.jp>
- Access: Read-only
- License: GPL

This driver supports x86 and PowerPC Linux platform. Also, it only supports readable in hard disk and floppy disk.

## 9.4 BFS - UnixWare Boot Filesystem

UnixWare BFS filesystem type is a special-purpose filesystem. It was designed for loading and booting UnixWare kernel. BFS was designed as a contiguous filesystem. BFS supports only one (root) directory and you can create only regular files; no subdirs or special files such as devices or sockets can be created.

For more information about BFS see http://uw7doc.sco.com/FS_admin/_The_bfs_File_System_Type.html.

- http://uw7doc.sco.com/FS_admin/_The_bfs_Superblock.html - superblock
- http://uw7doc.sco.com/FS_admin/_bfs_Inodes.html - inodes
- http://uw7doc.sco.com/FS_admin/_bfs_Storage_Blocks.html - storage blocks

You can access BFS filesystem from Linux:

- Homepage: http://www.ocston.org/~tigran/patches/bfs/
- Download: In the Linux kernel, patches available at homepage.
- Author: Tigran A. Aivazian < tigran@ocston.org>
- License: GPL
- Access: Read/write (write part is limited, no compactification yet)

The support for BFS is included in the Linux kernel since version 2.3.25. If you are using an earlier kernel, check if BFS homepage contains a patch which adds support for this filesystem. The homepage also contains bugfixes/enhancement which are not yet merged into the official kernel.

There is also mine old implementation, which is now obsolete. My plan is to port this code to FreeBSD:

- Homepage: http://www.penguin.cz/~mhi/fs/bfs/
- Download: ftp://ftp.penguin.cz/pub/users/mhi/bfs/
- Author: Martin Hinner < mhi@penguin.cz>
- License: GPL
- Access: Read-only

This is read-only UnixWare Boot filesystem support for Linux. You can use it to mount read-only your UnixWare /stand partition or floppy disks. I don't plan a read-write version, but if you want it mail me. You might be also interested in VxFS Linux support.

## 9.5 CrosStor filesystem

This is new name for High throughput filesystem (HTFS). For more information see CrosStor homepage at http://www.crosstor.com.

## 9.6 DTFS - Desktop filesystem

Goals in designing the Desktop File System were influenced by impression of what environment was like for small computer systems. DTFS compress the data stored in regular files to reduce disk space requirements (directories remain uncompressed). Compression is performed a page at a time and occur 'on-the-fly'. DTFS supports LZW and no-compression but you can add your own algorithms. Some space is saved by not pre-allocating inodes. Any disk block is fair game to be allocated as an inode. Each inode is stored as a B+tree. For more information see DTFS USENIX paper (you can download it from ftp://ftp.crosstor.com/pub/DTFS/papers/).

Read/Write commercial driver available from CrosStor for UnixWare and SUN Solaris:

- Download: ftp://ftp.crosstor.com/pub/DTFS/
- License: Commercial?
- Access: Read/Write

## 9.7 EFS - Enhanced filesystem (Linux)

The Enhanced Filing system project aims to create a new filing system for Linux and eventually other OSs which will allow the administrator to define mountable "file systems" on a set of block devices (either hard drives or partitions). The aim is to allow file systems to be added or removed from the partition set while the system is running and partitions may be added to a set (or removed if the remaining partitions have enough space to contain all the data) while the system is running.The two main aims are to allow a number of mountable file systems to share the same pool of storage space (IE have the user home dirs on the same drive as the news spool but have separate accounting for them), and to allow the easy addition of more hard drives to allow more space.

Some other features that authors want to implement are logging/journaling, support for as many OSs as possible (although all work will be initially done on Linux), and quotas in the FS so we don't need to waste ages running a silly quotacheck program at boot - the logging should avoid quotacheck the same way it avoids fsck! They want to be able to boot a system with 10gig of news spread over 4 hard drives with full quotas AFTER a power failure with less than 20 seconds for mounting file systems!

Homepage of Enhanced FS is at http://www.coker.com.au/~russell/enh/. Contact Russell Coker < russell@coker.com.au> for more information.

## 9.8 EFS - Extent filesystem (IRIX)

The Extent File System (efs) is Silicon Graphics' early block-device filesystem, widely used on pre-6.0 versions of IRIX. Since 6.0, xfs has been bundled with IRIX and users are being encouraged to migrate to xfs filesystems. IRIX support for efs will be read-only in versions of IRIX beyond 6.5, however efs is still very much in use on SGI software distribution CDs.

There are two kernel modules for linux to access EFS filesystem.

- Homepage: http://aeschi.ch.eu.org/efs/
- Download: http://aeschi.ch.eu.org/efs/efs-1.0b.tar.gz
- Author: Al Smith < Al.Smith@aeschi.ch.eu.org>
- License: GPL
- Access: Read-only

The efs kernel module is an implementation of the extent file system for linux 2.2 kernels. An efs implementation (efsmod-0.6.tar.gz) was originally written for 1.x kernels by Christian Vogelgsang. In this implementation the code has undergone a complete rewrite and is also endian-clean. To use the efs module, you will need to have at least a 2.2 kernel. To mount IRIX CDs, your CD-ROM will need to be able to cope with 512-byte blocks. This version of efs contains support for hard-disk partitions, and also contains a kernel patch to allow you to install the efs code into your linux kernel tree. Handling of large files has also been vastly improved.

Original efsmod is also available:

- Homepage: http://wwwcip.informatik.uni-erlangen.de/user/cnvogelg/proj.html
- Download: http://wwwcip.informatik.uni-erlangen.de/user/cnvogelg/bin/efsmod-0.6.tgz
- Author: Christian Vogelgsang
- License: GPL
- Access: Read-only

Efs-mod 0.6 is original EFS read/only module for Linux. Version 0.6 finished but Project frozen due to lack of time and information for implementing the write part.

### Accessing EFS from Windows NT/95

- Download: ftp://ivo.cps.unizar.es/pub/SPDsoft/winefssh.exe.zip
- Author: J.A. Gutierrez < spd@ivo.cps.unizar.es>
- License: GPL
- Access: Read/Only IRIX EFS

Simple program for accessing EFS from Windows 95 (compiled using MS VC++).

### EFS and FFS library, libfs

- Download: ftp://ivo.cps.unizar.es/pub/SPDsoft/libfs.tar.gz
- Author: J.A. Gutierrez < spd@ivo.cps.unizar.es>
- License: GPL
- Access: Read/Only IRIX EFS and Sun UFS

A C library to read EFS and FFS from WinNT x86, SunOS and IRIX. Easy to use (Posix like interface) and to links aginst existent code FTP server has also winefssh.exe and winufssh.exe, simple WinNT binaries to interactively read UFS and EFS file systems. Not a very polished/documented package, but somebody may find it useful.

Useful links:

- IRIX EFS filesystem brief description: http://squish.ucs.indiana.edu:80/ebt-bin/nph-dweb/dynaweb/SGI_Admin/IA_DiskFiles/@ebt-link;td=8?target=%25N%14_7484_START_RESTART_N%25

## 9.9 FFS - BSD Fast filesystem

This is native filesystem for most BSD unixes (FreeBSD, NetBSD, OpenBSD, Sun Solaris, ...).

See also: SFS, secure filesystem, UFS.

### Accessing FFS from MacOS

You can expand .tar.gz files to FFS filesystem with BSD Installer utility, with comes with OpenBSD. It lives at ftp://ftp.openbsd.org/pub/OpenBSD/2.7/mac68k/utils/.

## 9.10 GPFS - General Parallel Filesystem

This is a UNIX(tm) operating system style file system designed for the RS/6000 SP(tm) server. It allows applications on multiple nodes to share file data. GPFS supports very large file systems and stripes data across multiple disks for higher performance. GPFS is based on a shared disk model which provides lower overhead access to disks not directly attached to the application nodes and uses a distributed locking protocol to provide full data coherence for access from any node. It offers many of the standard AIX(tm) file system interfaces allowing most applications to execute without modification or recompiling. These capabilities are available while allowing high speed access to the same data from all nodes of the SP system, and providing full data coherence for operations occurring on the various nodes. GPFS attempts to continue operation across various node and component failures assuming that sufficient resources exist to continue.

- http://www.austin.ibm.com/resource/technology/paper1.html

## 9.11 HFS - HP-UX Hi performance filesystem

This is the second hfs that appears in this howto. It is used in older HP-UX versions.

## 9.12 HTFS - High throughput filesystem

Useful links:

- SCO OpenServer 5 filesystems whitepaper: http://www.sco.com/products/Whitepapers/family/filesy4.htm

Read/Write commercial driver available from CrosStor:

- Download: ftp://ftp.crosstor.com/pub/HTFS/
- License: Commercial?
- Access: Read/Write

## 9.13 JFS - Journaled filesystem (HP-UX, AIX, OS/2 5, Linux)

- Homepage: http://oss.software.ibm.com/developerworks/opensource/jfs/
- Download: http://www10.software.ibm.com/developer/opensource/jfs/project/pub/
- Author: Steve Best < sbest@us.ibm.com> and Dave Kleikamp < shaggy@us.ibm.com>
- License: GPL
- Access: ?

JFS is IBM's journaled file system technology, currently used in IBM enterprise servers, and is designed for high-throughput server environments.

## 9.14 LFS - Linux log structured filesystem

Linux Log structured filesystem implementation called d(t)fs:

- Homepage: http://www.complang.tuwien.ac.at/czezatke/lfs.html
- Author: Christian Czezatke < e9025461@student.tuwien.ac.at>
- License: GPL
- Access: rw/long filenames, etc

d(t)fs is a log-structured filesystem project for Linux. Currently, the filesystem is mostly up and running, but no cleaner has been written so far.

There will also be a dtfs mailing list that will be announced on the homepage. For more information you can have a look at: http://www.xss.co.at/mailman/listinfo.cgi/dtfs

- http://collective.cpoint.net/lfs/ - The kfs Homepage Cornelius "Kees" Cook has started a Linux Log--Structured Filesystem project before dtfs came to live.
- http://lucien.blight.com/~c-cook/prof/lfs/ - Another (death) LFS implementation ;-)
- http://www.eecs.harvard.edu/~margo/usenix.195/ - Margo Seltzer's < margo@das.harvard.edu> LFS page

## 9.15 MFS - Macintosh filesystem

MFS is original Macintosh filesystem. It has been replaced by HFS / HFS+. If you can provide further information, mail me please.

## 9.16 Minix filesystem

This is Minix native filesystem. It was also used in first versions of Linux.

## 9.17 NWFS - Novell NetWare filesystem

NWFS is native in Novell NetWare OS. It is modified FAT-based filesystem. Two variants of this filesystem exists. 16bit NWFS 286 is used in NetWare 2.x. NetWare 3.x, 4.x and 5 use 32bit NWFS 386.

### NetWare filesystem / 286

(todo)

### NetWare filesystem / 386

(todo)

### Accessing NWFS-386 from Linux

- Homepage: http://www.timpanogas.com/html/fenris_for_linux.html
- Download: ftp://207.109.151.240/nwfs/
- Author: Timpanogas Research Group, Inc. (jmerkey@timpanogas.com)
- License: GPL
- Access: Read-Only

This driver allows you to mount NWFS-386 filesystem on Linux.

## 9.18 NSS - Novell Storage Services

This is a new 64bit journaling filesystem using a balanced tree algorithms. It is used in Novell NetWare 5.

- http://www.novell.com/whitepapers/nw5/nss.html - NSS Whitepaper

## 9.19 ODS - On Disk Structure filesystem

This is OpenVMS and VMS native filesystem.

## 9.20 QNX filesystem

This filesystem is used in QNX. Two major filesystem version exists, version 2 is used by QNX 2 and version 4 by QNX 4. QNX 4 doesn't support version 2 and vice versa.

QNX4 filesystem is now accessible from Linux 2.1.x+. Say "Y"es to 'QNX filesystem support';

- Download: In the kernel ;)
- Author: Frank Denis < j@4u.net> (maintainer), Richard Frowijn
- License: GPL
- Access: Read (except for multi-extents files), Write (experimental)

Driver for the QNX 4 filesystem.

## 9.21 Reiser filesystem

Reiserfs is a file system using a variant on classical balanced tree algorithms. The results when compared to the ext2fs conventional block allocation based file system running under the same operating system and employing the same buffering code suggest that these algorithms are more effective for large files and small files not near node size in time performance, become less effective in time performance and more significantly effective in space performance as one approaches files close to the node size, and become markedly more effective in both space and time as file size decreases substantially below node size (4k), reaching order of magnitude advantages for file sizes of 100bytes. The improvement in small file space and time performance suggests that we may now revisit a common OS design assumption that one should aggregate small objects using layers above the file system layer.

Useful links:

- Reiser fs homepage http://devlinux.org/namesys/

## 9.22 RFS (CD-ROM Filesystem)

Sony's incremental packet-writing filesystem.

## 9.23 RomFS - Rom filesystem

Author of Linux RomFS implemplementation is Janos Farkas < chexum@shadow.banki.hu> For more information see /usr/src/linux/Documentation/filesystems/romfs.txt file.

## 9.24 SFS - Secure filesystem

The sfs filesystem type is a variation of the FFS filesystem type. The boot block,superblock, storage blocks, and free blocks for the sfs filesystem type are, at the administrative level, identical to those for FFS. The inodes differ from FFS inodes, however. Each odd-numbered inode is reserved for security information. The information contains Access Control List information. I'm not sure if SFS has any other abilities though.

SFS links:

- http://uw7doc.sco.com/FS_admin/_The_sfs_File_System_Type.html - UnixWare 7 documentation: SFS Filesystem

## 9.25 Spiralog filesystem (OpenVMS)

Spiralog is a 64bit high-performance filesystem for the OpenVMS. The Spiralog combines log-structured technology with more traditional B-tree technology to provide a general abstraction. The B-tree mapping mechanism uses write-ahead logging to give stability and recoverability guarantees.

Spiralog-related links at Digital:

- http://www.digital.com/info/SP6048/ - Spiralog File System for OpenVMS Alpha
- http://www.digital.com/DTJM01/DTJM01AH.HTM - Overview of the Spiralog File System
- http://www.digital.com/DTJM02/DTJM02HM.HTM - Design of the Server for the Spiralog File System

## 9.26 System V and derived filesystems

Homepage of System V Linux project is at http://www.knm.org.pl/prezes/sysv.html. Maintainer of this project is <kgb@manjak.knm.pl.org>.

### AFS - Acer Fast Filesystem

The Acer Fast Filesystem is used on SCO Open Server. It is similar to the System V Release 4 filesystem, but it is using bitmaps instead of chained free-list of blocks.

### EAFS - Extended Acer Fast Filesystem

The AFS filesystem can be 'extended' to handle file names up to 255 characters, but directories entries still have 14-char names. This filesystem type is used on SCO Open Server.

### Coherent filesystem

### S5

This filesystem is used in UnixWare. It's probably SystemV compatible, but I haven't verified it yet. For more information see http://uw7doc.sco.com/FS_admin/_The_s5_File_System_Type.html.

### S51K - SystemV 1K

### Version 7 filesystem

This filesystem type is used on Version 7 Unix for PDP-11 machines.

### Xenix filesystem

## 9.27 Text - (Philips' CD-ROM Filesystem)

Philips' standard for encoding disc and track data on audio CDs.

## 9.28 UDF - Universal Disk Format (DVD-ROM filesystem)

There is a Linux UDF filesystem driver:

- Homepage: http://trylinux.com/projects/udf/
- Download: http://trylinux.com/projects/udf/udf-0.8.0.1.tar.gz
- Author: Dave Boynton < dave@trylinux.com>
- Mailing-list: <linux_udf@hootie.lvld.hp.com>
- License: GPL
- Access: Read-only

## 9.29 UFS

Note: People often call BSD Fast Filesystem incorrectly UFS. FFS and UFS are *diferrent* filesystems. All modern Unixes use FFS filesystem, not UFS! UFS was used in early BSD versions. You can download source code at http://minnie.cs.adfa.edu.au/TUHS/.

Useful links:

- http://www.sun.ca/white-papers/ufs-cluster.html - Implementation of write-clustering for Sun's UFS

See also: BSD FFS

## 9.30 V7 Filesystem

The V7 Filesystem was used in Seventh Edition of UNIX Time Sharing system (about 1980). For more information see 7th Ed. source code, which is available from the Unix Archive: http://minnie.cs.adfa.edu.au/TUHS/.

## 9.31 VxFS - Veritas filesystem (HP-UX, SCO UnixWare, Solaris)

This is commercial filesystem developer by Veritas Inc. You can see it in HP-UX, SCO UnixWare, Solaris and probably other systems. It has very interesting features: Extent based allocation, Journaling, access control lists (ACLs), up to 2 terabyte large file support, online backup (snapshot filesystem), BSD style quotas and many more.

Three VxFS versions are available with VxFS:

Version 1: This is original VxFS, not commonly in use.

Version 2: Support for filesets and dynamic inode allocation.

Version 4: Latest version, supports large files and quotas.

Note that HP-UX, Solaris and UnixWare versions use slightly different structures, so you may not be able to read VxFS when you connect it to different system.

VxFS related links:

- http://www.veritas.com/ - Veritas Inc < vx-sales@veritas.com>.
- http://uw7doc.sco.com/ODM_FSadmin/CONTENTS.html - VxFS ODM FS Admin - UnixWare 7 (documentation, really good).
- http://uw7doc.sco.com/FS_manager/fsD.vxfsopt.html - VxFS FS Manager - UnixWare 7 (documentation).
- http://manuals.mchp.siemens.de:80/dynaweb/english/ru544e/drlugueb/o25636e1/@Generic__BookView/1641;cd=3 - VxFS - Reliant Unix.

See also: VxVM (Veritas volume manager) and journaling filesystems.

### VxTools

Unix command-line utilities for accessing VxFS versions 2 and 4 are available under the GNU GPL:

- Homepage: http://www.penguin.cz/~mhi/fs/vxfs/
- Download: ftp://ftp.penguin.cz/pub/users/mhi/vxfs/
- Author: Martin Hinner < mhi@penguin.cz>
- Mailing-list: <fs-l@penguin.cz>
- License: GPL
- Access: Read-only, command-line utilites

Vxtools is a set of command-line utilites which allow you to access your VxFS filesystem from Linux (and possibly other Unixes). Current version can read VxFS versions 2 and 4.

I (mhi) plan also VxFS Linux kernel driver.

AFAIK, Rodney Ramdas < rodney@quicknet.nl> works on VxFS driver for FreeBSD. I don't know current status of his project, so if you want more info contact him directly.

## 9.32 XFS - Extended filesystem (IRIX)

XFS(tm) is the next-generation file system for Silicon Graphics[TM] systems, from desktop workstations to supercomputers. XFS provides full 64-bit file capabilities that scale easily to handle extremely large files and file systems that grow to 1 terabyte. The XFS file system integrates volume management, guaranteed rate I/O, and journaling technology for fast, reliable recovery. File systems can be backed up while still in use, significantly reducing administrative overhead.

XFS is designed for a very high performance; sustained throughput in excess of 300MB per second has been demonstrated on CHALLENGE systems. The XFS file system scales in performance to match the CHALLENGE MP architecture. Traditional files, directories, and file systems have reduced performance as they grow in size. With the XFS file system, there is no performance penalty. For example, XFS directories have been tested with up to 32 million files in a single directory.

XFS is a journalled file system. It logs changes to the inodes, directories and bitmaps to the disk before the original entries are updated. Should the system crash before the updates are done they can be recreated using the log and updated as intended.

XFS uses a space manager to allocate disk space for the file system and control the inodes. It uses a namespace manager to control allocation of directory files. These managers use B-tree indexing to store file location information, significantly decreasing the access time needed to retrieve file information.

Inodes are created as needed and are not restricted to a particular area on a disk partition. XFS tries to position the inodes close to the files and directories they reference. Very small files, such as symbolic links and some directories, are stored as part of the inode, to increase performance and save space. Large directories use B-tree indexing within the directory file to speed up directory searches, additions and deletions.

Useful XFS links:

- http://www.sgi.com/Technology/xfs-whitepaper.html XFS whitepaper

XFS Linux port covered by the GNU General Public License is available from SGI Inc.:

- Homepage: http://oss.sgi.com/projects/xfs/
- Download: ftp://oss.sgi.com/www/projects/xfs/download/
- Author: SGI Inc., http://www.sgi.com/
- License: GPL
- Access: Read-write

## 9.33 Xia FS

This filesystem was developed to replace old Minix filesystem in Linux. Author of this fs is Franx Xia < qx@math.columbia.edu>

Next Previous Contents