<!doctype linuxdoc system>

<article>

<!-- Title information -->

<title>Filesystems HOWTO
<author>Martin Hinner &lt;<htmlurl url="mailto:mhi@penguin.cz"
      name="mhi@penguin.cz">&gt;
<date>Version 0.7, 23 October 1999
<abstract>
This small HOWTO is about filesystems and accessing filesystems. It is not
Linux- or Unix-related and you can find there also a lot of interesting
information about non-Unix (file)systems.
</abstract>

<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<sect>Introduction<p>

The Filesystems HOWTO is about filesystems and accessing filesystems from
various OS. Although this document has been put together to the best of my
knowledge, it may and probably does contain mistakes. Please if you find some
mistake or outdated information, let me know. I will try to keep this document
up to date and as error free as possible. Any contributions are also welcome, so
if you want to write anything about filesystems, please contact me via e-mail.
<p>

Before you read this HOWTO it's recommended to read 
<htmlurl url="mailto:sgjoen@nyx.net" name="Stein Gjoen's">
Disk-HOWTO (you can obtain it from <url url="http://sunsite.unc.edu/LDP/HOWTO/">
). <p>

This HOWTO can be obtained from <url url="http://penguin.cz/~mhi/fs/"> or
<url url="http://metalab.unc.edu/filesystems/howto/">.

<!-- ##################################################################### -->

<sect1>Copyright<p>

<bf>The Filesystems HOWTO, Copyright (c) 1999 Martin Hinner
&lt;<htmlurl url="mailto:mhi@penguin.cz" name="mhi@penguin.cz">&gt;.
</bf>

This HOWTO is free document; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.<p>

This HOWTO is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.<p>

You should have received a copy of the GNU General Public License
along with this document or GNU CC; if not, write to the:
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
USA.<p>

<!-- ##################################################################### -->

<sect1> Filesystems mailing-list<p>
You may want to join Filesystems mailing list. It's intended to be a good
source of information for both end-users and developers. So if you have
anything to do with filesystems, join ;-) To subscribe send email to
&lt;<htmlurl url="mailto:majordomo@penguin.cz" name="majordomo@penguin.cz">&gt;
and in the BODY (not the subject) of the email message put (without quotes):
"<bf>subscribe fs-l</bf>".<p>

<!-- ##################################################################### -->

<sect1> Filesystems collection at metalab.unc.edu<p>
Filesystems collection is FTP/WWW site providing useful information about
filesystems and filesystem-related programs and drivers. It lives at
<url url="http://metalab.unc.edu/filesystems/">, or FTP-only at
<url url="ftp://metalab.unc.edu/pub/docs/filesystems/">.

<!-- ##################################################################### -->

<sect1>Credits<p>

The original "Filesystems access HOWTO" was written by Georgatos Photis
(see his homepage at <url url="http://students.ceid.upatras.gr/~gef/">).
This HOWTO contains a lot of information from his webpage. Thanks, Gef.
<p>

Other people who have contributed or helped me (directly or indirectly)
with this HOWTO are, in alphabetical order:
<itemize>
 <item> Peter A. Dinda &lt;pdinda@cs.cmu.edu&gt; - HFS filesystem
 <item> Radek Machacka &lt;radekm@sco.com&gt; - Thanks for SCO UnixWare
        and SCO OpenServer
</itemize>
Many thanks to the above people. If I have forgotten anyone, please let me know.

<!-- ##################################################################### -->

