352 lines
14 KiB
HTML
352 lines
14 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||
|
<HTML>
|
||
|
<HEAD>
|
||
|
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
|
||
|
<TITLE>Filesystems HOWTO: Introduction</TITLE>
|
||
|
<LINK HREF="Filesystems-HOWTO-2.html" REL=next>
|
||
|
|
||
|
<LINK HREF="Filesystems-HOWTO.html#toc1" REL=contents>
|
||
|
</HEAD>
|
||
|
<BODY>
|
||
|
<A HREF="Filesystems-HOWTO-2.html">Next</A>
|
||
|
Previous
|
||
|
<A HREF="Filesystems-HOWTO.html#toc1">Contents</A>
|
||
|
<HR>
|
||
|
<H2><A NAME="s1">1.</A> <A HREF="Filesystems-HOWTO.html#toc1">Introduction</A></H2>
|
||
|
|
||
|
|
||
|
<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>
|
||
|
<P>Update: Please note that this HOWTO wasn't updated for more than 5 years and
|
||
|
it DOES contain some out of date information. I will try to find some time to
|
||
|
set-up WIKI site for filesystems related information so as anybody can
|
||
|
contribute. For more information see next chapter.</P>
|
||
|
|
||
|
<P>Before you read this HOWTO it's recommended to read
|
||
|
<A HREF="mailto:sgjoen@nyx.net">Stein Gjoen's</A>
|
||
|
Disk-HOWTO (you can obtain it from
|
||
|
<A HREF="http://sunsite.unc.edu/LDP/HOWTO/">http://sunsite.unc.edu/LDP/HOWTO/</A>
|
||
|
). </P>
|
||
|
|
||
|
<P>This HOWTO can be obtained from
|
||
|
<A HREF="http://martin.hinner.info/fs/">http://martin.hinner.info/fs/</A> or
|
||
|
<A HREF="http://metalab.unc.edu/filesystems/howto/">http://metalab.unc.edu/filesystems/howto/</A>.</P>
|
||
|
|
||
|
<P>If you are Japanese user, you might be interested that
|
||
|
<A HREF="mailto:fujiwara@linux.or.jp">FUJIWARA Teruyoshi</A>
|
||
|
translated this HOWTO to Japanese.
|
||
|
It is available at
|
||
|
<A HREF="http://www.linux.or.jp/JF/JFdocs/Filesystems-HOWTO.html">http://www.linux.or.jp/JF/JFdocs/Filesystems-HOWTO.html</A>.
|
||
|
SGML source file can be downloaded from
|
||
|
<A HREF="ftp://ftp.linet.gr.jp/pub/JF/sgml/Filesystems-HOWTO.sgml.gz">ftp://ftp.linet.gr.jp/pub/JF/sgml/Filesystems-HOWTO.sgml.gz</A>.</P>
|
||
|
|
||
|
|
||
|
|
||
|
<H2><A NAME="ss1.1">1.1</A> <A HREF="Filesystems-HOWTO.html#toc1.1">Contacting the author</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>You can contact me at martin@hinner.info. I welcome any suggestions and corrections,
|
||
|
but please before you ask a question, try searching the internet first. You should
|
||
|
also check my homepage (
|
||
|
<A HREF="http://martin.hinner.info/">http://martin.hinner.info/</A>) for any updates or additional information.
|
||
|
Please note that I am very busy with my other projects (like
|
||
|
<A HREF="http://www.auto-diagnostics.info">automotive diagnostics</A>,
|
||
|
<A HREF="http://www.arm-development.com">ARM-based microprocessors development tools</A>)
|
||
|
and I have a full time job (I am working for
|
||
|
<A HREF="http://www.secons.com">SECONS Ltd.</A> and
|
||
|
<A HREF="http://www.fintera.com/">Fintera Ltd.</A>), so my time to answer e-mails is very limited.</P>
|
||
|
|
||
|
<H2><A NAME="ss1.2">1.2</A> <A HREF="Filesystems-HOWTO.html#toc1.2">HOWTO Maintenance</A>
|
||
|
</H2>
|
||
|
|
||
|
|
||
|
<P>If you want to contribute to this HOWTO or take over the maintenance, please
|
||
|
look at author's website (
|
||
|
<A HREF="http://martin.hinner.info/">http://martin.hinner.info/</A>) and
|
||
|
contact him.</P>
|
||
|
|
||
|
<P>I will also try to set-up a wiki-style website for filesystems related information so as anyone can contribute
|
||
|
and this website will be later merged with this HOWTO. All of these activities depend on my free time.</P>
|
||
|
|
||
|
|
||
|
|
||
|
<H2><A NAME="ss1.3">1.3</A> <A HREF="Filesystems-HOWTO.html#toc1.3">Copyright</A>
|
||
|
</H2>
|
||
|
|
||
|
|
||
|
<P><B>The Filesystems HOWTO, Copyright (c) 1999-2000 Martin Hinner
|
||
|
<
|
||
|
<A HREF="mailto:martin@hinner.info">martin@hinner.info</A>>.</B></P>
|
||
|
<P>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>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
<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>
|
||
|
|
||
|
|
||
|
|
||
|
<H2><A NAME="ss1.4">1.4</A> <A HREF="Filesystems-HOWTO.html#toc1.4">Filesystems mailing-list</A>
|
||
|
</H2>
|
||
|
|
||
|
<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
|
||
|
<
|
||
|
<A HREF="mailto:majordomo@penguin.cz">majordomo@penguin.cz</A>>
|
||
|
and in the BODY (not the subject) of the email message put (without quotes):
|
||
|
"<B>subscribe fs-l</B>".</P>
|
||
|
|
||
|
|
||
|
<H3>Linux kernel filesystems mailing-list</H3>
|
||
|
|
||
|
<P>To join Linux kernel filesystems mailing list
|
||
|
<A HREF="mailto:linux-fsdev@vger.rutgers.edu">linux-fsdev@vger.rutgers.edu</A>,
|
||
|
send e-mail to
|
||
|
<A HREF="mailto:listserv@vger.rutgers.edu">listserv@vger.rutgers.edu</A>. Put <CODE>"subscribe linux-fsdev"</CODE>
|
||
|
in message body.</P>
|
||
|
|
||
|
|
||
|
<H3>FreeBSD filesystems mailing-list</H3>
|
||
|
|
||
|
<P>To join techical FreeBSD filesystems mailing list
|
||
|
<A HREF="mailto:freebsd-fs@FreeBSD.org">freebsd-fs@FreeBSD.org</A>,
|
||
|
send e-mail to
|
||
|
<A HREF="mailto:majordomo@FreeBSD.org">majordomo@FreeBSD.org</A>. Put
|
||
|
<CODE>"subscribe freebsd-fs"</CODE> in message body.</P>
|
||
|
|
||
|
|
||
|
|
||
|
<H2><A NAME="ss1.5">1.5</A> <A HREF="Filesystems-HOWTO.html#toc1.5">Filesystems collection at metalab.unc.edu</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>Filesystems collection is FTP/WWW site providing useful information about
|
||
|
filesystems and filesystem-related programs and drivers. It lives at
|
||
|
<A HREF="http://metalab.unc.edu/filesystems/">http://metalab.unc.edu/filesystems/</A>, or FTP-only at
|
||
|
<A HREF="ftp://metalab.unc.edu/pub/docs/filesystems/">ftp://metalab.unc.edu/pub/docs/filesystems/</A>.</P>
|
||
|
|
||
|
|
||
|
<H2><A NAME="ss1.6">1.6</A> <A HREF="Filesystems-HOWTO.html#toc1.6">Credits</A>
|
||
|
</H2>
|
||
|
|
||
|
|
||
|
<P>The original "Filesystems access HOWTO" was written by Georgatos Photis
|
||
|
(see his homepage at
|
||
|
<A HREF="http://students.ceid.upatras.gr/~gef/">http://students.ceid.upatras.gr/~gef/</A>).
|
||
|
This HOWTO contains a lot of information from his webpage. Thanks, Gef.</P>
|
||
|
|
||
|
<P>FUJIWARA Teruyoshi <fujiwara@linux.or.jp> translated this HOWTO
|
||
|
to Japanese.</P>
|
||
|
|
||
|
<P>Other people who have contributed or helped me (directly or indirectly)
|
||
|
with this HOWTO are, in alphabetical order:
|
||
|
<UL>
|
||
|
<LI> Mariusz Borkowski <borkowsm@ii.pw.edu.pl> - ISO9660/RR info</LI>
|
||
|
<LI> Remy Card <card@masi.ibp.fr> - Ext2 filesystem introduction</LI>
|
||
|
<LI> Peter A. Dinda <pdinda@cs.cmu.edu> - HFS filesystem description</LI>
|
||
|
<LI> Alfonso De Gregorio <adg@speedcom.it> - TCFS filesystem info</LI>
|
||
|
<LI> Radek Machacka <radekm@sco.com> - Thanks for SCO UnixWare
|
||
|
and SCO OpenServer</LI>
|
||
|
<LI> Andrey Shedel <andreys@cr.cyco.com> - Misc. updates</LI>
|
||
|
<LI> Peter Todd <retep2@home.com> - SFS filesystem info</LI>
|
||
|
<LI> Theodore Ts'o <tytso@mit.edu> - Ext2 filesystem introduction</LI>
|
||
|
<LI> Stephen Tweedie <sct@dcs.ed.ac.uk> - Ext2 filesystem introduction</LI>
|
||
|
</UL>
|
||
|
|
||
|
Many thanks to the above people. If I have forgotten anyone, please let me know.</P>
|
||
|
|
||
|
|
||
|
<H2><A NAME="ss1.7">1.7</A> <A HREF="Filesystems-HOWTO.html#toc1.7">Filesystems accessibility map</A>
|
||
|
</H2>
|
||
|
|
||
|
<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>
|
||
|
<P><B>YOU SEE THAT THIS `MAP' IS NOT STILL COMPLETE.
|
||
|
I WILL TRY TO FINISH IT IN THE NEAR FUTURE.</B></P>
|
||
|
|
||
|
<P><B>FreeBSD:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#ffs">BSD FFS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-6.html#ext2">Ext2</A> |
|
||
|
<A HREF="Filesystems-HOWTO-4.html#hpfs_freebsd">HPFS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-5.html#ntfs_freebsd">NTFS</A></P>
|
||
|
|
||
|
<P><B>Linux:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#affs">AFFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#befs_linux">BeFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#bfs_linux">BFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-6.html#ext2">Ext2 FS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#ffs">BSD FFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-4.html#hpfs_linux">HPFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#qnx4">Qnx4 FS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#xia">Xia</A></P>
|
||
|
|
||
|
<P><B>NetBSD:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#ffs">BSD FFS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-3.html#fat">FAT12/16</A> |
|
||
|
<A HREF="Filesystems-HOWTO-8.html#iso9660">ISO9660</A></P>
|
||
|
|
||
|
<P><B>NetWare 2.x:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#nwfs286">NWFS-286</A></P>
|
||
|
|
||
|
<P><B>NetWare 3.x, 4.x:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#nwfs386">NWFS-386</A> |
|
||
|
<A HREF="Filesystems-HOWTO-8.html#iso9660">ISO9660</A></P>
|
||
|
|
||
|
<P><B>NetWare 5.x:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#nwfs386">NWFS-386</A> |
|
||
|
<A HREF="Filesystems-HOWTO-9.html#nss">NSS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-8.html#iso9660">ISO9660</A></P>
|
||
|
|
||
|
<P><B>OpenBSD:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#ffs">BSD FFS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-3.html#fat">FAT12/16</A></P>
|
||
|
|
||
|
<P><B>OS/2:</B>
|
||
|
<A HREF="Filesystems-HOWTO-6.html#ext2_os2">Ext2 FS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-3.html#fat">FAT12/16/32</A> |
|
||
|
<A HREF="Filesystems-HOWTO-4.html#hpfs">HPFS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-4.html#hpfs">HPFS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-8.html#iso9660">ISO 9660</A> |
|
||
|
<A HREF="Filesystems-HOWTO-9.html#jfs">JFS</A> |
|
||
|
<A HREF="Filesystems-HOWTO-3.html#vfat">VFAT</A></P>
|
||
|
|
||
|
<P><B>QNX 4:</B>
|
||
|
<A HREF="Filesystems-HOWTO-3.html#fat">FAT12/16</A> |
|
||
|
<A HREF="Filesystems-HOWTO-8.html#iso9660">ISO 9660</A> |
|
||
|
<A HREF="Filesystems-HOWTO-9.html#qnx4">Qnx4 FS</A></P>
|
||
|
|
||
|
<P><B>SCO OpenServer:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#afs">AFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#dtfs">DTFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#eafs">EAFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#htfs">HTFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-8.html#iso9660">ISO 9660</A> |
|
||
|
<A HREF="Filesystems-HOWTO-9.html#s51k">S51K</A></P>
|
||
|
|
||
|
<P><B>SCO UnixWare:</B>
|
||
|
<A HREF="Filesystems-HOWTO-9.html#bfs">BFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#dtfs">DTFS</A>|
|
||
|
<A HREF="Filesystems-HOWTO-8.html#iso9660">ISO 9660</A> |
|
||
|
<A HREF="Filesystems-HOWTO-9.html#s5">System V</A>|
|
||
|
<A HREF="Filesystems-HOWTO-9.html#vxfs">VxFS</A></P>
|
||
|
|
||
|
|
||
|
<H2><A NAME="contiguous"></A> <A NAME="ss1.8">1.8</A> <A HREF="Filesystems-HOWTO.html#toc1.8">Introduction to contiguous allocation filesystems</A>
|
||
|
</H2>
|
||
|
|
||
|
|
||
|
|
||
|
<P>Some contiguous filesystems:
|
||
|
<A HREF="Filesystems-HOWTO-9.html#bfs">BFS</A>,
|
||
|
<A HREF="Filesystems-HOWTO-8.html#iso9660">ISO9660 and extensions</A>.</P>
|
||
|
|
||
|
<H2><A NAME="ss1.9">1.9</A> <A HREF="Filesystems-HOWTO.html#toc1.9">Introduction to linked-list allocation filesystems</A>
|
||
|
</H2>
|
||
|
|
||
|
|
||
|
|
||
|
<H2><A NAME="ss1.10">1.10</A> <A HREF="Filesystems-HOWTO.html#toc1.10">Introduction to FAT-based filesystems</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>(todo)</P>
|
||
|
<P>Some FAT filesystems:
|
||
|
<A HREF="Filesystems-HOWTO-3.html#fat">FAT12/16/32, VFAT</A> and
|
||
|
<A HREF="Filesystems-HOWTO-9.html#nwfs">NetWare filestem</A>.</P>
|
||
|
|
||
|
<H2><A NAME="ss1.11">1.11</A> <A HREF="Filesystems-HOWTO.html#toc1.11">Introduction to Inode filesystems</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>(todo)</P>
|
||
|
|
||
|
<H2><A NAME="ss1.12">1.12</A> <A HREF="Filesystems-HOWTO.html#toc1.12">Introduction to extent filesystems</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>(todo)</P>
|
||
|
<P>Some 'extent' filesystems:
|
||
|
<A HREF="Filesystems-HOWTO-9.html#efs">EFS</A> and
|
||
|
<A HREF="Filesystems-HOWTO-9.html#vxfs">VxFS</A>.</P>
|
||
|
|
||
|
<H2><A NAME="btree"></A> <A NAME="ss1.13">1.13</A> <A HREF="Filesystems-HOWTO.html#toc1.13">Introduction to filesystems using balanced trees</A>
|
||
|
</H2>
|
||
|
|
||
|
<P>(todo)</P>
|
||
|
<P>Some filesystems which use B+ trees:
|
||
|
<A HREF="Filesystems-HOWTO-7.html#hfs">HFS</A>,
|
||
|
<A HREF="Filesystems-HOWTO-9.html#nss">NSS</A>,
|
||
|
<A HREF="Filesystems-HOWTO-9.html#reiserfs">Reiser FS</A> and
|
||
|
<A HREF="Filesystems-HOWTO-9.html#spiralog">Spiralog filesystem</A>.</P>
|
||
|
|
||
|
<H2><A NAME="journal"></A> <A NAME="ss1.14">1.14</A> <A HREF="Filesystems-HOWTO.html#toc1.14">Introduction to logging/journaling filesystems</A>
|
||
|
</H2>
|
||
|
|
||
|
|
||
|
<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.</P>
|
||
|
<P>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>
|
||
|
|
||
|
<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.</P>
|
||
|
<P>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>
|
||
|
|
||
|
<P>Some journaling filesystems:
|
||
|
<A HREF="Filesystems-HOWTO-9.html#befs">BeFS</A>,
|
||
|
<A HREF="Filesystems-HOWTO-9.html#htfs">HTFS</A>,
|
||
|
<A HREF="Filesystems-HOWTO-9.html#jfs">JFS</A>,
|
||
|
<A HREF="Filesystems-HOWTO-9.html#nss">NSS</A>,
|
||
|
<A HREF="Filesystems-HOWTO-9.html#spiralog">Spiralog filesystem</A>,
|
||
|
<A HREF="Filesystems-HOWTO-9.html#vxfs">VxFS</A> and
|
||
|
<A HREF="Filesystems-HOWTO-9.html#xfs">XFS</A>.</P>
|
||
|
|
||
|
<H2><A NAME="other_features"></A> <A NAME="ss1.15">1.15</A> <A HREF="Filesystems-HOWTO.html#toc1.15">Other filesystem features</A>
|
||
|
</H2>
|
||
|
|
||
|
|
||
|
|
||
|
<H3><A NAME="quota"></A> Quota</H3>
|
||
|
|
||
|
|
||
|
|
||
|
<H3><A NAME="snapshot"></A> Snapshot</H3>
|
||
|
|
||
|
|
||
|
|
||
|
<H3><A NAME="acl"></A> ACLs</H3>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<HR>
|
||
|
<A HREF="Filesystems-HOWTO-2.html">Next</A>
|
||
|
Previous
|
||
|
<A HREF="Filesystems-HOWTO.html#toc1">Contents</A>
|
||
|
</BODY>
|
||
|
</HTML>
|