Filesystems HOWTO ではファイルシステムの説明といろいろな OS からこれら のファイルシステムにアクセスする方法を説明を行います.この文書には筆者 が知っていることを全て詰め込んでありますが,もしかすると間違いがあるか もしれません.間違いや 古い部分があれば筆者にお知らせください.できるかぎり最新の内容を保ち, 間違いもないようにしようと思っています.情報提供も歓迎なので, ファイルシステムについて書きたいことをお持ちであれば,ぜひ筆者にメール をください.
この HOWTO を読む前には Stein Gjoen の Disk-HOWTO ( http://sunsite.unc.edu/LDP/HOWTO/ から入手 できます)を読んでおくことをお勧めします.
この HOWTO は http://penguin.cz/~mhi/fs/ または http://metalab.unc.edu/filesystems/howto/ から入手できます.
The Filesystems HOWTO, Copyright (c) 1999 Martin Hinner < mhi@penguin.cz>.
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.
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.
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.
Filesystems メーリングリストに参加するのはいい考えだと思います. このメーリングリストの目的は一般ユーザと開発者の両方によい情報を提供 することです.したがって,ファイルシステムに何らかの関係がある人は参加しま しょう :-) メーリングリストに参加するには本文(サブジェクトで はありません)に(引用記号なしで) "subscribe fs-l" とだけ書いた メールを < majordomo@penguin.cz> 宛に送ってください.
Linux カーネルファイルシステムメーリングリスト
linux-fsdevel@vger.rutgers.edu
に参加するには,
listserv@vger.rutgers.edu
宛にメールを出してください.
メール本文には "subscribe linux-fsdev"
と書きます.
FreeBSD のファイルシステムの技術的メーリングリスト
freebsd-fs@FreeBSD.org
に参加するには,
majordomo@FreeBSD.org
宛にメールを出してください.
メール本文には "subscribe freebsd-fs"
と書きます.
ファイルシステムコレクションはファイルシステムやファイルシステム関連の プログラムやドライバに関する役立つ情報を提供している FTP/WWW サイトで す.このコレクションは http://metalab.unc.edu/filesystems/ にあります.FTP 専用のサイトも ftp://metalab.unc.edu/pub/docs/filesystems/ にあります.
元々の "Filesystems access HOWTO" は Georgatos Photis が書きました(彼 のホームページ http://students.ceid.upatras.gr/~gef/ も見 てください).この HOWTO には彼のホームページに書かれている情報がたくさ ん載っています.Georgatos に感謝します.
この HOWTO に協力してくれた方々と筆者を(直接的,間接的に)助けてくれた 方々をアルファベット順に紹介します:
これはファイルシステムのアクセス方法の「一覧」で,OS をアルファベット順に 並べています.このリストは多少ごちゃごちゃして見えるかもしれません. これは Linux の sgmltools では表を書けないからです.
見ての通り,まだこの「一覧」は完全ではありません. 近いうちに完成させようと思っています.
FreeBSD: BSD FFS | ext2 | HPFS | NTFS
Linux: AFFS| BeFS| BFS| ext2 FS| BSD FFS| HPFS| Qnx4 FS| Xia
NetBSD: BSD FFS | FAT12/16 | ISO9660
NetWare 2.x: NWFS-286
NetWare 3.x, 4.x: NWFS-386 | ISO9660
NetWare 5.x: NWFS-386 | NSS | ISO9660
OS/2: ext2 FS | FAT12/16/32 | HPFS | HPFS | ISO 9660 | JFS | VFAT
QNX 4: FAT12/16 | ISO 9660 | Qnx4 FS
SCO OpenServer: AFS| DTFS| EAFS| HTFS| ISO 9660 | S51K
SCO UnixWare: BFS| DTFS| ISO 9660 | System V| VxFS
領域を連続的に割り当てるファイルシステムがいくつかあります. BFS, ISO9660 とこれを拡張したファイルシステム.
FAT ベースのファイルシステムがいくつかあります: FAT12/16/32, VFAT と NetWare ファイルシステム.
いくつかの 'extent' ファイルシステムがあります: EFS および VxFS.
B+ツリーを使ったファイルシステムもいくつかあります: HFS, NSS, Reiser FS, Spiralog ファイルシステム.
普通のファイルシステムの構成情報(メタデータと呼ばれる)の更新は 同期書き込みを使って行われます.メタデータのそれぞれの更新にはたくさん の書き込みが別々に必要となることがあるので,もし書き込みシーケンスの途 中でシステムがクラッシュすると,メタデータが矛盾した状態になるかもしれ ません.
次回のシステム起動時には,ファイルシステム検査ユーティリティ(fsck と呼 ばれます)はメタデータの構成を全て調べ,ファイルシステムの検査と修復を 行います. 大きなファイルシステムだとこの操作にはこの上なく時間がかかります. また,ディスクが構成を修復するのに十分な情報を持っていないこともありま す.するとファイルの位置が変わったり消えたりしてしまいます.
ジャーナリングファイルシステムでは,ログまたはジャーナルと呼ばれる領域 を別に用意します.メタデータの変更が実際に行われる前に,先にこの別領域 に変更が記録されます.メタデータの変更はその後に行われます.もし操作の 途中にシステムがクラッシュしても,ログにはログの記録を「再生」するのに 十分な情報が残っており,操作を完全に行うことができます.
このアプローチを取ればファイルシステム全体をスキャンする必要はなくなる ので,大きなファイルシステムではファイルシステムの検査がごく短時間で済 むようになります―― 一般的には数ギガバイトのファイルシステムでも数秒 程度です.さらに,途中で止まっている操作についての情報が全て記録さ れるため,ファイルが消えることや lost+found ディレクトリに移動すること もありません.ジャーナリングファイルシステムの短所は,他のファイルシス テムよりも動作が遅いことです.
ジャーナリングファイルシステムはいくつかあります: BeFS, HTFS, JFS, NSS, Spiralog ファイルシステム, VxFS, XFS.