<sect1>Filesystems accessibility map<p>
This is filesystem accessibility "map", alphabetically ordered by operating
system. You may find this list a little bit chaotic. It's because Linux
sgmltools don't know tables.<p>
<bf>YOU SEE THAT THIS `MAP' IS NOT STILL COMPLETE.
I WILL TRY TO FINISH IT IN THE NEAR FUTURE.</bf>


<!-- ---------------------------- -->
<bf>FreeBSD:</bf>
<ref name="BSD FFS" id="ffs"> |
<ref name="Ext2" id="ext2"> |
<ref name="HPFS" id="hpfs_freebsd"> |
<ref name="NTFS" id="ntfs_freebsd">
<p>

<!-- ---------------------------- -->
<bf>Linux:</bf>
<ref name="AFFS" id="affs">|
<ref name="BeFS" id="befs_linux">|
<ref name="BFS" id="bfs_linux">|
<ref name="Ext2 FS" id="ext2">|
<ref name="BSD FFS" id="ffs">|
<ref name="HPFS" id="hpfs_linux">|
<ref name="Qnx4 FS" id="qnx4">|
<ref name="Xia" id="xia">
<P>

<!-- ---------------------------- -->
<bf>NetBSD:</bf>
<ref name="BSD FFS" id="ffs"> |
<ref name="FAT12/16" id="fat"> |
<ref name="ISO9660" id="iso9660">
<P>

<!-- ---------------------------- -->
<bf>NetWare 2.x:</bf>
<ref name="NWFS-286" id="nwfs286">
<P>

<!-- ---------------------------- -->
<bf>NetWare 3.x, 4.x:</bf>
<ref name="NWFS-386" id="nwfs386"> |
<ref name="ISO9660" id="iso9660">
<P>

<!-- ---------------------------- -->
<bf>NetWare 5.x:</bf>
<ref name="NWFS-386" id="nwfs386"> |
<ref name="NSS" id="nss"> |
<ref name="ISO9660" id="iso9660">
<P>

<!-- ---------------------------- -->
<bf>OpenBSD:</bf>
<ref name="BSD FFS" id="ffs"> |
<ref name="FAT12/16" id="fat">
<P>

<!-- ---------------------------- -->
<bf>OS/2:</bf>
<ref name="Ext2 FS" id="ext2_os2"> |
<ref name="FAT12/16/32" id="fat"> |
<ref name="HPFS" id="hpfs"> |
<ref name="HPFS" id="hpfs"> |
<ref name="ISO 9660" id="iso9660"> |
<ref name="JFS" id="jfs"> |
<ref name="VFAT" id="vfat">
<P>

<!-- ---------------------------- -->
<bf>QNX 4:</bf>
<ref name="FAT12/16" id="fat"> |
<ref name="ISO 9660" id="iso9660"> |
<ref name="Qnx4 FS" id="qnx4">
<P>

<!-- ---------------------------- -->
<bf>SCO OpenServer:</bf>
<ref name="AFS" id="afs">|
<ref name="DTFS" id="dtfs">|
<ref name="EAFS" id="eafs">|
<ref name="HTFS" id="htfs">|
<ref name="ISO 9660" id="iso9660"> |
<ref name="S51K" id="s51k">
<p>

<!-- ---------------------------- -->
<bf>SCO UnixWare:</bf>
<ref name="BFS" id="bfs">|
<ref name="DTFS" id="dtfs">|
<ref name="ISO 9660" id="iso9660"> |
<ref name="System V" id="s5">|
<ref name="VxFS" id="vxfs">
<p>

<sect1>Introduction to contiguous allocation filesystems
<label id="contiguous"><p>


Some contiguous filesystems:
<ref id="bfs" name="BFS">,
<ref id="iso9660" name="ISO9660 and extensions">.

<sect1>Introduction to linked-list allocation filesystems<p>

<sect1>Introduction to FAT-based filesystems<p>

Some FAT filesystems:
<ref id="fat" name="FAT12/16/32, VFAT"> and
<ref id="nwfs" name="NetWare filestem">.

<sect1>Introduction to Inode filesystems<p>


<sect1>Introduction to extent filesystems<p>

Some 'extent' filesystems:
<ref id="efs" name="EFS"> and
<ref id="vxfs" name="VxFS">.

<sect1>Introduction to filesystems using balanced trees<label id="btree"><p>

Some filesystems which use B+ trees:
<ref id="hfs" name="HFS">,
<ref id="nss" name="NSS">,
<ref id="reiserfs" name="Reiser FS"> and
<ref id="spiralog" name="Spiralog filesystem">.

<sect1>Introduction to logging/journaling filesystems<label id="journal"><p>

File systems update their structural information (called
metadata) by synchronous writes. Each metadata update may require many
separate writes, and if the system crashes during the write sequence, metadata
may be in inconsistent state.

At the next boot the filesystem check utility (called fsck) must walk 
through the metadata structures, examining and repairing them. 
This operation takes a very very long time on large filesystems.
And the disk may not contain sufficient information
to correct the structure. This results in misplaced or removed files.
<p>

A journaling file system uses a separate area called a log or journal.
Before metadata changes are actually performed, they are logged to this separate
area. The operation is then performed. If the system crashes during
the operation, there is enough information in the log to "replay" the log
record and complete the operation.

This approach does not require a full
scan of the file system, yielding very quick filesystem check time on
large file systems,
generally a few seconds for a multiple-gigabyte file system. In addition,
because all information for the pending operation is saved, no removals
or lost-and-found moves are required. Disadvantage of journaling filesystems
is that they are slower than other filesystems.<p>

Some journaling filesystems:
<ref id="befs" name="BeFS">,
<ref id="htfs" name="HTFS">,
<ref id="jfs" name="JFS">,
<ref id="nss" name="NSS">,
<ref id="spiralog" name="Spiralog filesystem">,
<ref id="vxfs" name="VxFS"> and
<ref id="xfs" name="XFS">.

<!-- ##################################################################### -->

<sect>Volumes<p>

<!-- ##################################################################### -->

<sect1>PC Partitions<p>

<itemize>
  <item> <url url="http://www.win.tue.nl/~aeb/partitions/">
         Partition types document by Andries Brouwer &lt;<htmlurl
         name="aeb@cwi.nl" url="mailto:aeb@cwi.nl">&gt;
</itemize>

<sect2>GNU parted<p>
<itemize>
 <item> Homepage: <url url="www.alphalink.com.au/~clausen/parted/">
 <item> Download: <url url="ftp://ftp.gnu.org/gnu/parted/">
 <item> Authors: Andrew Clausen &lt;<htmlurl
        url="mailto:clausen@alphalink.com.au"
        name="clausen@alphalink.com.au">&gt;, 
        Lennert Buytenhek &lt;<htmlurl
        url="mailto:buytenh@dsv.nl"
        name="buytenh@dsv.nl">&gt; and
        Matt Wilson &lt;<htmlurl
        url="mailto:msw@redhat.com"
        name="msw@redhat.com">&gt;. 
 <item> Bug reports: &lt;<htmlurl
        url="mailto:bug-parted@gnu.org"
        name="bug-parted@gnu.org">&gt;, 
 <item> Access: varies for each filesystem, see below.
 <item> License: GPL
</itemize>
GNU parted can create, destroy, resize, copy and move partitions, and
the filesystems on them.  It currently supports <ref name="Ext2" id="ext2">,
<ref name="FAT16" id="fat16">, <ref name="FAT32" id="fat32"> and Linux-swap.
<p>
<verb>
Filesystem      detect  create  resize  copy    check
ext2            *               *               *1
fat             *       *       *2      *2      *
linux-swap      *       *       *       *
</verb>

NOTES:<p>

<bf>1</bf> Limited checking is done when the filesystem is opened.  This is the
only checking at the moment.  All commands (including resize) will
gracefully
fail, leaving the filesystem in tact, if there is are any errors in the
file
system (and the vast majority of errors in general).
<p>

<bf>2</bf> The size of the new partition, after resizing or copying, is
restricted by the cluster size. This is worse than you think, because you don't
get to choose your cluster size (it's a bug in Windows, and you want
compatibility, right?).<p>


<!-- ##################################################################### -->

<sect1>Other partitions<p>


<!-- ##################################################################### -->

<sect1>Unix slices<p>

<!-- ##################################################################### -->

<sect1>Windows NT volumes<p>

<itemize>
 <item> Homepage: <url url="http://www.penguin.cz/~mhi/fs/vol/">
 <item> Author: Martin Hinner &lt;<htmlurl
        url="mailto:mhi@penguin.cz"
        name="mhi@penguin.cz">&gt;
 <item> Access: Read-only, supports OS/2 Volumes, Windows NT Stripe sets and
        volumes.
 <item> Download: <url url="ftp://ftp.penguin.cz/pub/users/mhi/vol/">
 <item> License: GPL
</itemize>
This linux-kernel driver allows you to access and mount linear and stripe set
volumes.

<!-- ##################################################################### -->

<sect1>MD - Multiple Devices driver for Linux<p>

<itemize>
 <item> Homepage:?
 <item> Author: Marc ZYNGIER &lt;<htmlurl
        url="mailto:zyngier@ufr-info-p7.ibp.fr"
        name="zyngier@ufr-info-p7.ibp.fr">&gt;
 <item> Access: Read-write, supports linear mode, RAID-1, RAID-4 and RAID-5.
 <item> Download: Linux kernel, tools are available at
        <url url="sweet-smoke.ufr-info-p7.ibp.fr/public/Linux/">
 <item> License: GPL
</itemize>
  This driver lets you combine several hard disk partitions into one
  logical block device. This can be used to simply append one
  partition to another one or to combine several redundant
  hard disks to a RAID1/4/5 device so as to provide protection against
  hard disk failures. This is called "Software RAID" since the
  combining of the partitions is done by the kernel.
<p>

<!-- ##################################################################### -->

<sect1>LVM - Logical Volume Manager<label id="lvm"><p>

The LVM was originally developed by Veritas
(see <url url="http://www.veritas.com">). <p>

Linux implementation is available here:

<itemize>
 <item> Homepage: <url url="http://linux.msede.com/lvm/">
 <item> Author: Heinz Mauelshagen &lt;<htmlurl
        url="mailto:mauelsha@ez-darmstadt.telekom.de"
        name="mauelsha@ez-darmstadt.telekom.de">&gt;
 <item> Access: ?
 <item> Download: <url url="ftp://linux.msede.com/lvm/v0.6/">
 <item> License: GPL
</itemize>

<!-- ##################################################################### -->

<sect1>OS/2 LVM<p>
Logical Volume Manager is available in OS/2 WarpServer 5. It allows you to
create linear volumes on several disks/partitions.

<!-- ##################################################################### -->

<sect1>Novell NetWare volumes<label id="nwvol"><p>
NetWare volumes are used for NWFS-386 filesystem.

<!-- ##################################################################### -->

<sect>DOS FAT 12/16/32, VFAT<label id="fat"><label id="vfat">
<label id="fat12"><label id="fat16"><label id="fat32"><p>

<sect1>Accessing FAT from IRIX <label id="fat_irix"><p>
<itemize>
 <item> Homepage: <url url="http://www.ps.ucl.ac.uk/~jcpearso/mtools.html">
 <item> Download: <url url="ftp://ftp.ps.ucl.ac.uk/pub/sgi_mtools-2.0.7/">
 <item> Author: &lt;<htmlurl
        url="mailto:j.pearson@ps.ucl.ac.uk"
        name="j.pearson@ps.ucl.ac.uk">&gt;
 <item> Access: ?
 <item> License: ?
</itemize>
This is "hack" of the public domain mtools package to allow SGIs to
read from and write to DOS formatted SCSI disks - including (some?)
removable media. It is based on mtools v2.0.7. 
Make sure you read the README.FIRST before using this software as well
as the Zip and Jaz FAQ.<p>

Please note that IRIX release 6.3 and greater now support the DOS
(FAT) filesystem directly. These utilities are only really useful if
you are running earlier IRIX releases.

<sect1>Accessing VFAT from OS/2 (VFAT-OS2) <label id="vfat_os2"><p>
<itemize>
 <item> Homepage: <url url="http://www.dsteiner.com/products/software/os2/ifs.htm">
 <item> Author: Daniel Steiner &lt;<htmlurl
        url="mailto:info@dsteiner.com"
        name="info@dsteiner.com">&gt;
 <item> Access: Read-Write, no EAs supported.
 <item> Mirror: <url url="ftp://hobbes.nmsu.edu/pub/os2/system/drivers/filesys/">
 <item> License: GPL
</itemize>
VFAT-OS2 is a package that will allow OS/2 to seamlessly access Windows
95 VFAT formatted partitions from OS/2 as if they were standard OS/2 drive
letters. The ultimate aim of this package is to be able to use the VFAT
file system as a replacement of FAT. It can now also access NTFS partitions in
read-only mode.

<sect1>Accessing FAT32 from OS/2 (FAT32.IFS) <label id="fat32_from_os2"><p>
<itemize>
 <item> Homepage: <url url="http://www.os2ss.com/information/kelder/index.html">
 <item> Author: Henks Kelder &lt; <htmlurl url="mailto:hkelder@capgemini.nl"
        name="hkelder@capgemini.nl"> &gt;
 <item> Access: Read-Write, long filenames, no EAs support.
 <item> Download: <url url="http://www.os2ss.com/information/kelder/os2fat32.zip">
 <item> License: Free
</itemize>
FAT32.IFS for OS/2 will allow you to access FAT32 partitions from OS/2. You
cannot create FAT32 partitions, you'll still need Win95 OSR2 to do that.
Also, OS/2s CHKDSK cannot fix all possible errors that can occur, you'll
have to use Windows 95 Scandisk to fix certain errors.

<sect1>Accessing FAT32 from Windows NT 4.0 <label id="fat32_from_nt4"><p>
<itemize>
 <item> Author: Andrey Shedel &lt; <url url="mailto:andreys@tarzan.cr.cyco.com"
        name="andreys@tarzan.cr.cyco.com">&gt;
 <item> License: Free or GPL ?
</itemize>


<sect1>Accessing FAT32 from Windows NT 4.0 <label id="fat32_from_nt4_2"><p>
<itemize>
 <item> Homepage: <url url="http://www.sysinternals.com/fat32.htm">
 <item> Author: Mark Russinovich &lt;<htmlurl
        url="mailto:mark@sysinternals.com"
        name="mark@sysinternals.com">&gt; and
        Bryce Cogswell &lt;<htmlurl
        url="mailto:cogswell@winternals.com"
        name="cogswell@winternals.com">&gt;.
 <item> Access: Read-only in free version, RW in commercial.
 <item> Download: ?
 <item> License: Free(read-only) or Commercial(read-write)
</itemize>
This is a FAT32 file
system driver for Windows NT(R) 4.0. Once installed, any FAT32 drives present
on your system will be fully accessible as native Windows NT volumes. Free
version provides read-only capabilities. A read/write version is for sale.

<sect1>Accessing Stac/Dblspaced/Drvspaced drives from Linux (DMSDOS)
      <label id="dmsdos_from_linux"><p>
<itemize>
 <item> Homepage: <url url="http://fb9nt.uni-duisburg.de/mitarbeiter/gockel/software/dmsdos/">
 <item> Author: Frank Gockel
        &lt;<htmlurl url="mailto:gockel@sent13.uni-duisburg.de"
        name="gockel@sent13.uni-duisburg.de">&gt; and
        Pavel Pisa &lt;<htmlurl url="mailto:pisa@cmp.felk.cvut.cz"
        name="pisa@cmp.felk.cvut.cz">&gt;
 <item> Access: Stacker, Dblspace and Drvspace in Read-Write mode,
        long filenames.
 <item> Download: <url url="ftp://fb9nt.uni-duisburg.de/pub/linux/dmsdos/">
 <item> Freshmeat: Console/Filesystems
 <item> License: GPL
</itemize>
DMSDOS reads and writes compressed DOS filesystems (CVF-FAT). The following
configurations are supported:
<itemize>
 <item> DoubleSpace / DriveSpace (MS-DOS 6.x)
 <item> DoubleSpace / DriveSpace (Windows 95)
 <item> DriveSpace 3 (Windows 95 with Plus! pack)
 <item> Stacker 3
 <item> Stacker 4
</itemize>
It works with FAT32, NLS, codepages (tested with fat32
patches version 0.2.8 under Linux 2.0.33 and with fat32 in
standard 2.1.xx kernels and 2.0.34+35). Dmsdos can run together with vfat or
umsdos for long filenames. It has been redesigned to be ready for SMP
and should now compile completely under libc6.

<sect1>Accessing Dblspaced/Drvspaced drives from Linux (thsfs)
      <label id="dblspace_from_linux"><p>
<itemize>
 <item> Download: <url url="ftp://ftp.ai-lab.fh-furtwangen.de/pub/os/linux/local/thsfs.tgz">
 <item> Author: Thomas Scheuermann &lt;<htmlurl
        url="mailto:ths@ai-lab.fh-furtwangen.de"
        name="ths@ai-lab.fh-furtwangen.de">&gt;
 <item> Access: Dblspace and Drvspace in Read-only mode.
 <item> License: See copyright on files. Basically free
</itemize>

<sect1>Fsresize - FAT16/32 resizer<label id="fsresize"><p>
<itemize>
 <item> Homepage: <url url="http://www.alphalink.com.au/~clausen/fsresize/">
 <item> Author: Andrew Clausen &lt;<htmlurl
        url="mailto:clausen@alphalink.com.au"
        name="clausen@alphalink.com.au">&gt;
 <item> Download: <url url="http://www.alphalink.com.au/~clausen/fsresize-0.8.tar.gz"
  <item> Freshmeat: <htmlurl
        url="http://news.freshmeat.net/appindex/1999/01/09/915912424.html"
        name="Console/Filesystems">
  <item> Access: Read/Write, full FAT16/FAT32 support
  <item> License: GPL
</itemize>
Resizes FAT16/FAT32 filesystems.  It doesn't require any other
programs (like a defrager).  It has --backup and --restore
options, so if there's a power failure, (or a bug), you can
always go back.  The backup files are usually &lt; 1 meg.
<p>

The author  probably won't be releasing any more versions of fsresize,
because he is working on parted - a Partition Magic clone. It will be
able to resize, copy, create and check filesystems/partitions.


<sect1>FIPS - FAT16 resizer<label id="fips"><p>
<itemize>
 <item> Homepage: ?
 <item> Author: Arno Schaefer &lt;<htmlurl
        url="mailto:schaefer@rbg.informatik.th-darmstadt.de"
        name="schaefer@rbg.informatik.th-darmstadt.de">&gt;
 <item> Download: <url url="ftp://sunsite.unc.edu/pub/Linux/system/Install/fips01alpha.tar.z">
 <item> License: GPL
</itemize>

<sect>High Performance FileSystem (HPFS)<label id="hpfs"><p>

Good HPFS links:
<itemize>
 <item> <url url="ftp://ftp.leo.org/pub/comp/os/os2/leo/doc/hpfsinf.zip">
 <item> <url url="ftp://hobbes.nmsu.edu/pub/os2/info/tips/hpfs.zip">
 <item> <url url="http://www.globalxs.nl/home/c/cyborg/index.html">
        - a good page about HPFS accessibility
</itemize> 

<sect1>Accessing HPFS from DOS (iHPFS)<label id="ihpfs"><p>
<itemize>
 <item> Homepage:<url url="http://www.student.nada.kth.se/~f96-bet/ihpfs/">
 <item> Author: Marcus Better <htmlurl url="mailto:Marcus.Better@abc.se"
        name="Marcus.Better@abc.se">
 <item> Download:
        <url url="http://www.student.nada.kth.se/~f96-bet/ihpfs/ihpfs128.zip">
 <item> Access: Read-only
 <item> License: GPL
</itemize>

iHPFS makes possible for OS/2 users to use their HPFS partitions
when they boot plain DOS.  The HPFS partition is assigned a drive
letter, and can be accessed like any DOS drive.iHPFS is restricted
to read-only access.
<p>

This program is no longer being developed, because author doesn't
use OS/2. If you are willing to maintain the program, let him know. 

<sect1>Accessing HPFS from DOS (hpfsdos)<label id="hpfs_from_dos5"><p>
<itemize>
 <item> Homepage: ?
 <item> Author: Robert Muchsel &lt;<htmlurl
        url="mailto:rmuchsel@iiic.ethz.ch"
        name="rmuchsel@iiic.ethz.ch">&gt; (this e-mail doesn't work)
 <item> Access: Read-only
 <item> License: Shareware ($23)
</itemize>


<sect1>Accessing HPFS from DOS (hpfsa)<label id="hpfs_from_dos2"><p>
<itemize>
 <item> Homepage: <url url="http://www.student.informatik.th-darmstadt.de/~akinzler/">
 <item> Author: Andreas Kinzler &lt;<htmlurl
        url="mailto:akinzler@rbg.informatik.th-darmstadt.de"
        name="akinzler@rbg.informatik.th-darmstadt.de">&gt;
        (this email doesn't work)
 <item> Download:
        <url url="ftp://ftp.cdrom.com/.1/os2/mdos/hpfsa102.zip">
 <item> Access: Read/Write
 <item> License: Shareware ($40)
</itemize>

<sect1>Accessing HPFS from DOS (amos)<label id="hpfs_from_dos3"><p>
<itemize>
 <item> Homepage: ?
 <item> Author:  Allan Mertner &lt;<htmlurl url="mailto:mertner@login.dknet.dk"
                 name="mertner@login.dknet.dk">&gt;
                 (this email doesn't work)
 <item> Download: <url url="ftp://hobbes.nmsu.edu/pub/dos/amos320.zip">
 <item> License: Shareware ($50)
</itemize>

<sect1>Accessing HPFS from Linux<label id="hpfs_linux"><p>
<itemize>
 <item> Homepage:<url url="http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi">
 <item> Download:
         <url url="http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/hpfs-0.99b.tar.gz"> for 2.0 kernels; and
        <url url="http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/hpfs-1.98b.tar.gz"> for 2.2 kernels
 <item> Author: Mikulas Patocka
        &lt; <htmlurl url="mailto:mikulas@artax.karlin.mff.cuni.cz"
        name="mikulas@artax.karlin.mff.cuni.cz"> &gt;
 <item> Access: Read-Write, extended attributes, long names.
 <item> License: GPL
</itemize>
This driver is part of Linux kernel (2.1.x+). It can read and write to HPFS
partions. Access rights and owner can be stored
in extended attributes. Few bugs in original read-only HPFS are corrected.
It supports HPFS386 on Warp client. <p>

If you have kernel with HPFS support, say "Y"es to 'OS/2 HPFS filesystem
support' in Filesystems submenu. Then recompile kernel using 'make dep bzImage',
reboot and try to mount your HPFS partition (e.g. mount /dev/hda2 /mnt -t hpfs).

<sect1>Accessing HPFS from FreeBSD<label id="hpfs_freebsd"><p>
<itemize>
 <item> Homepage: <url url="http://iclub.nsu.ru/~semen/">
 <item> Download: <url url="http://iclub.nsu.ru/~semen/hpfs/hpfs-0.3b.tar.gz">
 <item> Author: Semen A. Ustimenko
        &lt; <htmlurl url="mailto:semenu@FreeBSD.org"
        name="semenu@FreeBSD.org"> &gt;
 <item> Access: Read/Only
 <item> License: BSD
</itemize>
Driver allows to mount HPFS volume into Unix namespace.
ReadOnly access is only supported for now.

<sect1>Accessing HPFS from Windows NT 3.5<label id="hpfs_from_nt"><p>
<itemize>
 <item> Homepage:<url url="http://www.htc.net/~nbehnken/">
 <item> Download:
         <url url="http://www.htc.net/~nbehnken/hpfs_nt.zip">
 <item> Author: Chris Behnken
        &lt; <htmlurl url="mailto:nbehnken@htc.net"
        name="nbehnken@htc.net"> &gt;
 <item> License: Freeware
</itemize>
This program will edit the Windows NT registry and enable HPFS support. 
Pinball.sys is the HPFS filesystem driver for Windows NT. 
It can be found on NT 3.5x's CD-ROM.  Microsoft no longer supports HPFS. 
Installing this program will void your warranty and possibly the license 
agreement. 

<sect1>Accessing HPFS from Windows NT 4<label id="hpfs_from_nt4"><p>
<itemize>
 <item> Download:
         <url url="ftp://hobbes.nmsu.edu/pub/windows/hpfsnt.zip">
 <item> Author: ?
 <item> License: ?
</itemize>
HPFS driver for Windows NT 4.0



<sect>New Technology FileSystem (NTFS)<p>

References:
<itemize>
 <item> <url url="http://www.microsoft.com/msj/1198/ntfs/ntfstop.htm">
        NTFS 5 information
 <item> Rajeev Nagar,
        <htmlurl url="http://www.ora.com/catalog/wininternals/noframes.html"
        name="Windows NT File System Internals"> (O'Reilly).
 <item> Helen Custer, Inside the Windows NT File System, ISBN: 1-55615-660-X.
 <item> NTFS documentation by Regis Duchesne
        &lt;<htmlurl url="mailto:regis@via.ecp.fr" name="regis@via.ecp.fr">&gt;,
        <url url="http://www.via.ecp.fr/~regis/ntfs.tar.bz2"> or
        <url url="http://celine.via.ecp.fr/~regis/ntfs/new">
 <item> Microsoft TechNet, February 97, Windows NT Training: Support, NTFS
 <item> <url url="http://www.stat.math.ethz.ch/~maechler/NTFS-docu">
</itemize>

<sect1>Accessing NTFS from DOS (NTFSDOS.EXE)
<label id="ntfs_from_dos"><p>
<itemize>
 <item> Homepage: <htmlurl url="http://www.sysinternals.com/ntfs20.htm"
        name="http://www.sysinternals.com/ntfs20.htm">
 <item> Authors: Mark Russinovich &lt;<htmlurl
        url="mailto:mark@sysinternals.com"
        name="mark@sysinternals.com">&gt; and 
        Bryce Cogswell &lt;<htmlurl
        url="mailto:cogswell@winternals.com"
        name="cogswell@winternals.com">&gt;.
 <item> Access: Read-only, Long filenames under DOS 7 and Win9x.
</itemize>
NTFSDOS.EXE is a network file system redirector for DOS/Windows
that is able to recognize and mount NTFS drives for transparent
access.  It makes NTFS drives appear indistinguishable from standard
FAT drives, providing the ability to navigate, view and execute programs
on them from DOS or from Windows, including from the Windows 3.1 File
Manager and Windows 95 Explorer.

<sect1>Accessing NTFS from DOS (ntpwd)
<label id="ntfs_from_dos2"><p>
<itemize>
 <item>Homepage: <url url="http://www.esiea.fr/public_html/Christophe.GRENIER/">
 <item>Author: Grenier Christophe &lt;
        <htmlurl url="mailto:grenier@nef.esiea.fr"
        name="grenier@nef.esiea.fr">  &gt;
 <item> Access: Read-only (rw experimental), long filenames supported,
        no driver letter (dos tools)
 <item> License: GPL
</itemize>

NTPwd contains command line tools to access NTFS partition,
it'a a Dos port of the driver used by Linux. It contains too a little
utility to change NT password.


<sect1>Accessing NTFS from OS/2<label id="ntfs_from_os2"><p>
<itemize>
 <item> Homepage: <url url="http://www.dsteiner.com/products/software/os2/ifs.htm">
 <item> Mirror: <url url="ftp://ftp-os2.nmsu.edu/pub/os2/system/drivers/filesys/ntfs_003.zip">,
        <url url="ftp://ftp.leo.org/pub/comp/os/os2/leo/drivers/ifs">
 <item> Author: Daniel Steiner &lt; <htmlurl
        url="mailto:info@dsteiner.com"
        name="info@dsteiner.com"> &gt;
 <item> Access: Read-only, Long filenames supported
</itemize>
ntfs_003.zip archive contains only command line tools to acccess a NTFS partition in OS/2. A true IFS for accessing NTFS is included in 
<ref id="vfat_os2" name="VFAT-OS2"> v0.05.

<sect1>Accessing NTFS from Linux<label id="ntfs_from_linux"><p>
<itemize>
 <item> Homepage: <htmlurl url="http://www.informatik.hu-berlin.de/~loewis/ntfs/"
        name="http://www.informatik.hu-berlin.de/~loewis/ntfs/">
 <item> Author: Martin von Loewis <htmlurl
        url="mailto:loewis@informatik.hu-berlin.de"
        name="loewis@informatik.hu-berlin.de">
 <item> Freshmeat: <htmlurl
        url="http://news.freshmeat.net/appindex/1998/07/04/899562556.html"
        name="Console/Filesystems">
 <item> Access: Read-only (RW experimental), Long filenames supported.
 <item> License: GPL
</itemize>

This fs is also part of Linux Kernel (2.1.x and higher).

<sect1>Accessing NTFS from FreeBSD and NetBSD<label id="ntfs_freebsd"><p>
<itemize>
 <item> Homepage: <url url="http://iclub.nsu.ru/~semen/ntfs/">
 <item> Author: Semen A. Ustimenko
        &lt;<url url="mailto:semenu@FreeBSD.org"
        name="semenu@FreeBSD.org">&gt;
 <item> Download: As part of FreeBSD
        (<url url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">),
        and NetBSD (<url url="ftp://ftp.NetBSD.org/pub/NetBSD/">)
 <item> Mirror: Lookup for FreeBSD's and NetBSD's mirrors
 <item> Access: Read + limited writing, doesn't support codepages
 <item> License: BSD
</itemize>
Driver allows to mount NTFS volumes under
FreeBSD and NetBSD. We also support limited writing
ability: you can write into not comressed files without
holes, but you can't change the size of file yet. Write
support was made to swap on NTFS volume.

<sect1>Accessing NTFS from BeOS<label id="ntfs_from_beos2"><p>
<itemize>
 <item> Homepage: <url url="http://www.cs.tamu.edu/people/tkg0143/be/">
 <item> Author: Travis Geiselbrecht
        &lt; <htmlurl url="mailto:geist@tamu.edu"
        name="geist@tamu.edu"> &gt;
 <item> Download: <url url="http://www.cs.tamu.edu/people/tkg0143/be/downloads/ntfs-0.05-x86-r4.zip">
 <item> Access: ?
 <item> License: Free
</itemize>
This is a ALPHA version of a NTFS driver for BeOS. It is not the most
polished thing in the world, but every release that author puts out is more
stable than the last. He just implemented compressed file reads, so
be careful with those.
He also finally worked with NTFS 5 volumes, and managed to root out a few
bugs. <p>

Author now works for Be Inc, so you will not see his NTFS and ext2 filesystem
support updated on the web much more. The drivers will be pulled into
future BeOS releases.

<sect1>Accessing NTFS from BeOS (another)<label id="ntfs_from_beos"><p>
<itemize>
 <item> Homepage: <htmlurl url="http://www.sw.com.sg/solutions/ntfs-ro.shtml"
        name="http://www.sw.com.sg/solutions/ntfs-ro.shtml">
 <item> Author: Standard & Western Software,
        <htmlurl url="http://www.sw-soft.com"
        name="http://www.sw-soft.com">
 <item> Download: <htmlurl
        url="http://download.sw.com.sg/pub/Be/ntfs-rod-0302.tar.gz"
        name="http://download.sw.com.sg/pub/Be/ntfs-rod-0302.tar.gz">
 <item> Access: Read-only.
</itemize>


<sect1>Repairing NTFS using NTFSDOS Tools<label id="ntfs_dostools"><p>
<itemize>
 <item> Homepage:  <url url="http://www.sysinternals.com/">
 <item> Author: Winternals Software &lt;<htmlurl
        url="mailto:info@winternals.com"
        name="info@winternals.com">&gt;
 <item> Access: Read-Write: Copy and replace files.
 <item> License: Commercial
</itemize>
An add-on to NTFSDOS that allows one to rename existing files,
or to overwrite a file with new data.  Very limited functionality.


<sect1>Repairing NTFS using NTRecover <label id="ntfs_ntrecover"><p>
<itemize>
 <item> Homepage: <url url="http://www.sysinternals.com/">
 <item> Author: Winternals Software &lt;<htmlurl
        url="mailto:info@winternals.com"
        name="info@winternals.com">&gt;
 <item> Access: Freeware version is read-only, commercial version is read/write.
 <item> License: Freeware read-only version, commercial read/write version
</itemize>
Uses a boot floppy and a serial connection to a second NT
system to provide full access to a NTFS drives on dead NT systems.  Ideal
for salvaging data or replacing drivers.


<sect1>Repairing "fault tolerant" NTFS disks using FTEdit
<label id="ntfs_ftedit"><p>
<itemize>
 <item> Homepage:  ? MS ARTICLE ID: Q131658
 <item> Download: <url url="ftp://ftp.rhrz.uni-bonn.de/pub/pc/winnt/intel/ftedit.zip">
 <item> Author: Microsoft Corp.
 <item> License: ?
</itemize>
If you have a Windows NT Workstation or Server configured for fault
tolerant (FT) partitions (such as stripes with parity and volume sets), and
those partitions are inaccessible and appear in Disk Administrator as type
Unknown, you can possibly make them accessible again by using the utility
FTEDIT.

<sect>Extended filesystems (Ext, Ext2, Ext3)
<label id="ext"><label id="ext2"><label id="ext3"><p>

<itemize>
 <item> <url url="http://web.mit.edu/tytso/www/linux/ext2.html">
        - The ext2 homepage. This is the primary source of information
        about ext2.
 <item> <url url="http://uranus.it.swin.edu.au/~jn/explore2fs/es2fs.htm"> -
        Document about ext2fs from John Newbigin.
 <item> <url url="http://www.ing.umu.se/~bosse"> - Ext2fs_Rec (ext2 recognizer
        for WinNT).
</itemize><p>

Design and Linux implementation of Ext, Ext2 and Ext3:
Rémy Card, Laboratoire MASI--Institut Blaise Pascal, 
&lt;<htmlurl url="mailto:card@masi.ibp.fr" name="card@masi.ibp.fr">&gt;,
Theodore Ts'o, Massachussets Institute of Technology, 
&lt;<htmlurl url="mailto:tytso@mit.edu" name="tytso@mit.edu">&gt; and
Stephen Tweedie, University of Edinburgh, 
&lt;<htmlurl url="mailto:sct@redhat.com" name="sct@redhat.com">&gt;


<sect1>Extended filesystem (ExtFS)<p>
This is old filesystem used in early Linux systems. <p>

<sect1>Second Extended Filesystem (Ext2 FS)<p>
This is "official" Linux filesystem.

<sect1>Third Extended Filesystem (Ext3 FS)<p>
Ext3 support the same features as Ext2, but includes also Journaling.

<sect1>E2compr - Ext2fs transparent compression <label id="ext2_compress"><p>
<itemize>
 <item> Homepage: <url url="http://opensource.captech.com/e2compr/">
 <item> Download: <url url="ftp://opensource.captech.com/e2compr/">
 <item> Maintainer: Peter Moulder &lt;<htmlurl
        url="mailto:reiter@netspace.net.au"
        name="reiter@netspace.net.au">&gt;
 <item> Freshmeat: <htmlurl
        url="http://news.freshmeat.net/appindex/1999/03/27/922549870.html"
        name="Console/Filesystems">
 <item> Access: As for ext2 (Read/Write, Long filenames)
 <item> License: GPL except for compression algorithms (various licenses)
</itemize>
Implements `chattr +c' for the ext2 filesystem.
Software consists of a patch to the linux kernel, and patched
versions of various software (principally e2fsprogs i.e. e2fsck and
friends).
<bf>Although some people have been relying on it for years,
THIS SOFTWARE IS STILL IN DEVELOPMENT, AND IS NOT ,END-USER`-READY.</bf>

<sect1>Accessing Ext2 from DOS (Ext2 tools)<label id="ext2_from_dos"><p>
<itemize>
 <item> Download:<htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2/"
        name="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2/">
 <item> Access: Read-only, no drive letters (special utilites)
 <item> Author: Claus Tondering &lt;<htmlurl
        url="mailto:ct@login.dknet.dk"
        name="ct@login.dknet.dk">&gt;
 <item> Access: ?
 <item> License: ?
</itemize>
A collection of DOS programs that allow you to read a Linux ext2 file system
from DOS.

<sect1>Accessing Ext2 from DOS, Windows 9x/NT and other Unixes (LTools)<label id="ext2_from_dos2"><p>
<itemize>
 <item> Homepage: <url url="http://www.it.fht-esslingen.de/~zimmerma/software/ltools.html">
 <item> Author: Werner Zimmermann &lt;<htmlurl
        url="mailto:Werner.Zimmermann@fht-esslingen.de"
        name="Werner.Zimmermann@fht-esslingen.de">&gt; 
 <item> Homepage: <url url="http://www.it.fht-esslingen.de/~zimmerma/software/ltools.htm">
 <item> Mirror: <url url="http://metalab.unc.edu/pub/linux/utils/dos/">
  (only major releases)
 <item> Access: Read/Write/Modify, Long filenames
 <item> License: GPL
</itemize>
The LTOOLS are under DOS/Windows 3.x/Windows 9x/Windows NT or
non-Linux-UNIX, what the MTOOLS are under Linux. You can access (read,
write, modify) your Linux files when running one of the other operating
systems. The kernel of the LTOOLS is a set of command line programs.
Additionally a JAVA program as a stand alone graphical user interface is
available. Alternatively, you can use your standard web browser as a
graphical user interface. The LTOOLS do not only provide access to Linux
files on your own machine, but also remote access to files on other
machines.


<sect1>Accessing Ext2 from OS/2<label id="ext2_os2"><p>
<itemize>
 <item> Homepage:<url url="http://perso.wanadoo.fr/matthieu.willm/ext2-os2/">
 <item> Author: Matthieu WILLM &lt;<htmlurl
        url="mailto:willm@ibm.net"
        name="willm@ibm.net">&gt; , 
        &lt;<htmlurl url="mailto:matthieu.willm@wanadoo.fr"
        name="matthieu.willm@wanadoo.fr">&gt;
 <item> Download: <url url="ftp://hobbes.nmsu.edu/pub/os2/system/drivers/filesys/ext2_240.zip">
 <item> Freshmeat: <htmlurl
        url="http://news.freshmeat.net/appindex/1999/05/30/928069144.html"
        name="Console/Filesystems">
 <item> Access: Read/Write, swapping and booting to/from ext2,
        removable media support, but NO extended attributes.
</itemize>
EXT2-OS2 is a package that allows OS/2 to seamlessly access Linux ext2
formatted partitions from OS/2 as if they were standard OS/2 drive letters.
The ultimate aim of this package is to be able to use the ext2 file system
as a replacement of FAT or HPFS. For the moment the only lacking feature
to achieve this goal is the support for OS/2 extended attributes.

<sect1>Accessing Ext2 from Windows 95/98 (FSDEXT2)
<label id="ext2_from_win95"><p>
<itemize>
 <item> Homepage:<htmlurl url="http://www.yipton.demon.co.uk/"
        name="http://www.yipton.demon.co.uk/">
 <item> Author: Peter van Sebille <htmlurl
        url="mailto:pvs@globalxs.nl"
        name="pvs@globalxs.nl"> ,
        <htmlurl url="mailto:pese@nlnwgfsc.origin.nl"
        name="pese@nlnwgfsc.origin.nl">
 <item> Freshmeat: <htmlurl
        url="http://news.freshmeat.net/appindex/1998/10/14/908381784.html"
        name="Console/Filesystems">
 <item> Access: Read-only, Long filenames supported
</itemize>

<sect1>Accessing Ext2 from Windows 95 (Explore2fs)
<label id="ext2_from_win952"><p>
<itemize>
 <item> Homepage:<url url="http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm">
 <item> Access: Read/Write, Long filenames, symbolic links etc...
 <item> Author: John Newbigin &lt;<htmlurl
        url="mailto:jn@it.swin.edu.au"
        name="jn@it.swin.edu.au">&gt;
 <item> License: GPL
</itemize>
A user space application which can read and write the second extended
file system
ext2.  Supports hard disks and removable media, including zip and floppy.
Uses a windows explorer like interface to show files and details.  Supports Drag& Drop, context menus etc.
Written for Windows NT, but has some support for Windows 95.  Large disks can
cause problems.



<sect1>Accessing Ext2 from Windows NT (ext2fsnt)
<label id="ext2_from_winnt"><p>
<itemize>
 <item> Homepage:<htmlurl url="http://www.cyco.nl/~andreys/ext2fsnt/"
        name="http://www.cyco.nl/~andreys/ext2fsnt/">
 <item> Author: Andrey Shedel &lt; <htmlurl
        url="mailto:andreys@tarzan.cr.cyco.com"
        name="andreys@tarzan.cr.cyco.com"> &gt;
 <item> License: Free
 <item> Access: Read-only, Long filenames supported
</itemize>


<sect1>Accessing Ext2 from BeOS<label id="ntfs_from_beos2"><p>
<itemize>
 <item> Homepage: <url url="http://www.cs.tamu.edu/people/tkg0143/be/">
 <item> Author: Travis Geiselbrecht
        &lt; <htmlurl url="mailto:geist@tamu.edu"
        name="geist@tamu.edu"> &gt;
 <item> Download: <url url="http://www.cs.tamu.edu/people/tkg0143/be/downloads/ext2fs-1.0.6-x86-r4.zip"> for R4 and
        <url url="http://www.cs.tamu.edu/people/tkg0143/be/downloads/ext2fs-1.0.3-x86-r3.zip"> for R3.
 <item> Access: Read-only, long filenames supported.
 <item> License: Free
</itemize>
This is a driver to allow BeOS to mount the Linux Ext2 filesystem. The
version that is currently released author consider pretty stable. People
have been using it for a long time, with no bug reports. <p>

Authow now works for Be Inc, so you will not see his ext2 and NTFS filesystem
support updated on the web much more. The drivers will be pulled into
future BeOS releases.

<sect1>Accessing Ext2 from MacOS (MountX)
<label id="ext2_macos"><p>
<itemize>
 <item> Homepage: <url url="http://calvaweb.calvacom.fr/bh40">
 <item> Author: ?
 <item> Download: ?
</itemize>
MacOS driver which allows you to mount ext2 filesystems (Linux and
MkLinux) on the Macintosh.


<sect1>Accessing Ext2 from MiNT
<label id="ext2_mint"><p>
<itemize>
 <item> Homepage: <url url="http://?">
 <item> Author: &lt;<htmlurl
        url="mailto:yescrew@capybara.sk-pttsc.lj.edus.si"
        name="yescrew@capybara.sk-pttsc.lj.edus.si">&gt;
  <item> Download: ?
 <item> License: GPL
</itemize>
This is a full working Ext2 filesystem driver for FreeMiNT.
It can read and write the actual ext2 version as implemented in Linux
for example. The partition size is not limited and the logical sector
size can be 1024, 2048 or 4096 bytes. The only restriction is that the
physical sector size is smaller or equal to the logical sector size.
The blocksize can be configured if you initialize the partition with
mke2fs.


<sect1>Ext2fs defrag <label id="ext2_defrag"><p>
<itemize>
 <item> Download: <url url="ftp://ftp.uk.linux.org/pub/linux/sct/defrag/">
 <item> Author: Stephen C. Tweedie &lt; <htmlurl
        url="mailto:sct@redhat.com"
        name="sct@redhat.com"> &gt;
 <item> License: GPL
</itemize>
Defragments your ext2 filesystem.  Needs updated for glib libraries.

<sect1>Ext2fs resize <label id="ext2_resize"><p>
<itemize>
 <item> Homepage: <url url="http://www.dsv.nl/~buytenh/ext2resize/">
 <item> Download: <url url="http://www.dsv.nl/~buytenh/ext2resize/ext2resize-990617.tar.bz2">
 <item> Author: Lennert Buytenhek &lt;<htmlurl
        url="mailto:buytenh@dsv.nl" name="buytenh@dsv.nl">&gt;.
 <item> License: GPL
</itemize>
Resizes second extended filesystem.

<sect1>Ext2end <label id="ext2end"><p>
<itemize>
 <item> Homepage: <url url="http://linux.msede.com/ext2/ext2end.html">
 <item> Maintainer: Mike Field &lt;<htmlurl
        url="mailto:mafield@the.net.nz"
        name="mafield@the.net.nz">&gt;
 <item> License: Copyright Mike Field. To be GPLed once stable.
</itemize>
For use with <ref id="lvm" name="LVM"> Consists of 2 utilites. ext2endable
reorganises an empty ext2 file systems to allow them
to be extended, and ext2end that extends an unmounted
ext2 file system.
If ext2endable has not been run when the file system
was created ext2end will only be able to extend it to
the next multiple of 256MB

<sect1>Repairing/analyzing/creating Ext2 using E2fsprogs
<label id="ext2_e2fsprogs"><p>
<itemize>
 <item> Homepage: <url url="http://web.mit.edu/tytso/www/linux/e2fsprogs.html">
 <item> Authors: <htmlurl
        url="mailto:tytso@mit.edu"
        name="tytso@mit.edu"> and
        <htmlurl url="mailto:card@masi.ibp.fr"
        name="card@masi.ibp.fr">
  <item> Download: <url
        url="http://sunsite.unc.edu/pub/Linux/system/Filesystems/ext2/e2fsprogs-1.06.tar.gz">
  <item> Freshmeat: <htmlurl
        url="http://news.freshmeat.net/appindex/1998/07/10/900098883.html"
        name="Console/Filesystems">
 <item> License: GPL
</itemize>
The ext2fsprogs package contains essential ext2 filesystem utilities which
consists of e2fsck, mke2fs, debugfs, dumpe2fs, tune2fs, and most of the
other core ext2 filesystem utilities.

<sect1>Ext2 filesystem editor - Ext2ed
<label id="ext2ed"><p>
<itemize>
 <item> Homepage: ?
 <item> Author: <htmlurl
        url="mailto:tgud@tochnapc2.technion.ac.il"
        name="tgud@tochnapc2.technion.ac.il">.
 <item> Download: <url
        url="http://sunsite.unc.edu/pub/Linux/system/Filesystems/ext2/ext2ed-0.1.tar.gz">
 <item> License: GPL
</itemize>
EXT2ED is a disk editor for the extended2 filesystem.
It will show you the ext2 filesystem structures in a nice
and intuitive way, letting you easily "travel" between them
and making the necessary modifications.

<sect1>Linux filesystem editor - lde
<label id="lde"><p>
<itemize>
 <item> Homepage: ?
 <item> Author: Scott D. Heavner &lt;<htmlurl
        url="mailto:sdh@po.cwru.edu"
        name="sdh@po.cwru.edu">&gt;.
 <item> Download: <url
        url="sunsite.unc.edu/pub/Linux/system/Filesystems/lde-2.3.4.tar.gz">
 <item> License: GPL
</itemize>
This allows you to view some Linux fs's,  hex block
and inode editing are now supported and you can use it to dump an erased file
to another partition with a little bit of work.  Supports ext2, minix,
and xiafs.  Includes <bf>LaTeX Introduction to the Minix fs</bf>. You must patch
sources to compile on 2.2.x and 2.3.x kernels beacuse of missing Xia header
files in kernel.<p>

<sect1>Ext2 undelete utilities
<label id="ext2undel"><p>
<itemize>
 <item> Homepage: <url url="http://amadeus.uprm.edu/~undelete">
 <item> Authors: Gunther Costas, Wilfredo Lugo, Jerry Ramirez
        &lt;<htmlurl url="mailto:undelete@amadeus.uprm.edu"
        name="undelete@amadeus.uprm.edu">&gt;
 <item> Freshmeat: <htmlurl
        url="http://news.freshmeat.net/appindex/1998/10/14/908382417.html"
        name="Console/Filesystems">
 <item> License: GPL
</itemize>
This is a patch for kernel 2.0.30 that adds undelete capabilities
using the "undeletable" attribute provided by the ext2fs. This patch
include man pages, the undelete daemon and utilities.  Check our web page
for the latest and greatest version.
 

<!-- ################################################################## -->
<sect> Macintosh Hierarchical Filesystem - HFS<label id="hfs"> <p>
All Macintosh storage devices except floppy disks are partitioned into
one or more volumes. Volumes can contain four kinds of items: files,
directories, directory threads and file threads. Each item is described
by a catalog record which is analogous to a Unix inode. Catalog records
are organized in the on-disk catalog B-Tree. Directory contents are
derived from searching the catalog B-Tree. Only a file can occupy space
outside of its catalog record.<p>

A Macintosh "file" contains two components,
or forks. The resource fork is an indexed file containing code
segments, menu items, dialog boxes, etc. The data fork has the "stream of
bytes" semantics of a Unix file contents. Each fork is comprised of one
or more extents or contiguous runs of blocks. An extent descriptor encodes
an extent's starting block and length into a 32bit quantity. The first
extent record (three extent descriptors) of each fork is a part of the
file's catalog record. Any further extent records are kept in the
extents overflow B-Tree.<p>

In addition to file and B-Tree extents a volume also contains two boot
blocks, a volume information block, and a free space bitmap. There is
a remarkable amount of redundancy in the on diskdata structures which
improves crash recovery. While not strictly a part of the filesystem,
it should be noted that several catalog record fields are reserved
for the exclusive use of Finder, a program which handles user access
to the filesystem and automatically maintains associations between
applications and data files. Thus, HFS must also maintain this Finder
info. <p>

Every file and directory on an HFS volume has an identification number,
similar to an inode number in the Unix filesystem. However, a file or
directory is named by its parent's identification number and the file
or directory's file name, which is a 32 character string that can
contain nulls. This combination is the search key to the volume's
catalog B-Tree. The catalog B-Tree differs from a traditional B-Tree
structure in that all the nodes at each level of the B-Tree are linked
together to form a doubly linked list and all of the records are in
the leaf nodes. These variations permit accessing many items in the
same directory by traversing the leaves using the linked list. Strictly
speaking, the HFS B-Trees are a variant of B+-Trees although Apple's
technical documentation calls them B*-Trees. <p>

Each directory, including the root directory, contains its directory
thread, which has the empty filename. The directory thread record
contains the name of the directory and the id of the parent of the directory.
Similarly, filethreads contain the name of a file and the id of the
directory they are in. While every directory must contain a directory
thread, file threads are very uncommon. In fact, both are examples of
HFS redundancy - for undamaged trees, threads are not strictly necessary.
Both file and directory records contain 32 bytes of information used by
Finder. The first three extent descriptors for the catalog B-Tree are kept
in the volume information block. If the catalog B-Tree file grows beyond
three extents, the remaining extent descriptors are kept in the extents
overfow.
<p>

HFS and HFS+ (also called Sequoia) filesystems are well documented. The
best source of tech. information about HFS can be found in the <bf>Inside
Mactosh</bf> series of books. Look at
<url url="http://developer.apple.com/techpubs/mac/Files/Files-99.html">.
The HFS+ filesystem is described in <bf>Technote 1150</bf>,
available online at 
<url url="http://developer.apple.com/technotes/tn/tn1150.html">.
A lot of information is available also in other technotes. This links
are collected by Paul H. Hargrove:

<itemize>
  <item><url url="http://developer.apple.com/dev/technotes/fl/fl_22.html">
       - HFS Ruminations.
<item> <url url="http://developer.apple.com/dev/technotes/fl/fl_32.html">
       - Hey, Buddy, Can You Spare A Block?
<item> <url url="http://developer.apple.com/dev/technotes/fl/fl_505.html">
       - Alias Manager Q&amp;As
<item> <url url="http://developer.apple.com/dev/technotes/fl/fl_515.html">
       - File Manager File Handling Q&amp;As
<item> <url url="http://developer.apple.com/dev/technotes/fl/fl_530.html">
       - File Manager Volume Handling Q&amp;As
<item> <url url="http://developer.apple.com/dev/qa/ops/ops08.html">
       - Bizarre Extension Loading Order: BackQuote Sorts Between "A" and "B"
<item> <url url="http://developer.apple.com/dev/technotes/tb/tb_535.html">
       - Finder Q&amp;As
</itemize>


<sect1>Accessing HFS from Linux
<label id="hfs_from_linux"><p>
<itemize>
 <item> Homepage: <url url="http://www-sccm.Stanford.EDU/~hargrove/HFS/">
 <item> Author: Paul. &lt;<htmlurl
        url="mailto:hargrove@sccm.Stanford.edu"
        name="hargrove@sccm.Stanford.edu">&gt;
 <item> Freshmeat: <htmlurl
        url="http://news.freshmeat.net/appindex/1998/08/07/902523578.html"
        name="Console/Filesystems">
 <item> License: GPL
</itemize>

<sect1>Accessing HFS from OS/2 (HFS/2)
<label id="hfs_from_os2"><p>
<itemize>
 <item> Homepage: <url url="http://www.student.nada.kth.se/~f96-bet/HFS/">
 <item> Author: Marcus Better &lt;<htmlurl
        url="mailto:Marcus.Better@abc.se" name="Marcus.Better@abc.se">&gt;
</itemize>

HFS/2 lets OS/2 users seamlessly read and write files
on diskettes formatted with the Hierarchical File System, the
file system used by Macintosh computers. With HFS/2, Macintosh
diskettes can be used just as if they were regular diskettes.
<p>

This program is no longer being developed, because author doesn't
use OS/2. If you are willing to maintain the program, let him know.

<sect1>Accessing HFS from Windows 95/98/NT (HFV Explorer)
<label id="hfs_from_win"><p>
<itemize>
 <item> Homepage: <url url="http://gamma.nic.fi/~lpesonen/HFVExplorer/">
 <item> Author: Lauri Pesonen &lt;<htmlurl
        url="mailto:lpesonen@nic.fi" name="lpesonen@nic.fi">&gt;
 <item> Access: R/W access to floppies, Zip disks and virtual volume
        files. Read access to HFS and hybrid CD's.
 <item> License: GPL
</itemize>
An HFS volume browser for Windows NT and Windows 9x based
on hfsutils. Launch pad support for all major Macintosh
emulators running on Windows.

<sect1>Accessing HFS from DOS (MAC-ETTE)
<label id="hfs_from_dos"><p>
<itemize>
 <item> Homepage: ?
 <item> Author: Paul E. Thomson 
 <item> Download: <url url="http://home2.inet.tele.dk/shefan/macette3.zip">
 <item> Access: Read-Only
 <item> License: Shareware ($34)
</itemize>
Mac-ette is a PC utility which can read, write, format and duplicate Macintosh
HFS format 1.4 Meg diskettes on a PC equipped with a 3.5 inch high density
diskette drive.

<sect1>HFS utils <label id="hfs_utils"><p>
<itemize>
 <item> Homepage: <url url="http://www.mars.org/home/rob/proj/hfs/">
 <item> Author: Robert Leslie &lt;<htmlurl
        url="mailto:rob@mars.org"
        name="rob@mars.org">&gt;
 <item> OS/2 port: <url url="http://www.f.kth.se/~f96-bet/hfsutils/">
</itemize>

The hfsutils package contains a set of command-line utilities
such as hformat, hmount, hdir,
hcopy, etc. They allow read-write access of files and directories
on HFS volumes.

<sect1>MacFS: A Portable Macintosh File System Library
<label id="macfs_lib"><p>
<itemize>
 <item> Tech report: <url url="http://reports-archive.adm.cs.cmu.edu/anon/1998/abstracts/98-145.html">
 <item> Author: Peter A. Dinda &lt;<htmlurl
        url="mailto:pdinda+macfs@cs.cmu.edu"
        name="pdinda+macfs@cs.cmu.edu">&gt;,
        George C. Necula, and Morgan Price
 <item> Download: <url url="ftp://ftp.cs.cmu.edu/user/pdinda/MacFS_0.1.tar.gz">
 <item> Access: Read/Write, full open/read/write/seek/close support
 <item> License: Free for noncommercial and nonmilitary use, see
                 <url url="ftp://ftp.cs.cmu.edu/user/pdinda/MacFS_0.1.LICENSE">
</itemize>
This is a Macintosh file system library which is portable to a
variety of operating systems and platforms. It presents a programming
interface sufficient for creating a user level API as well as file system
drivers for operating systems that support them. Authors implemented
and tested such a user level API and utility programs based on it
as well as an experimental Unix Virtual File System.
They also describe the Macintosh Hierarchical File System and their
implementation and note that
the design is not well suited to reentrancy and that its complex
data structures can lead to slow
implementations in multiprogrammed environments. Performance
measurements show that
our implementation is faster than the native Macintosh
implementation at creating, deleting,
reading and writing files with small request sizes, but slower than the Berkeley Fast File
System (FFS.) However, the native Macintosh implementation can
perform large read and write operations faster that either our
implementation or FFS.

<sect>ISO 9660 - CD-ROM filesystem<label id="iso9660"><p>

<sect1>RockRidge extensions<p>
Extensions allowing long filenames and Unix-style symbolic links.

<sect1>Joliet extensions<p>
Joliet is a Microsoft extension to the
ISO 9660 filesystem that allows Unicode characters to be used in
filenames.  This is a benefit when handling internationalization.
Like the Rock Ridge extensions, Joliet also allows long filenames.

<sect1>Hybrid CD-ROMs<p>

<sect1>Physical formats<p>

<sect2>CD-DA - Audio CDs<p>
<sect2>Data CDs<p>
<sect2>Recordable CDs<p>
<sect3>CD-MO - Magneto-optical<p>
<sect3>CD-WO - Write-once<p>
<sect3>CD-RW - Rewritable CDs<p>
<sect2>CD Extra - eXtended Architecture<p>
<sect3>MODE-1
<sect3>MODE-2
<sect4>FORM-1
<sect4>FORM-2
<sect2>Video CD<p>

<sect1>Accessing Joliet from Linux<p>
<label id="joliet_linux"><p>
<itemize>
 <item> Homepage: <url url="http://bmrc.berkeley.edu/people/chaffee/joliet.html">
 <item> License: GPL
</itemize>

<sect1>Accessing Joliet from BeOS<p>
<label id="joliet_beos"><p>
<itemize>
 <item> Homepage: <url url="http://www.iae.nl/users/gertjan/be/">
 <item> Author: Gertjan van Ratingen &lt;<htmlurl 
        url="mailto:gertjan@iae.nl" name="gertjan@iae.nl">&gt;
 <item> License: ?
</itemize>
It is updated ISO9660 driver to be able to use a Joliet ISO9660 extensions.

<sect1>Accessing Joliet from OS/2<p>
<label id="joliet_os2"><p>
<itemize>
 <item> Download: <url url="ftp://hobbes.nmsu.edu/pub/os2/system/drivers/filesys/jcdfs.zip">
 <item> Author: IBM
 <item> License: ?
</itemize>
Jcdfs.zip archive contains CDFS.IFS driver for OS/2 with Joliet level 3
support.

<sect1>Accessing Audio CD as filesystem from BeOS<p>
<label id="audiocd_beos"><p>
<itemize>
 <item> Homepage: <url url="http://www.xs4all.nl/~marcone/be.html">
 <item> Download: <url url="http://www.xs4all.nl/~marcone/be/files/cdda5.zip">
        (PPC/Intel archive)
 <item> Author: Marco ?
 <item> License: ?
</itemize>
This filesystem add-on will allow you (if your CD drive supports it) to treat a
regular audio CD
as if it were a bunch of WAV files. You can copy the files, encode them to mp3,
play them slower,
faster, even backwards.

<sect1>Creating Hybrid CD-ROMs (mkhybrid)<p>
<label id="mkhybrid"><p>
<itemize>
 <item> Homepage: <url url="http://www.ps.ucl.ac.uk/~jcpearso/mkhfs.html">
 <item> Download: <url url="ftp://ftp.ge.ucl.ac.uk/pub/mkhfs/">
 <item> Author: &lt;<htmlurl url="mailto:j.pearson@ge.ucl.ac.uk"
        name="j.pearson@ge.ucl.ac.uk">&gt;
 <item> License: ?
</itemize>
Make an ISO9660/HFS/JOLIET shared hybrid CD volume
 

<sect>Other filesystems<p>

<sect1> ADFS - Acorn Disc File System <p>
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.  <p>

Linux kernel 2.1.x+ supports this filesystem. Author of Linux filesystem 
implementation is Russell King &lt;<htmlurl url="mailto:rmk@arm.uk.linux.org"
name="rmk@arm.uk.linux.org">&gt;.

<sect1> AFFS - Amiga fast filesystem<label id="affs"><p>
The Fast File System (FFS) is the common filesystem used on hard
disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20).<p>

Linux kernel 2.1.x+ supports this filesystem. Author of Linux filesystem 
implementation is Ray Burr &lt;<htmlurl url="mailto:ryb@nightmare.com"
name="ryb@nightmare.com">&gt;.

<!------------------------------------------------------------------------>

<sect1> BeFS - BeOS filesystem<label id="befs"><p>
BeFS is <ref id="journal" name="journaling"> filesystem used in BeOS.
For more information about BeFS see <htmlurl url="http://www.mkp.com/books_catalog/1-55860-497-9.asp"
name="Practical File System Design with the Be File System">
book or BeFS linux driver source code.<p>

Linux BeFS implementation:
<label id="befs_linux"><p>
<itemize>
 <item> Homepage: <url url="http://hp.vector.co.jp/authors/VA008030/bfs/">
 <item> Download: <url url="http://hp.vector.co.jp/authors/VA008030/bfs/bfs-19990528.tar.gz">
 <item> Author: Makoto Kato &lt;<htmlurl url="mailto:m_kato@ga2.so-net.ne.jp"
        name="m_kato@ga2.so-net.ne.jp">&gt;
 <item> Access: Read-only
 <item> License: GPL
</itemize>
This driver supports x86 and PowerPC Linux platform.
Also, it only supports readable in hard disk and floppy disk.

<sect1> BFS - UnixWare Boot Filesystem<label id="bfs"><p>
UnixWare BFS filesystem type is a special-purpose filesystem. It was designed
for loading and booting UnixWare kernel. BFS was designed as a
<ref id="contiguous" name="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.<p>

<p>
For more information about BFS see
<url url="http://uw7doc.sco.com/FS_admin/_The_bfs_File_System_Type.html">.
<itemize>
 <item> <url url="http://uw7doc.sco.com/FS_admin/_The_bfs_Superblock.html">
        - superblock
 <item> <url url="http://uw7doc.sco.com/FS_admin/_bfs_Inodes.html">
        - inodes
 <item> <url url="http://uw7doc.sco.com/FS_admin/_bfs_Storage_Blocks.html">
        - storage blocks
</itemize>

You can access BFS filesystem from Linux:

<label id="bfs_linux"><p>
<itemize>
 <item> Homepage: <url url="http://www.penguin.cz/~mhi/fs/bfs/">
 <item> Download: <url url="ftp://ftp.penguin.cz/pub/users/mhi/bfs/">
 <item> Author: Martin Hinner &lt;<htmlurl url="mailto:mhi@penguin.cz"
        name="mhi@penguin.cz">&gt;
 <item> License: GPL
 <item> Access: Read-only
</itemize>
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 <ref id="vxfs" name="VxFS"> Linux support.

<!-------------------------------------------------------------------------->

<sect1> CBM FS - Commodore 1581/1541 filesystem<p>
This filesystem was used on Commodore 1581/1541. There is a read-only filesystem
driver for Linux:

<label id="cbmfs_linux"><p>
<itemize>
 <item> Homepage: <url url="http://www.npsnet.com/danf/software/pub/">
 <item> Download: <url url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/cbmfs-0.3.tar.gz">
 <item> Author: Dan Fandrich &lt;<htmlurl
        url="mailto:dan@fch.wimsey.bc.ca" name="dan@fch.wimsey.bc.ca">&gt;
 <item> License: GPL
 <item> Access: Read-only
</itemize>
Commodore 1581 & 1541 read-only filesystem driver, installed as
a kernel module.  Allows mounting Commodore 1581 disks in a
standard 3.5" floppy drive and 1541 disk images copied to any
floppy disk.  PETSCII to ASCII conversion can be automatically
performed.  Partitions on 1581 disks are accessed as
subdirectories.

<!-------------------------------------------------------------------------->
<sect1> CrosStor filesystem<p>
This is new name for <bf>High throughput filesystem (HTFS)</bf>. For more
information see CrosStor homepage at <url url="http://www.crosstor.com">.

<sect1> DTFS - Desktop filesystem<label id="dtfs"><p>
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 <url url="ftp://ftp.crosstor.com/pub/DTFS/papers/">).
<p>

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

<label id="dtfs_unixware"><p>
<itemize>
 <item> Download: <url url="ftp://ftp.crosstor.com/pub/DTFS/">
 <item> License: Commercial?
 <item> Access: Read/Write
</itemize>

<sect1> EFS - Enhanced filesystem (Linux)<label id="enhfs"><p>
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.<p>

Some other features that authors want to implement are
<ref id="journal" name="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!<p>

Homepage of Enhanced FS is at <url url="http://www.coker.com.au/~russell/enh/">.
Contact Russell Coker
&lt;<htmlurl url="mailto:russell@coker.com.au"
name="russell@coker.com.au">&gt; for more information.


<sect1> EFS - Extent filesystem (IRIX)<label id="efs"><p>
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.
<p>

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

<label id="efs_linux"><p>
<itemize>
 <item> Homepage: <url url="http://aeschi.ch.eu.org/efs/">
 <item> Download: <url url="http://aeschi.ch.eu.org/efs/efs-1.0b.tar.gz">
 <item> Author: Al Smith &lt;<htmlurl
        url="mailto:Al.Smith@aeschi.ch.eu.org"
        name="Al.Smith@aeschi.ch.eu.org">&gt;
 <item> License: GPL
 <item> Access: Read-only
</itemize>
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.
<p>

Original efsmod is also available:

<label id="efsmod_linux"><p>
<itemize>
 <item> Homepage: <url url="http://wwwcip.informatik.uni-erlangen.de/user/cnvogelg/proj.html">
 <item> Download: <url url="http://wwwcip.informatik.uni-erlangen.de/user/cnvogelg/bin/efsmod-0.6.tgz">
 <item> Author: Christian Vogelgsang
 <item> License: GPL
 <item> Access: Read-only
</itemize>
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.
<p>

Useful links:
<itemize>
 <item> IRIX EFS filesystem brief description:
        <url url="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"><P>
       
</itemize>

<sect1> FFS - BSD Fast filesystem<label id="ffs"><p>
This is native filesystem for most BSD unixes (FreeBSD, NetBSD, OpenBSD,
Sun Solaris, ...).

<sect1> GPFS - General Parallel Filesystem<p>
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.

<itemize>
 <item><url url="http://www.austin.ibm.com/resource/technology/paper1.html">
</itemize>

<sect1> HFS - HP-UX Hi performance filesystem<p>
This is the second hfs that appears in this howto. It is used in older HP-UX
versions.

<sect1> HTFS - High throughput filesystem <label id="htfs"><p>

Useful links:
<itemize>
 <item> SCO OpenServer 5 filesystems whitepaper:
        <url url="http://www.sco.com/products/Whitepapers/family/filesy4.htm">
</itemize>

Read/Write <bf>commercial</bf> driver available from CrosStor:

<label id="htfs_solaris"><p>
<itemize>
 <item> Download: <url url="ftp://ftp.crosstor.com/pub/HTFS/">
 <item> License: Commercial?
 <item> Access: Read/Write
</itemize>

<sect1> JFS - Journaled filesystem (HP-UX, AIX, OS/2 WarpServer 5)
<label id="jfs"><p>

<!-------------------------------------------------------------------------->

<sect1> LIF - Logical Interchange Format (HP-UX)<p>
This filesystem is used in older HP-UX versions. It can be also found in
ROMs and bootup sectors.

<!-------------------------------------------------------------------------->

<sect1> LFS - Linux log structured filesystem<p>

Linux Log structured filesystem implementation:
<itemize>
 <item> Homepage: <url url="http://www.complang.tuwien.ac.at/czezatke/lfs.html">
 <item> Download:  ?
 <item> Author: Christian Czezatke &lt;<htmlurl
        url="mailto:e9025461@student.tuwien.ac.at"
        name="e9025461@student.tuwien.ac.at">&gt;
 <item> License: ?
 <item> Access: ?
</itemize>
The goal of the project is to implement a log-structured file system within
the Linux 2.2.x kernels. dtfs has a filesystem-independent core that provides
general services required for a log-structured file system and uses a "traditional"
file system implementation to do the actual filesystem/VFS operations.

<p>

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

<!---------------------------------------------------------------------------->

<sect1> MFS - Macintosh filesystem <p>
MFS is original Macintosh filesystem. It has been replaced by HFS / HFS+.

<!---------------------------------------------------------------------------->

<sect1> Minix filesystem <p>
This is Minix native filesystem. It was also used in first versions of Linux.

<!---------------------------------------------------------------------------->

<sect1> NWFS - Novell NetWare filesystem<label id="nwfs"><p>
NWFS is native in Novell NetWare OS. It is modified FAT-based filesystem.
Two variants of this filesystem exists. 16bit NWFS 286 is used by NetWare 2.x,
NetWare 3.x, 4.x and 5 uses 32bit NWFS 386.

<sect2> NetWare filesystem / 286<label id="nwfs286"><p>
<sect2> NetWare filesystem / 386<label id="nwfs386"><p>

<!---------------------------------------------------------------------------->
<sect1> NSS - Novell Storage Services<label id="nss"><p>
This is a new 64bit <ref id="journal" name="journaling"> filesystem using a 
<ref id="btree" name="balanced tree"> algorithms. It is used in Novell
NetWare 5.


<itemize>
 <item> <url url="http://www.novell.com/whitepapers/nw5/nss.html"> - NSS Whitepaper
</itemize>

<!---------------------------------------------------------------------------->

<sect1> ODS - On Disk Structure filesystem<p>
This is OpenVMS and VMS native filesystem.

<!---------------------------------------------------------------------------->

<sect1> QNX filesystem <label id="qnxfs"><label id="qnx4"><p>
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.<p>

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

<itemize>
 <item> Download: In the kernel ;)
 <item> Author: Frank Denis  &lt;<htmlurl
        url="mailto:j@4u.net" name="j@4u.net">&gt; (maintainer),
        Richard Frowijn
 <item> License: GPL
 <item> Access: Read (except for multi-extents files), Write (experimental)
</itemize>
Driver for the QNX 4 filesystem.

<!---------------------------------------------------------------------------->

<sect1> Reiser filesystem<label id="reiserfs"><p>
   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.
<p>

Useful links:
<itemize>
 <item> Reiser fs homepage
        <url url="http://devlinux.org/namesys/">
</itemize>

<sect1> RFS (CD-ROM Filesystem)<p>
Sony's incremental packet-writing filesystem.


<sect1> RomFS - Rom filesystem<p>
Author of Linux RomFS implemplementation is 
Janos Farkas &lt;<htmlurl url="mailto:chexum@shadow.banki.hu"
name="chexum@shadow.banki.hu">&gt; For more information see
<bf>/usr/src/linux/Documentation/filesystems/romfs.txt</bf>
file.

<sect1> SFS - Secure filesystem<p>
?? <url url="http://uw7doc.sco.com/FS_admin/_The_sfs_File_System_Type.html"> ??

<sect1> Spiralog filesystem (OpenVMS)<label id="spiralog"><p>

Spiralog is a 64bit high-performance filesystem for the OpenVMS.
The Spiralog
combines <ref id="journal" name="log-structured"> technology
with more traditional <ref id="btree" name="B-tree">
technology to provide a general abstraction. The B-tree
mapping mechanism uses write-ahead logging to give stability and
recoverability guarantees. 
<p>

Spiralog-related links at Digital:

<itemize>
 <item> <url url="http://www.digital.com/info/SP6048/">
        - Spiralog File System for OpenVMS Alpha 
 <item> <url url="http://www.digital.com/DTJM01/DTJM01AH.HTM">
        - Overview of the Spiralog File System
 <item> <url url="http://www.digital.com/DTJM02/DTJM02HM.HTM">
        - Design of the Server for the Spiralog File System
</itemize>

<sect1> System V and derived filesystems <p>
Homepage of System V Linux project is at
<url url="http://www.knm.org.pl/prezes/sysv.html">.


<sect2> AFS - Acer Fast Filesystem<label id="afs"><p>
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.

<sect2> EAFS - Extended Acer Fast Filesystem<label id="eafs"><p>
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 and called EAFS.

<sect2> Coherent filesystem<label id="coherent"><p>

<sect2> S5<label id="s5"> <p>
This filesystem is used in UnixWare. It's probably SystemV compatible, but
I haven't verified it yet. For more information see
<url url="http://uw7doc.sco.com/FS_admin/_The_s5_File_System_Type.html">.

<sect2> S51K - SystemV 1K<label id="s51k"><p>

<sect2> Version 7 filesystem<p>
This filesystem type is used on Version 7 Unix for PDP-11 machines.

<sect2> Xenix filesystem<label id="xenix"><p>

<sect1> Text - (Philips' CD-ROM Filesystem)<p>
Philips' standard for encoding disc and track data on audio CDs.


<sect1> UDF - Universal Disk Format (DVD-ROM filesystem)<p>

There is a Linux UDF filesystem driver:
<label id="udf_linux"><p>
<itemize>
 <item> Homepage: <url url="http://trylinux.com/projects/udf/">
 <item> Download: <url url="http://trylinux.com/projects/udf/udf-0.8.0.1.tar.gz">
 <item> Author: ?
 <item> License: GPL
 <item> Access: Read-only
</itemize>

<sect1> UFS <p>

Useful links:
<itemize>
 <item> <url url="http://www.sun.ca/white-papers/ufs-cluster.html">
        - Implementation of write-clustering for Sun's UFS
</itemize>

<sect1> VxFS - Veritas filesystem (HP-UX, SCO UnixWare, Solaris)
<label id="vxfs"><p>
This is Journaling filesystem used in HP-UX, SCO UnixWare and Solaris.
<p>

VxFS related links:
<itemize>
 <item> <url url="http://www.veritas.com/"> - Veritas Inc.
 <item> <url url="http://uw7doc.sco.com/FS_manager/fsD.vxfsopt.html">
        - UnixWare 7 documentation.
</itemize>
<p>

I (mhi) am working on VxFS r/o filesystem driver for Linux. It is not 
usable yet, but you can mail <htmlurl url="mailto:mhi@penguin.cz" name="me">
to get more information.

<sect1> XFS - Extended filesystem (IRIX)<label id="xfs"><p>


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 
<ref id="journal" name="journaling">
technology for fast, reliable recovery. File systems can be backed up while
still in use, significantly reducing administrative overhead.<p>

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. <p>

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. <P>

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. <P>

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.<P>

Useful XFS links:
<itemize>
 <item> <url url="http://www.sgi.com/Technology/xfs-whitepaper.html">
        XFS whitepaper
</itemize>


XFS Linux port covered by the GNU General Public License is available from
SGI Inc.:
<label id="xfs_linux"><p>
<itemize>
 <item> Homepage: <url url="http://oss.sgi.com/"> ?
 <item> Download: ?
 <item> Author: SGI Inc., <url url="http://www.sgi.com/">
 <item> License: GPL
 <item> Access: Read-write
</itemize>

<sect1> Xia FS<label id="xia"><p>
This filesystem was developed to replace old Minix filesystem in Linux. Author
of this fs is Franx Xia &lt;<htmlurl url="mailto:qx@math.columbia.edu"
name="qx@math.columbia.edu">&gt;

<sect>Appendix<p>

<sect1>Network filesystems<p>
This HOWTO is not about Network filesystems, but I should mention them.<p>

There is a brief list of some which I know:

<sect2> AFS - Andrew Filesystem<p>

<sect2> CODA <p>

<sect2> NFS - Network filesystem (Unix)<p>

<sect2> NCP - NetWare Core Protocol (Novell NetWare)<p>

<sect2> SMB - Session Message Block (Windows 3.x/9x/NT)<p>

<sect1>Encrypted filesystems<p>

<sect2>CFS<p>
<label id="cfs"><p>
<itemize>
 <item> Homepage: ?
 <item> Download: ?
 <item> Author: Matt Blaze &lt;<htmlurl url="mailto:mab@research.att.com"
        name="mab@research.att.com">&gt;.
 <item> License: ?
 <item> Access: Read/Write, using DES/3DES.
</itemize>
CFS pushes encryption services into the Unix(tm) file system.  It
supports secure storage at the system level through a standard Unix
file system interface to encrypted files.  Users associate a
cryptographic key with the directories they wish to protect.  Files in
these directories (as well as their pathname components) are
transparently encrypted and decrypted with the specified key without
further user intervention; cleartext is never stored on a disk or sent
to a remote file server.  CFS employs a novel combination of DES
stream and codebook cipher modes to provide high security with good
performance on a modern workstation.  CFS can use any available file
system for its underlying storage without modification, including
remote file servers such as NFS.  System management functions, such as
file backup, work in a normal manner and without knowledge of the key.<p>

<sect2>TCFS<p>
<label id="tcfs"><p>
<itemize>
 <item> Homepage: ?
 <item> Download: ?
 <item> Author: ?
 <item> License: ?
 <item> Access: ?
</itemize>
?

<sect1>Writing your own filesystem driver<p>

<sect2>DOS<p>
I haven't see yet any good page about writing DOS filesystem drivers
(Network redirectors) on the net. The best source is Ralf Brown's interrupt
list and <ref id="ihpfs" name="iHPFS"> source code.

<sect2>OS/2<p>
<itemize>
 <item><url url="ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/doc/ifsinf.zip">
 <item><url url="ftp://hobbes.nmsu.edu/pub/os2/system/drivers/filesys/32drv170.zip">
       - 32 bits OS/2 device driver and IFS support. Provides 32 bits kernel  
         services (DevHelp) and utility functions to 32 bits OS/2 ring 0 code
         (device drivers and installable file system drivers).

</itemize>

<sect2>Windows NT<p>
For more information about writing FS drivers for Windows NT see
<url url="http://www.ing.umu.se/~bosse/"> by
&lt;<htmlurl url="mailto:bosse@acc.umu.se" name="bosse@acc.umu.se">&gt;.

<sect1>Related documents<p>

<itemize>
 <item> <url url="http://www.honeycomb.net/os/holistic/connect/filesys.htm">
        - good page about filesystems
 <item> <url url="http://home.att.net/~artnaseef/"> - Linux overlay
        filesystem by &lt;<htmlurl url="mailto:artnaseef@worldnet.att.net"
        name="artnaseef@worldnet.att.net">&gt;.
 <item> <url url="http://www.braysystems.com/linux/trustees.html">
        - Linux trustees
 <item> <url url="http://tcfs.dia.unisa.it"> - Transparent Cryptography
        Filesystem
 <item> <url url="http://www.sas.com/standards/large.file"> - Large file summit
        - attacks the problem of 2gig+ of file in a 32bit computer
 <item> <url url="http://www.coda.cs.cmu.edu/"> - The CODA project
        (a distributed file system based on AFS)
 <item> <url url="ftp://ftp.scis.org/pub/lfs/"> - LFS related papers
 <item> <url url="http://www.redhat.com:8080/HyperNews/get/khg.html"> - Linux
        Kernel Hacker's guide
 <item> <url url="http://www.win.tue.nl/~aeb/linux/largedisk.html">
        - Large disk HOWTO
 <item> <url url="http://www.atnf.csiro.au/~rgooch/linux/kernel-patches.html">
        - The Linux devfs
 <item> <url url="http://gfs.lcse.umn.edu/"> - The Global File System (GFS)
 <item> <url url="ftp://hobbes.nmsu.edu/pub/os2/system/drivers/filesys/tvfs211.zip"> - The Toronto Virtual Filesystem/2.
 <item> <url url="ftp://hobbes.nmsu.edu/pub/os2/system/drivers/filesys/ramfs64.zip"> Dynamic RAM drive IFS driver for OS/2
 <item> <url url="http://doc.sco.com/">
        - UnixWare and SCO Unix documentation online
 <item> <url url="http://uw7doc.sco.com/">
        - UnixWare 7 documentation online
 <item> <url url="http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/SG244428/CCONTENTS">
        - Inside OS/2 LAN Server 4.0
 <item> <url url="ftp://tsx-11.mit.edu/pub/linux/ALPHA/userfs/">
        - Linux UserFS, it allows you to write a Linux process which implements
        a filesystem.
</itemize>

</article>

