Filesystems HOWTO Martin Hinner Version 0.7.5, 22 August 2000 The Linux JF Project Version 0.7.5j, 17 September 2000 この短い HOWTO 文書ではファイルシステムとファイルシステムへのアクセス 方法を説明します.あなたの期待とはたぶん違って,本書は Linux や UNIX 関連の文書ではありません.この文書中には UNIX 以外の(ファイル)システム についての興味深い情報もたくさんあります.ただし,筆者がいちばん興味が あるのは UNIX です :-) ______________________________________________________________________ 目次 1. はじめに 1.1 Copyright 1.2 Filesystems メーリングリスト 1.2.1 Linux カーネルファイルシステムメーリングリスト 1.2.2 FreeBSD ファイルシステムメーリングリスト 1.3 metalab.unc.edu のファイルシステムコレクション 1.4 クレジット 1.5 ファイルシステムのアクセス方法の一覧 1.6 連続的な割り当てを行うファイルシステム(contiguous allocation)の紹介 1.7 リンクリストを使った割り当てを行うファイルシステムの紹介 1.8 FAT ベースのファイルシステムの紹介 1.9 i-ノードを使うファイルシステムの紹介 1.10 extent ファイルシステムの紹介 1.11 B+ツリーを使ったファイルシステムの紹介 1.12 ロギングファイルシステム/ジャーナルファイルシステムの紹介 1.13 ファイルシステムのその他の機能 1.13.1 quota 1.13.2 snapshot 1.13.3 ACL 2. ボリューム 2.1 PC パーティション 2.1.1 GNU parted 2.1.2 壊れたパーティションテーブルの修復 2.1.2.1 Fixdisktable 2.1.2.2 gpart 2.1.2.3 rescuept 2.1.2.4 findsuper 2.2 その他のパーティション 2.2.1 ADFS のパーティション 2.2.2 Amiga のパーティション 2.2.3 ATARI のパーティション 2.2.4 Macintosh のパーティション 2.2.5 OSF のパーティション 2.2.6 Sun のパーティション 2.2.7 Ultrix のパーティション 2.3 Unix のディスクラベル 2.3.1 BSD ディスクラベル 2.3.2 UnixWare のディスクラベル 2.3.3 SCO OpenServer のディスクラベル 2.3.4 Sun Solaris のディスクラベル 2.4 Windows NT のボリューム 2.4.1 「フォールトトレラント」な NTFS の修復と FTEdit の利用 2.5 MD - Linux 用の複数デバイスドライバ 2.6 LVM - 論理ボリュームマネージャ (HP-UX の LVM?) 2.7 VxVM - Veritas ボリュームマネージャ 2.8 IBM OS/2 LVM 2.9 StackVM 2.10 Novell NetWare ボリューム 3. DOS FAT 12/16/32, VFAT 3.1 VFAT: ロングファイルネーム 3.2 UMSDOS: Linux で FAT ファイルシステムに LFN/属性を持たせる 3.3 OS/2 における FAT ファイルシステムの拡張属性 3.4 Star LFN 3.5 OS/2 から VFAT にアクセスする方法(VFAT-OS2) 3.6 DOS から VFAT にアクセスする方法 (LFNDOS ドライバ) 3.7 DOS から VFAT にアクセスする方法 (Free LFNDOS ドライバ) 3.8 DOS から VFAT にアクセスする方法 (Odi の LFN ツール) 3.9 OS/2 から FAT32 にアクセスする方法 (FAT32.IFS) 3.10 Windows NT 4.0 から FAT32 にアクセスする方法 3.11 Windows NT 4.0 から FAT32 にアクセスする方法 3.12 Stac/Dblspace/Drvspace されたドライブに Linux からアクセスする方法 (DMSDOS) 3.13 Linux から dblspace/drvspace されたドライブにアクセスする方法(thsfs) 3.14 Fsresize - FAT16/32 のサイズ変更ツール 3.15 FIPS - FAT16 のサイズ変更ツール 4. High Performance FileSystem (HPFS) 4.1 DOS から HPFS にアクセスする方法 (iHPFS) 4.2 DOS から HPFS にアクセスする方法(hpfsdos) 4.3 DOS から HPFS にアクセスする方法 4.4 DOS から HPFS にアクセスする方法 (amos) 4.5 Linux から HPFS にアクセスする方法 4.6 FreeBSD から HPFS にアクセスする方法 4.7 Windows NT 3.5 から HPFS にアクセスする方法 4.8 Windows NT 4 から HPFS にアクセスする方法 5. New Technology FileSystem (NTFS) 5.1 DOS から NTFS にアクセスする方法 (NTFSDOS.EXE) 5.2 DOS から NTFS にアクセスする方法 (ntpwd) 5.3 OS/2 から NTFS にアクセスする方法 5.4 Linux から NTFS にアクセスする方法 5.5 FreeBSD, NetBSD から NTFS にアクセスする方法 5.6 BeOS から NTFS にアクセスする方法 5.7 BeOS から NTFS にアクセスする方法 (別のもの) 5.8 NTFSDOS ツールを使った NTFS の修復 5.9 NTRecover を使った NTFS の修復 6. Extended ファイルシステム (ext, ext2, ext3) 6.1 Extended ファイルシステム (extfs) 6.2 Second Extended ファイルシステム (ext2 fs) 6.2.1 開発の動機 6.2.2 ext2fs の「標準」機能 6.2.3 ext2fs の「先進的な」機能 6.2.4 物理的な構造 6.2.5 性能の最適化 6.3 Third Extended Filesystem (Ext3 FS) 6.4 E2compr - ext2fs における透過的な圧縮 6.5 DOS から ext2 にアクセスする方法(ext2 tools) 6.6 DOS, Windows 9x/NT, 他の UNIX から ext2 にアクセスする方法 (LTools) 6.7 OS/2 から ext2 にアクセスする方法 6.8 Windows 95/98 から ext2 にアクセスする方法(FSDEXT2) 6.9 Windows 95 から ext2 にアクセスする方法(Explore2fs) 6.10 Windows NT から ext2 にアクセスする方法 (ext2fsnt) 6.11 BeOS から ext2 にアクセスする方法 6.12 MacOS から ext2 にアクセスする方法(MountX) 6.13 MiNT から ext2 にアクセスする方法 6.14 ext2fs のデフラグ 6.15 ext2fs のサイズ変更 6.16 Ext2end 6.17 E2fsprogs を使った ext2 の修復/解析/作成 6.18 ext2 ファイルシステムエディタ - Ext2ed 6.19 Linux ファイルシステムエディタ - lde 6.20 ext2 用の削除取り消しユーティリティ 7. Macintosh Hierarchical Filesystem - HFS 7.1 Linux から HFS にアクセスする方法 7.2 OS/2 から HFS にアクセスする方法 (HFS/2) 7.3 Windows 95/98/NT から HFS にアクセスする方法(HFV Explorer) 7.4 DOS から HFS にアクセスする方法 (MAC-ETTE) 7.5 HFS utils 7.6 MacFS: 移植性の高い Macintosh ファイルシステムライブラリ 8. ISO 9660 - CD-ROM ファイルシステム 8.1 RockRidge 拡張 8.2 Joliet 拡張 8.3 ハイブリッド CD-ROM 8.4 ISO9660 上に Novell NetWare のインデックスを持たせたもの 8.5 Linux から Joliet にアクセスする方法 8.6 BeOS から Joliet にアクセスする方法 8.7 OS/2 から Joliet にアクセスする方法 8.8 Linux でオーディオ CD をファイルシステムとして扱う方法 8.9 BeOS でオーディオ CD をファイルシステムとして扱う方法 8.10 Linux から全てのトラックにアクセスする方法 (CDfs) 8.11 ハイブリッド CD-ROM の作成(mkhybrid) 9. 他のファイルシステム 9.1 ADFS - Acorn Disc ファイルシステム 9.2 AFFS - Amiga 高速ファイルシステム 9.3 BeFS - BeOS のファイルシステム 9.4 BFS - UnixWare の起動ファイルシステム 9.5 CBM FS - Commodore 1581/1541 のファイルシステム 9.6 CrosStor ファイルシステム 9.7 DTFS - Desktop ファイルシステム 9.8 EFS - Enhanced ファイルシステム (Linux) 9.9 EFS - Extent filesystem (IRIX) 9.9.1 EFS と FFS のためのライブラリ,libfs 9.10 FFS - BSD Fast filesystem 9.11 GPFS - General Parallel Filesystem 9.12 HFS - HP-UX Hi performance filesystem 9.13 HTFS - High throughput filesystem 9.14 JFS - ジャーナルファイルシステム (HP-UX, AIX, OS/2 5, Linux) 9.15 LIF - 論理交換フォーマット (HP-UX) 9.16 LFS - Linux ログ構造化ファイルシステム 9.17 MFS - Macintosh filesystem 9.18 Minix ファイルシステム 9.19 NWFS - Novell NetWare filesystem 9.19.1 NetWare filesystem / 286 9.19.2 NetWare filesystem / 386 9.19.3 Linux から NWFS-386 にアクセスする方法 9.20 NSS - Novell Storage Services 9.21 ODS - On Disk Structure filesystem 9.22 QNX filesystem 9.23 Reiser ファイルシステム 9.24 RFS (CD-ROM 用ファイルシステム) 9.25 RomFS - Rom filesystem 9.26 SFS - Secure filesystem 9.27 Spiralog ファイルシステム(OpenVMS) 9.28 System V のファイルシステムと System V 由来のファイルシステム 9.28.1 AFS - Acer Fast Filesystem 9.28.2 EAFS - Extended Acer Fast Filesystem 9.28.3 Coherent ファイルシステム 9.28.4 S5 9.28.5 S51K - SystemV 1K 9.28.6 Version 7 ファイルシステム 9.28.7 Xenix ファイルシステム 9.29 Text - (Philips の CD-ROM ファイルシステム) 9.30 UDF - Universal Disk Format (DVD-ROM のファイルシステム) 9.31 UFS 9.32 V7 ファイルシステム 9.33 VxFS - Veritas filesystem (HP-UX, SCO UnixWare, Solaris) 9.33.1 VxTools 9.34 XFS - 拡張ファイルシステム (IRIX) 9.35 Xia FS 10. raw パーティション 10.1 DBsnapshot を使った raw パーティションのバックアップ 11. 付録 11.1 ネットワークファイルシステム 11.1.1 AFS - Andrew Filesystem 11.1.2 CODA 11.1.3 NFS - Network filesystem (Unix) 11.1.4 NCP - NetWare Core Protocol (Novell NetWare) 11.1.5 SMB - Session Message Block (Windows 3.x/9x/NT) 11.1.6 Intermezzo 11.2 暗号化ファイルシステム 11.2.1 CFS 11.2.2 TCFS 11.2.3 SFS 11.2.4 VS3FS: Steganographic File System for Linux 11.3 ファイルシステムのベンチマーク用ユーティリティ 11.3.1 IOzone 11.4 自分で独自にファイルシステムのドライバを書く方法 11.4.1 DOS 11.4.2 OS/2 11.4.3 Windows NT 11.5 関連文書 12. 日本語訳について ______________________________________________________________________ 1. はじめに Filesystems HOWTO ではファイルシステムの説明と,いろいろな OS からこれ らのファイルシステムにアクセスする方法を説明します.この文書には筆者が 知っていることを全て詰め込んでありますが,もしかすると間違いがあるかも しれません.間違いや古い部分があれば筆者にお知らせください.できるかぎ り最新の内容を保ち,間違いもないようにしようと思っています.情報提供も 歓迎なので,ファイルシステムについて書きたいことをお持ちであれば,ぜひ 筆者にメールをください. この HOWTO を読む前には Stein Gjoen の Disk-HOWTO ( から入手できます)を読んでおくこと をお勧めします. この HOWTO は または から入手できます. もしあなたが日本人なら,藤原輝嘉が訳した日本語訳を見るといいでしょう. これは にあ ります.SGML のソースは から入手 できます. 1.1. Copyright The Filesystems HOWTO, Copyright (c) 1999 Martin Hinner . 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. 1.2. Filesystems メーリングリスト Filesystems メーリングリストに参加するのはいい考えだと思います.このメ ーリングリストの目的は一般ユーザと開発者の両方によい情報を提供すること です.したがって,ファイルシステムに何らかの関係がある人は参加しましょ う :-) メーリングリストに参加するには本文(サブジェクトではありませ ん)に(引用記号なしで) "subscribe fs-l" とだけ書いたメールを 宛に送ってください. 1.2.1. Linux カーネルファイルシステムメーリングリスト Linux カーネルファイルシステムメーリングリスト linux- fsdevel@vger.rutgers.edu に参加するには, listserv@vger.rutgers.edu 宛 にメールを出してください.メール本文には "subscribe linux-fsdev" と書 きます. 1.2.2. FreeBSD ファイルシステムメーリングリスト FreeBSD のファイルシステムの技術的メーリングリスト freebsd- fs@FreeBSD.org に参加するには, majordomo@FreeBSD.org 宛にメールを出し てください.メール本文には "subscribe freebsd-fs" と書きます. 1.3. metalab.unc.edu のファイルシステムコレクション ファイルシステムコレクションはファイルシステムやファイルシステム関連の プログラムやドライバに関する役立つ情報を提供している FTP/WWW サイトで す.このコレクションは にありま す.FTP 専用のサイトも にあります. 1.4. クレジット 元々の "Filesystems access HOWTO" は Georgatos Photis が書きました(彼 のホームページ も見てくださ い).この HOWTO には彼のホームページに書かれている情報がたくさん載って います.Georgatos に感謝します. 藤原輝嘉 はこの HOWTO を日本語に訳してくれまし た. この HOWTO に協力してくれた方々と筆者を(直接的,間接的に)助けてくれた 方々をアルファベット順に紹介します: o Mariusz Borkowski - ISO9660/RR の情報 o Remy Card - ext2 ファイルシステムの紹介 o Peter A. Dinda - HFS ファイルシステムの説明 o Radek Machacka - SCO UnixWare と SCO OpenServer に ついて o Andrey Shedel - いろいろな情報更新 o Peter Todd - SFS ファイルシステムに関する情報 o Theodore Ts'o - ext2 ファイルシステムの紹介 o Stephen Tweedie - ext2 ファイルシステムの紹介 これらの方々に深く感謝します.洩れがあればお知らせください. 1.5. ファイルシステムのアクセス方法の一覧 これはファイルシステムのアクセス方法の「一覧」で,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'' OpenBSD: ``BSD FFS'' | ``FAT12/16'' 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'' 1.6. 連続的な割り当てを行うファイルシステム(contiguous allocation)の 紹介 領域を連続的に割り当てるファイルシステムがいくつかあります. ``BFS'', ``ISO9660 とこれを拡張したファイルシステム''. 1.7. リンクリストを使った割り当てを行うファイルシステムの紹介 1.8. FAT ベースのファイルシステムの紹介 (執筆予定) FAT ベースのファイルシステムがいくつかあります: ``FAT12/16/32, VFAT'' と ``NetWare ファイルシステム''. 1.9. i-ノードを使うファイルシステムの紹介 (執筆予定) 1.10. extent ファイルシステムの紹介 (執筆予定) いくつかの 'extent' ファイルシステムがあります: ``EFS'' および ``VxFS''. 1.11. B+ツリーを使ったファイルシステムの紹介 (執筆予定) B+ツリーを使ったファイルシステムもいくつかあります: ``HFS'', ``NSS'', ``Reiser FS'', ``Spiralog ファイルシステム''. 1.12. ロギングファイルシステム/ジャーナルファイルシステムの紹介 普通のファイルシステムの構成情報(メタデータと呼ばれる)の更新は同期書き 込みを使って行われます.メタデータのそれぞれの更新においては,たくさん の書き込みが別々に必要となることがあるので,もし書き込みシーケンスの途 中でシステムがクラッシュすると,メタデータが矛盾した状態になるかもしれ ません. 次回のシステム起動時には,ファイルシステム検査ユーティリティ(fsck と呼 ばれます)はメタデータの構成を全て調べ,ファイルシステムの検査と修復を 行います.大きなファイルシステムだとこの操作にはものすごく時間がかかり ます.また,ディスクが構成を修復するための情報が十分でないこともありま す.するとファイルの位置が変わったり消えたりしてしまいます. ジャーナルファイルシステムでは,ログまたはジャーナルと呼ばれる領域を別 に用意します.メタデータの変更が実際に行われる前に,先にこの別領域に変 更が記録されます.メタデータの変更はその後に行われます.もし操作の途中 にシステムがクラッシュしても,ログにはログの記録を「再生」するのに十分 な情報が残っており,操作を完全に行うことができます. このアプローチを取ればファイルシステム全体をスキャンする必要はなくなる ので,大きなファイルシステムでもファイルシステムの検査がごく短時間で済 むようになります―― 一般的には数ギガバイトのファイルシステムでも数秒 程度です.さらに,途中で止まっている操作についての情報が全て記録される ため,ファイルが消えることや lost+found ディレクトリに移動することもあ りません.ジャーナルファイルシステムの短所は,他のファイルシステムより も動作が遅いことです. ジャーナルファイルシステムは何種類かあります: ``BeFS'', ``HTFS'', ``JFS'', ``NSS'', ``Spiralog ファイルシステム'', ``VxFS'', ``XFS''. 1.13. ファイルシステムのその他の機能 1.13.1. quota 1.13.2. snapshot 1.13.3. ACL 2. ボリューム 2.1. PC パーティション o : Andries Brouwer によるパ ーティションの種類に関する文書 2.1.1. GNU parted o ホームページ: o ダウンロード先: o 作者: Andrew Clausen , Lennert Buytenhek , Matt Wilson o バグ報告: o アクセス機能: ファイルシステムごとに異なります.これについては後で 説明します. o ライセンス: GPL GNU partd はパーティションとパーティション上にあるファイルシステム の作成,破棄,サイズ変更,検査,コピーを行うプログラムです. partd は新しい OS のための容量の確保,ディスク割り当ての再編成,ハード ディスク間でのデータのコピー,それから「ディスクのイメージング」――イ ンストール済みの状態をたくさんのコンピュータに複製すること――に便利で す. partd は以下の操作に対応しています: ファイルシステム 検出 作成 サイズ変更 コピー チェック ext2 * * *1 *2 *3 fat * * *4 *4 * linux-swap * * * * * 注意: (1) パーティションの先頭部分は ext2 のままでなければなりません. (2) コピー先のパーティションの大きさはコピー元のサイズよりも大きくなけ れば(またはちょうど同じサイズでなければ)なりません. (3) ファイルシステムをオープンしたときに限定的なチェックが行われます. 現時点ではチェックしか行いません.ファイルシステムに何らかのエラー(一 般には大部分のエラー)があれば,全てのコマンド(サイズ変更を含む)は安全 にエラー終了し,ファイルシステムは無傷のまま残ります. (4) サイズ変更やコピーを行った後の新しいパーティションのサイズは,クラ スタサイズの制限を受けます(主に FAT16 が影響されます).これは読者の皆 さんが考えているよりも深刻な問題です.というのも,クラスタサイズは選べ ないからです(これは Windows のバグですが,他の OS を使っていても Windows との互換性は保っておきたいでしょう?). したがって実際には,パーティションを縮めることはいつでもできますが (partd はクラスタサイズの縮小ができます),パーティションを希望のサイズ に広げることはできないかもしれません.FAT32 を使うことに問題がなけれ ば,いつでもパーティションを希望のサイズに広げることができます. まとめると,パーティションの縮小は必ずできます.何らかの理由で FAT32 を使えないのであれば,パーティションの拡大ができるとは限りません. 2.1.2. 壊れたパーティションテーブルの修復 2.1.2.1. Fixdisktable o ホームページ: o ダウンロード先: ? o 作者: ? o アクセス機能: ? o ライセンス: ? このユーティリティは ext2, FAT, NTFS, ufs, BSD ディスクラベルを扱え ます(ただし,古い形式の Linux swap パーティションはまだ扱えませ ん).許可を与えれば,このユーティリティは実際にパーティションテーブ ルを書き換えます. 2.1.2.2. gpart o ホームページ: o ダウンロード先: ? o 作者: ? o アクセス機能: ? o ライセンス: ? GPART は ext2, FAT, Linux swap, HPFS, NTFS, FreeBSD と Solaris/x86 のディスクラベル,minix, reiser fs を扱うユーティリティです.このユ ーティリティは主パーティションテーブルのお勧めの設定を出してくれま すし,文書もよく整備されています. 2.1.2.3. rescuept o ホームページ: util-linux ? o ダウンロード先: ? o 作者: ? o アクセス機能: ? o ライセンス: ? ext2 スーパーブロック,FAT パーティション,swap パーティション,拡 張パーティションテーブルを認識します.また BSD ディスクラベルと Unixware 7 のパーティションも認識できます.このユーティリティは fdisk や sfdisk でパーティションテーブルを再構築する際に利用できる 情報を出力します.このユーティリティは util-linux パッケージに含ま れていますが,標準ではインストールされません. 2.1.2.4. findsuper o ホームページ: e2progs ? o ダウンロード先: ? o 作者: ? o アクセス機能: ? o ライセンス: ? ext2 のスーパーブロックシグネチャを持つブロックを探し,その位置など の情報を出力するユーティリティです.このユーティリティは e2progs パッケージに含まれていますが,標準ではインストールされません. 2.2. その他のパーティション 筆者は Intel x86 のマシンしか使っていないので,情報提供は大歓迎で す(x86 じゃないマシンを私にくださってもかまいません ;-)).役に立つ情報 をお持ちであれば,ぜひ筆者にメールをください. 2.2.1. ADFS のパーティション 2.2.2. Amiga のパーティション 2.2.3. ATARI のパーティション 2.2.4. Macintosh のパーティション 2.2.5. OSF のパーティション 2.2.6. Sun のパーティション 2.2.7. Ultrix のパーティション 2.3. Unix のディスクラベル (執筆予定) 2.3.1. BSD ディスクラベル (執筆予定) 2.3.2. UnixWare のディスクラベル UnixWare VTOC (Volume Table Of Contents)はディスクのパーティションを 16 個の論理パーティションに分割します. Linux カーネルは UnixWare VTOC に対応していますが, "UnixWare slices support (EXPERIMENTAL)" を有効に してカーネルを再コンパイルしなければなりません.UnixWare のディスクラ ベルを読む別の方法としては,prtvtoc(1) を GNU に移植したものがありま す.このコマンドは ``vxtools'' に入っています. 2.3.3. SCO OpenServer のディスクラベル (執筆予定) 2.3.4. Sun Solaris のディスクラベル (執筆予定) 2.4. Windows NT のボリューム o ホームページ: o 作者: Martin Hinner o アクセス機能: 読み取り専用.OS/2 ボリューム,Windows NT のストライ プセットとボリュームに対応. o ダウンロード先: o ライセンス: GPL この Linux カーネルドライバを使うと,リニアセットボリュームとストラ イプセットボリュームのマウントやアクセスができるようになります. 2.4.1. 「フォールトトレラント」な NTFS の修復と FTEdit の利用 o ホームページ: ? MS ARTICLE ID: Q131658 o ダウンロード先: o 作者: Microsoft Corp. o ライセンス: ? フォールトトレラント(FT)パーティション(パリティとボリュームセットを 使ったストライピング等)を使うように設定したWindows NT Workstation/Server を使っている場合に,これらのパーティションがアク セス不能になり,ディスクアドミニストレータからも「不明」に見えるよ うになってしまったら, FTEDIT ユーティリティを使えば再びアクセスで きるようになるかもしれません. 2.5. MD - Linux 用の複数デバイスドライバ o ホームページ: ? o 作者: Marc Zyngier o アクセス機能: 読み書き可能.リニアモード,RAID-1, RAID-4, RAID-5 に 対応. o ダウンロード先: Linux カーネル.ツールは から入手できる. o ライセンス: GPL このデバイスドライバを使うとハードディスクの複数のパーティションを ひとつの論理ブロックデバイスにまとめることができます.このドライバ は単にパーティションを別のパーティションに追加するために使うことも できますし,複数の冗長なハードディスクを繋げて RAID1/4/5 にし,ハー ドディスクの障害対策にも使えます.パーティションの連結はカーネルが 行うため,この機能は「ソフトウェア RAID」と呼ばれます. 2.6. LVM - 論理ボリュームマネージャ (HP-UX の LVM?) Linux 用の実装は以下の場所から入手できます: o ホームページ: o 作者: Heinz Mauelshagen o アクセス機能: ? o ダウンロード先: o ライセンス: GPL 2.7. VxVM - Veritas ボリュームマネージャ Veritas ボリュームマネージャに関する詳しい情報については を見てください. ``VxFS (Veritas Journaling Filesystem)'' も参考にしてください. 2.8. IBM OS/2 LVM 論理ボリュームマネージャは OS/2 WarpServer 5 でも利用できます.この LVM を使うとユーザは複数のディスク/パーティション上にリニアボリューム を作成できます.OS/2 の LVM は IBM AIX の LVM と互換であると言っている 人もいます. 関連項目: ``HPFS'', ``JFS'' 2.9. StackVM StackVM は CrosStor 製のボリュームマネージャです.StackVM を使うと,シ ステム管理者は複数の物理ディスクスライスをひとつの論理デバイスにまとめ ることができます.このデバイスは vdisk と呼ばれます.vdisk というの はvirtual disk(仮想ディスク)を略したものです.複数の物理ディスクをくっ つけると,ひとつの大きなディスクや RAID 0 (ストライプ), RAID 1 (ミラ ー), RAID 4, RAID 5 を作れます.ひとつのディスクパーティションを作るだ けでなく,これを複数の単純な vdisk に再分割することもできます.詳しい 情報については CrosStor のホームページ を 見てください. 2.10. Novell NetWare ボリューム NetWare ボリュームは NWFS-386 ファイルシステムで使われています. 3. DOS FAT 12/16/32, VFAT 3.1. VFAT: ロングファイルネーム Windows 95/98 と Windows NT/2000 は,FAT にロングファイルネームを持た せるために,読み取り専用, 隠しファイル,システム,ボリュームの属性が設 定された特殊なディレクトリエントリを持たせています.したがって,DOS か ら FAT ボリュームにアクセスしてもこれらの「ファイル」は見えません.こ れらは以下のようにいかれた構造を持つ特殊なエントリです. byte スロットのシーケンス番号 string(10) ファイル名の最初の 5 文字 byte 属性を表すバイト値 byte 常に 0 byte 8.3 形式の別名についてのチェックサム string(12) ファイル名の追加の 6 文字 word 開始クラスタ番号.長いスロット内では 0. string(4) 名前の最後の 2 文字 問題が起こるのは,ロングファイルネームを持つファイルを VFAT に対応して いないシステムから削除/修正したときです.なぜなら,DOS の 8+3 のエント リしか削除/修正されないからです.Windows 95/98 から scandisk を使えば この問題を修復できます. 3.2. UMSDOS: Linux で FAT ファイルシステムに LFN/属性を持たせる Linux は UMSDOS と呼ばれる独自の FAT の機能拡張を持っています.これを 使うとロングファイルネーム,パーミッションやファイルの所有者,リンクや 特殊デバイスを FAT 上に持つことができます.各ディレクトリには "--linux-.---" という名前のファイルが置かれます.このファイル内にロン グファイル名や他の必要なフィールドが保持されます.詳しい情報については /usr/src/linux/Documentation/filesystems/umsdos.txt ファイルを見てくだ さい. Linux UMSDOS ドライバの作者は Jacques Gelinas であり,現在の管理者は Matija Nalis です. 3.3. OS/2 における FAT ファイルシステムの拡張属性 OS/2 Warp のバージョン 3, 4, 5 はロングファイルネームと拡張属性を FAT ボリューム上の "\ea data. sf" および "\wp root. sf" というファイル内に 持ちます(両方ともファイルシステムのルートディレクトリに置かれます).筆 者の知る限り,OS/2 の拡張属性を実装している OS は他にはありません.拡 張属性の構造に関する何らかの情報をお持ちであれば,ぜひ筆者にメールして ください. 3.4. Star LFN Star LFN は DOS 4.0 以降で動作するエミュレータであり,これを使うと Windows95 の DOS 窓で使えるロングファイルネーム機能を利用できます.現 在はシステムファイルかつ隠しファイルでなければロングファイルネームの読 み書きができません.つまり,Windows95 の実際のロングファイルネームは読 み書きできません.詳しくは を見てく ださい. 3.5. OS/2 から VFAT にアクセスする方法(VFAT-OS2) o ホームページ: o 作者: Daniel Steiner o アクセス機能: 読み書き可能.拡張属性には対応していません. o ミラーサイト: o ライセンス: GPL VFAT-OS2 は,Windows 95 の VFAT 形式でフォーマットされたパーティ ションが OS/2 標準のドライブレターを持っているかのように OS/2 から 透過的にアクセスできるようにするパッケージです.このパッケージの最 終目標は VFAT ファイルシステムで FAT を置き換えられるようにすること です.このパッケージは現在は読み取り専用モードで NFTS パーティショ ンにもアクセスできます. 3.6. DOS から VFAT にアクセスする方法 (LFNDOS ドライバ) Microsoft が LFNDOS という,DOS で Microsoft Long Filename API を使え るようにするドライバを公開していると言っている人がいます.このドライバ をダウンロードできる場所をもし知っていたら筆者に教えてください. 3.7. DOS から VFAT にアクセスする方法 (Free LFNDOS ドライバ) o ホームページ: o 作者: Chris Jones o アクセス機能: 読み書き可能 o ミラーサイト: o ライセンス: フリー.ソースコードも入手できます. LFNDOS を使うと Windows95 の Long Filename (LFN) API を DOS のプロ グラムから使えます.このドライバはファイル名を格納するのに Windows95 と同じフォーマットを使うので,どちらのシステムからでも ファイルを見たり使ったりできます.このドライバはメモリ常駐プログラ ムとして動作し,コンベンショナルメモリを 60KB 程度必要とします. Windows95 の元では,DOS プログラムは割り込み関数を組み合わせて呼び出す ことによってロングファイル名を使えます.この関数は Windows が提供して います.例えば,COMMAND.COM は Windows の DOS プロンプトとして実行され た時にはロングファイルネームを使えますが,MS-DOS モードで起動されてい る場合には使えません.EDIT.COM や全ての DJGPP プログラムといった別のプ ログラムも利用可能ならばロングファイルネームを使います. 3.8. DOS から VFAT にアクセスする方法 (Odi の LFN ツール) o ホームページ: o 作者: Ortwin Glueck o アクセス機能: 読み書き可能.DOS ユーティリティとしてのみ動作しま す. o ミラーサイト: o ライセンス: ? このツールを使うと,Windows95/98 が FAT32, FAT16, FAT12 ファイルシ ステム上に作ったロングファイルネームを持つファイルを DOS から簡単に 管理できます.LDIR と打ち込むと,ファイル名がロングファイルネームで 得られます. LCOPY を使ってファイルをコピーすると,ロングファイルネ ームの情報が保たれます.ロングファイルネームを持つディレクトリを作 ることや(LMD),ロングファイルネームを持つファイルの名前を変えるこ と(LREN)さえできます. 3.9. OS/2 から FAT32 にアクセスする方法 (FAT32.IFS) o ホームページ: o 作者: Henks Kelder < hkelder@capgemini.nl > o アクセス機能: 読み書き可能.ロングファイルネームに対応.拡張属性に は未対応. o ダウンロード先: o ライセンス: フリー OS/2 用の FAT32.IFS を使うと OS/2 から FAT32 パーティションにアクセ スできます.FAT32 パーティションの作成はできないので,作成を行うに は Win95 OSR2 がまだ必要となります.また,OS/2 の CHKDSK は起こり得 る全てのエラーを修復できないので,エラーによっては Windows95 の scandisk を使わなければなりません. 3.10. Windows NT 4.0 から FAT32 にアクセスする方法 o ダウンロード先: o 作者: 不明 o ライセンス: フリーまたは GPL? NT 4.0 と NT 3.51 用の FAT32 ファイルシステムドライバです. 3.11. Windows NT 4.0 から FAT32 にアクセスする方法 o ホームページ: o 作者: Mark Russinovich と Bryce Cogswell . o アクセス機能: フリー版は読み取り専用.商用版は読み書き可能. o ダウンロード先: ? o ライセンス: フリー(読み取り専用)または商用(読み書き可能) これは Windows NT 4.0 用の FAT32 ファイルシステムドライバです.一度 インストールすると,システム上に存在する全ての FAT32 ドライブはネイ ティブの Windows NT ボリュームとまったく同じようにアクセスできるよ うになります.フリー版は読み取り専用の機能しか持っていません.商用 版は読み書き可能です. 3.12. Stac/Dblspace/Drvspace されたドライブに Linux からアクセスする 方法 (DMSDOS) o ホームページ: o 作者: Frank Gockel と Pavel Pisa o アクセス機能: stacker, dblspace, drvspace で圧縮されたディスクの読 み書きに対応.ロングファイルネームにも対応. o ダウンロード先: o Freshmeat: Console/Filesystems o ライセンス: GPL DMSDOS は圧縮された DOS ファイルシステム(CVF-FAT)の読み書きができま す.以下の構成に対応しています: o DoubleSpace / DriveSpace (MS-DOS 6.x) o DoubleSpace / DriveSpace (Windows 95) o DriveSpace 3 (Plus! パッケージを追加した Windows 95) o Stacker 3 o Stacker 4 DMSDOS は FAT32, NLS, コードページに対応しています(Linux 2.0.33 と バージョン 0.2.8 の FAT32 パッチの組み合わせと,標準の Linux 2.1.xx, 2.0.34, 2.0.35 の FAT32 対応で確認しました).DMSDOS は VFAT や UMSDOS のロングファイルネームと共存できます.DMSDOS は SMP に対 応するために設計し直されており,libc6 環境でも完全にコンパイルでき るようになったはずです. 3.13. Linux から dblspace/drvspace されたドライブにアクセスする方 法(thsfs) o ダウンロード先: o 作者: Thomas Scheuermann o アクセス: dblspace/drvspace されたドライブに読み取り専用で対応. o ライセンス: ファイル中に含まれる著作権表示を参照すること.基本的に はフリー. 3.14. Fsresize - FAT16/32 のサイズ変更ツール o ホームページ: o 作者: Andrew Clausen o ダウンロード先: o Freshmeat: Console/Filesystems o アクセス機能: 読み書き可能.FAT16/FAT32 に完全対応. o License: GPL FAT16/FAT32 ファイルシステムのサイズ変更を行えます.このツールは他 のプログラム(デフラグツール等)を一切必要としません.また --backup オプションと --restore オプションを持っているので,停電(あるいはバ グ) が起きても必ず元の状態に戻せます.バックアップファイルは普通は 1MB 未満の大きさです. 作者は今後は fsresize の新しいバージョンをリリースするつもりはないよう です.というのも彼は parted(Partition Magic のクローン)の開発を行って いるからです.parted もファイルシステム/パーティションのサイズ変更,コ ピー,検査を行えます. 3.15. FIPS - FAT16 のサイズ変更ツール o ホームページ: ? o 作者: Arno Schaefer o ダウンロード先: o ライセンス: GPL 4. High Performance FileSystem (HPFS) HPFS に関する役立つリンクを紹介します: o o o - HPFS へのアクセ ス方法について参考になるページです. o - IBM OS/2 Warp Server : Features & Benefits : File & Print 4.1. DOS から HPFS にアクセスする方法 (iHPFS) o ホームページ: o 作者: Marcus Better Marcus.Better@abc.se o ダウンロード先: o アクセス機能: 読み取り専用 o ライセンス: GPL iHPFS は OS/2 ユーザが普通の DOS を起動したときに HPFS パーティション を利用できるようにします.HPFS パーティションにはドライブレターが割り 当てられ,DOS のドライブと同じようにアクセスできます.ただし,iHPFS は 読み取り専用のアクセスしかできません. このプログラムの開発はもう止まっています.作者がもう OS/2 を使っていな いからです.プログラムのメンテナンスをする気があるなら,彼に連絡してく ださい. 4.2. DOS から HPFS にアクセスする方法(hpfsdos) o ホームページ: ? o 作者: Robert Muchsel (このアドレスは使えま せん) o アクセス: 読み取り専用 o ライセンス: シェアウェア ($23) 4.3. DOS から HPFS にアクセスする方法 o ホームページ: o 作者: Andreas Kinzler (こ のアドレスは使えません) o ダウンロード先: o アクセス機能: 読み書き可能. o ライセンス: シェアウェア ($40) 4.4. DOS から HPFS にアクセスする方法 (amos) o ホームページ: ? o 作者: Allan Mertner (このアドレスは使えま せん) o ダウンロード先: o ライセンス: シェアウェア ($50) 4.5. Linux から HPFS にアクセスする方法 o ホームページ: o ダウンロード先: (カーネル 2.0用), (カーネル 2.2用) o 作者: Mikulas Patocka < mikulas@artax.karlin.mff.cuni.cz > o アクセス機能: 読み書き可能.拡張属性,ロングファイルネームに対応. o ライセンス: GPL このドライバは Linux カーネル (2.1.x 以降)に含まれています.このド ライバは HPFS パーティションを読み書きできます.アクセス権限と所有 者に関する情報は拡張属性に保持されます.以前からあった読み取り専用 の HPFS ドライバのバグは修正されています.このドライバは Warp Server Advanced の HPFS386 にも対応しています. カーネルを HPFS 対応にするには,ファイルシステムのサブメニューで 'OS/2 HPFS filesystem support' の問に対して ``Y'' と答えます.それから 'make dep bzImage' を実行してカーネルを再コンパイルし,システムを再起動して から HPFS パーティションをマウントします(例: mount /dev/hda2 /mnt -t hpfs). 4.6. FreeBSD から HPFS にアクセスする方法 o ホームページ: o ダウンロード先: o 作者: Semen A. Ustimenko < semenu@FreeBSD.org > o アクセス機能: 読み取り専用 o ライセンス: BSD このドライバは HPFS ボリュームを UNIX の名前空間にマウントできるよ うにします.現時点では読み取り専用のアクセスにしか対応していませ ん. 4.7. Windows NT 3.5 から HPFS にアクセスする方法 o ホームページ: o ダウンロード先: o 作者: Chris Behnken < nbehnken@htc.net > o ライセンス: フリーウェア このプログラムは Windows NT のレジストリを編集し,HPFS サポートを有 効にします.Pinball.sys は Windows NT 用の HPFS ファイルシステムド ライバです.このドライバは NT 3.5x の CD-ROM に入っていま す.Microsoft は現在は HPFS をサポートしていません.このプログラム をインストールすると保証は効かなくなり,たぶんライセンス合意も破る ことになります. 4.8. Windows NT 4 から HPFS にアクセスする方法 o ダウンロード先: o 作者: ? o ライセンス: ? Windows NT 4.0 用の HPFS ドライバです. 5. New Technology FileSystem (NTFS) 参考リンク: o : NTFS 5 に関す る情報 o Rajeev Nagar, Windows NT File System Internals (O'Reilly) o Helen Custer, Inside the Windows NT File System, ISBN: 1-55615-660-X o NTFS documentation by Regis Duchesne , または o Microsoft TechNet, February 97, Windows NT Training: Support, NTFS o 5.1. DOS から NTFS にアクセスする方法 (NTFSDOS.EXE) o ホームページ: http://www.sysinternals.com/ntfs20.htm o 作者: Mark Russinovich と Bryce Cogswell o アクセス機能: 読み取り専用.DOS 7 と Win9x ではロングファイルネーム に対応. NTFSDOS.EXE は DOS/Windows 用のネットワークファイルリダイレクタであ り, NTFS の認識とマウントを行って透過的にアクセスできるようにしま す.このプログラムは,標準の FAT ドライブと NTFS ドライブとの区別を つけなくすることで DOS や Windows (Windows 3.1 のファイルマネージャ や Windows 95 のエクスプローラを含みます)から NTFS 上でファイルの検 索や参照,プログラムを実行できるようにします. 5.2. DOS から NTFS にアクセスする方法 (ntpwd) o ホームページ: o 作者: Grenier Christophe < grenier@nef.esiea.fr > o アクセス: 読み取り専用 (読み書きはテスト中),ロングファイルネーム対 応,ドライブレターには未対応(DOS 用ツールのため) o ライセンス: GPL NTPwd には NTFS パーティションにアクセスするためのコマンドライン用ツー ルが入っています.このプログラムは Linux が使うドライバの DOS に移植し たものです.このツールには NT のパスワードを変更するための小さなユー ティリティも入っています. 5.3. OS/2 から NTFS にアクセスする方法 o ホームページ: o ミラーサイト: , o 作者: Daniel Steiner < info@dsteiner.com > o アクセス機能: 読み取り専用,ロングファイルネーム対応 ntfs_003.zip アーカイブには OS/2 内の NTFS パーティションにアクセス するためのコマンドラインツールしか入っていません.NTFS に実際にアク セスできる IFS は ``VFAT-OS2'' v0.05 に入っています. 5.4. Linux から NTFS にアクセスする方法 o ホームページ: o 作者: Martin von Lo"wis loewis@informatik.hu-berlin.de o Freshmeat: Console/Filesystems o ホームページ: o ミラーサイト: 公式の Linux カーネルに採用されています o アクセス機能: 読み取り専用.読み書きはテスト中.圧縮ドライブ対応. 暗号化には未対応. o ライセンス: GPL カーネルドライバとしても,コマンドラインユーティリティ群としても動 作します. 5.5. FreeBSD, NetBSD から NTFS にアクセスする方法 o ホームページ: o 作者: Semen A. Ustimenko > o ダウンロード先: FreeBSD ( ), NetBSD ( ) に含まれています. o ミラーサイト: FreeBSD と NetBSD のミラーサイトを探すこと o アクセス機能: 読み取り + 制限付き書き込み,コードページには未対応 o ライセンス: BSD これは FreeBSD と NetBSD から NTFS ボリュームにアクセスするためのド ライバです.このドライバは制限付きで書き込みに対応しています.具体 的には,ホール(hole)がなく圧縮されていないファイルに書き込みを行え ますが,ファイルのサイズを変えることはできません.書き込みへの対応 は NTFS ボリューム上でスワップを行うために行われました. 5.6. BeOS から NTFS にアクセスする方法 o ホームページ: o 作者: Travis Geiselbrecht < geist@tamu.edu > o ダウンロード先: o アクセス機能: ? o ライセンス: フリー これは BeOS 用の NTFS ドライバのアルファ版です.まだ完成からは程遠 いのですが,リリースごとに前よりも良くなっています.圧縮ファイルの 読み取りは実装されたばかりなので,扱いには注意してください.作者の 方は NTFS 5 のボリュームの対応作業を行い,いくつかあったバグも潰そ うとしています. 作者の方は現在 Be Inc. に勤めているため,NTFS と ext2 ファイルシステム サポートについての情報は WWW ページにはあまり載らなくなるでしょう.ド ライバは将来の BeOS のリリースに入るでしょう. 5.7. BeOS から NTFS にアクセスする方法 (別のもの) o ホームページ: http://www.sw.com.sg/solutions/ntfs-ro.shtml o 作者: Standard & Western Software, http://www.sw-soft.com o ダウンロード先: http://download.sw.com.sg/pub/Be/ntfs- rod-0302.tar.gz o アクセス機能: 読み取り専用 5.8. NTFSDOS ツールを使った NTFS の修復 o ホームページ: o 作者: Winternals Software o アクセス機能: 読み書き可能.コピーとファイルの置き換えが可能です. o ライセンス: 商用 既存のファイル名を変えたり,ファイルに新しいデータを上書きできるよ うにする NTFSDOS へのアドオンです.機能は非常に限られています. 5.9. NTRecover を使った NTFS の修復 o ホームページ: o 作者: Winternals Software o アクセス機能: フリーウェア版は読み取り専用,商用版は読み書き可能 o ライセンス: フリーウェア版は読み取り専用,商用版は読み書き可能 起動フロッピーとシリアル接続を使って,死んだ NT システム上の NTFS ドライブが別に用意した NT システムから完全にアクセスできるようにし ます.データのサルベージやドライバの置き換えには理想的です. 6. Extended ファイルシステム (ext, ext2, ext3) extended filesystem (ext fs), second extended filesystem (ext2fs), third extended filesystem (ext3fs) は,Laboratoire MASI--Institut Blaise Pascal の Re'my Card , マサチューセッツ工科大 学の Theodore Ts'o , エディンバラ大学の Stephen Tweedie が Linux 上で設計,実装したファイルシステムです. o - ext2 のホームペー ジ.これは ext2 に関する主な情報源です. o - John Newbigin による ext2fs に関する文書です. o - Ext2fs_Rec (WinNT 用の ext2 認識 ツール) 6.1. Extended ファイルシステム (extfs) これは初期の Linux で使われていた古いファイルシステムです. 6.2. Second Extended ファイルシステム (ext2 fs) Second Extended ファイルシステムは Linux コミュニティで最も広く使われ ているファイルシステムでしょう.このファイルシステムは UNIX ファイルシ ステムの標準のセマンティクスと先進的な機能を持っています.さらに,カー ネルのコードに組み込まれている最適化のおかげで,頑健な上に優れた性能を 発揮します. ext2fs は拡張を念頭に置いて設計されているため,新しい機能を追加するた めのフックを持っています.現在のファイルシステムを拡張しようと作業して いる人達もいます.POSIX のセマンティクスに準拠したアクセス制御リストや 削除したファイルの復元,オン・ザ・フライのファイル圧縮の機能などです. ext2fs はもともと Linux カーネルで開発とまとめが行われましたが,現在は 他の OS への移植も活発に行われています.GNU Hurd 上で動作する ext2fs サーバも実装されていますし,Mach マイクロカーネル上で動作する LITES サ ーバや VSTa OS に ext2fs を移植する作業を行っている人達もいます.最後 に,しかし重要な点なのですが,Masix OS では ext2fs が重要な位置を占め ており,現在は作者の一人が開発に従事しています. 6.2.1. 開発の動機 Second Extended ファイルシステムは,最初の Extended ファイルシステムが 抱えていた問題を解決するために設計と実装が行われました.作者らの目的 は,UNIX ファイルのセマンティクスと先進的な機能を持った強力なファイル システムを提供することでした. もちろん,ext2fs に優れた性能を持たせることも考えられていました.作者 らは厳しい使い方をしてもデータを失う危険の少ない非常に頑健なファイルシ ステムを作ろうともしていました.最後に,これも重要な点なのです が,ext2fs にはファイルシステムを再フォーマットすることなく新しい機能 を使えるような拡張のための準備も施しておかなければなりませんでした. 6.2.2. ext2fs の「標準」機能 ext2fs は UNIX 標準のファイル型に対応しています.すなわち通常ファイ ル,ディレクトリ,デバイス特殊ファイル,シンボリックリンクです. ext2fs は非常に大きなパーティション上に作られたファイルシステムを管理 できます.元々のカーネルコード自身が扱える最大のファイルシステムの大き さは 2GB であり,最近の VFS 層ではこの制限は 4TB まで緩和されていま す.したがって,現在はたくさんパーティションを作らなくても大きなディス クを使えるようになりました. ext2fs はロングファイルネームを扱えます.可変長のディレクトリエントリ も扱えます.ファイル名の最大の長さは 255 文字です.この制限は必要なら ば 1012 文字まで拡張できます. ext2fs は一部のブロックをスーパーユーザ(root)のために予約しています. 普通は,全ブロックのうち 5% が予約されています.これにより,ユーザプロ セスがファイルシステムを使い切ってしまったような状況からもうまく修復作 業を行えます. 6.2.3. ext2fs の「先進的な」機能 UNIX の標準的な機能に加えて,ext2fs は UNIX ファイルシステムには通常は 含まれていない拡張機能をいくつかサポートしています. ファイル属性を使うと,ユーザはあるファイル群に対するカーネルの動作を変 えられます.ユーザはファイル属性をファイルまたはディレクトリに設定でき ます.ディレクトリの場合は,そのディレクトリに作られた新しいファイルに その属性が反映されます. マウント時に BSD と System V Release 4 のどちらのセマンティクスを使う かを選べます.システム管理者はマウントオプションを使ってファイル作成の セマンティクスを選べます.BSD のセマンティクスでマウントされたファイル システム上では,ファイルは親ディレクトリと同じグループ ID で作成されま す.System V のセマンティクスは多少複雑です.もしディレクトリに setgid ビットが設定されていたら新しいファイルはそのグループ ID を引き継ぎ, ディレクトリはグループ ID と setguid ビットを引き継ぎます.それ以外の 場合には,ファイルとサブディレクトリは作成を行ったプロセスの主グループ ID を持ちます. ext2fs では BSD と同様の同期更新を行えます.システム管理者のマウントオ プションの指定により,メタデータ(i-ノード,ビットマップブロック,間接 ブロック,ディレクトリブロック)のディスクへの書き込みをメタデータの変 更と同時に行うように要求できます.これはメタデータの一貫性を厳密に確保 したい場合には便利ですが,性能はひどくなります.実際のところ,この機能 は普通は使われません.なぜならメタデータの同期更新によって性能が落ちる 上,ファイルシステムの検査プログラム(訳注: fsck)がエラーを出さないのに ユーザデータが壊れていることもあり得るからです. ext2fs では,システム管理者はファイルシステムの作成時に論理ブロックの サイズを選べます.ブロックサイズは普通は 1024, 2048, 4096 のいずれかで す.ブロックサイズを大きく取ると I/O 要求が減ってディスクヘッドのシー クが減るので,1 つのファイルにアクセスするのに必要な I/O 処理を高速に できます.その一方,ブロックを大きく取るとディスク容量の無駄が多くなり ます.平均すると,ファイルに割り当てられた最後のブロックは半分しか埋ま らないので,ブロックを大きく取るほど各ファイルの最後の部分でのブロック の無駄が大きくなります.さらに,大きいブロックサイズを扱う利点のほとん どは, ext2 ファイルシステムの先行割り当て(preallocation)技術によって 得られるものです. ext2fs には高速シンボリックリンクが実装されています.この高速シンボ リックはファイルシステム上のデータブロックを全く使いません.リンク先の 名前はデータブロックに格納されるのではなく,i-ノード自体に格納されま す.この方針によりディスク容量もいくらか節約できます( データブロックを 割り当てる必要がない)し,リンクの動作を高速にできます (リンクにアクセ スした際にデータブロックを読み出す必要がない).もちろん, i-ノード内で 使える容量は限られているため,全てのリンクを高速シンボリックリンクにで きるわけではありません.高速シンボリックリンクで使えるリンク先の名前は 最大で 60 文字です.開発者らはこの手法を近い将来に小さいファイルにも拡 張しようと計画しています. ext2fs はファイルシステムの状態を常に追跡しています.カーネルコードは スーパーブロックの特殊なフィールドを使ってファイルシステムの状態を示し ます.ファイルシステムが読み書き可能モードでマウントされている時には 「クリーンでない(Not Clean)」状態に設定されます.このファイルシステム がアンマウントされるか読み取り専用モードで再マウントされると,この状態 は「クリーン(Clean)」に再設定されます.システムの起動時にはファイルシ ステム検査プログラムはこの情報を見て,ファイルシステムの検査が必要かど うかを決めます.カーネルコードはエラーもこのフィールドに記録します.カ ーネルコードがファイルシステムの矛盾を発見すると,ファイルシステムは 「エラーあり(Erroneous)」を記録します.ファイルシステム検査プログラム はこの状態を見つけると,クリーン状態であるかどうかに関わらず必ずファイ ルシステムの検査を実行します. ファイルシステムの検査を常に飛ばすのは危険かもしれません.したがって, ext2fs では定期的に強制的に検査を行う方法を 2 つ用意しています.1 つは マウント回数をスーパーブロックに覚えておく方法です.ファイルシステムが 読み書き可能モードでマウントされる度にこのカウンタは増えていきます.こ のカウンタが最大値(この値もスーパーブロックに記録されています)になる と,ファイルシステム検査プログラムはファイルシステムが「クリーン」で あっても検査を強制的に実行します.前回の検査時刻と検査の最大間隔はスー パーブロックに記録されています.これらの 2 つのフィールドを使って,シ ステム管理者は定期的な検査を行えます.最大検査間隔に到達すると,検査プ ログラムはファイルシステムの状態を無視し,必ずファイルシステムを検査し ます. ファイル属性を用いるとユーザはファイルを安全に消すことができます.こう いったファイルを削除すると,それまでファイルに割り当てられていたディス クブロックにはランダムなデータが書き込まれます.これにより,悪意のある ユーザがディスクエディタを使って削除前のファイルの内容を得るのを防げま す. 最後に,4.4 BSD ファイルシステムにヒントを得た新しい型のファイルシステ ムが最近になって ext2fs に追加されました.不変ファイル(immutable file)は読み取りだけが可能です.このファイルには誰も書き込むことができ ません.これは重要な設定ファイルを保護するために使えます.追加専用の ファイル(append-only file)は書き込みモードでオープンできますが,データ は必ずファイルの末尾に追加されます.不変ファイルと同じく,追加専用の ファイルも削除や名前の変更はできません.これは大きくなっていくだけのロ グファイルに設定しておくと特に便利です. 6.2.4. 物理的な構造 ext2 ファイルシステムの物理的な構造は BSD ファイルシステムの配置の影響 を強く受けています.ファイルシステムはブロックグループからできていま す.ブロックグループは BSD の FFS のシリンダグループに似ています.しか し,ブロックグループはディスク上の物理的なブロック配置に結びつけられて はいません.なぜなら,最近のドライブは連続的なアクセスに適した最適化が 行われ,物理的なジオメトリを OS に見せないようにしているものが多いから です. ,---------+---------+---------+---------+---------, | ブート |ブロック |ブロック | ... |ブロック | | セクタ |グループ1|グループ2| |グループn| `---------+---------+---------+---------+---------' 各ブロックグループはファイルシステムの重要な制御情報(スーパーブロック とファイルシステム記述)のコピーを冗長に持っており,またファイルシステ ムの一部(ブロックビットマップ,i-ノードビットマップ, i-ノード表の一 部,データブロック)を持っています.ブロックグループの構造は以下の表の 通りです: ,---------+---------+------------+------------+---------+---------, |スーパー | FS |ブロック |i-ノード |i-ノード |データ | |ブロック | 記述 |ビットマップ|ビットマップ|表 |ブロック | `---------+---------+------------+------------+---------+---------' ブロックグループを使うことで,信頼性の面では大きな利点を得られます.制 御構造は各ブロックグループに複製されるので,スーパーブロックが壊れた ファイルシステムを復旧させるのは簡単です.この構造は性能を出すためにも 役立ちます.i-ノード表とデータブロックの距離を小さくすることにより, ファイルに対する I/O を行っている間のディスクヘッドのシークを減らせる からです. ext2fs では,ディレクトリは可変長エントリのリンクリストとして管理され ています.各エントリは i-ノード番号,エントリの長さ,ファイル名とその 長さを持っています.可変長のエントリを用いることにより,ディレクトリ内 でディスクスペースを無駄遣いすることなくロングファイルネームを実装でき ます. 6.2.5. 性能の最適化 Linux カーネルの ext2fs のコードでは性能のための最適化がたくさん行われ ています.これにより,ファイルの読み書きの際の I/O 速度が向上していま す. ext2fs は先行読み込みを行うことにより,バッファキャッシュ管理を有効に 生かしています.あるブロックを読み込まなくてはならない時には,カーネル コードはいくつかの連続したブロックに対して I/O の要求を出します.この ようにして,次に読み込まれるブロックが既にバッファキャッシュにロードで きているようにします.先行読み込みは普通はファイルの連続的な読み込みの 間に行われますが,ext2fs ではこの先行読み込みをディレクトリの読み込み に拡張しています.ディレクトリの先行読み込みは明示的な読み込 み(readdir(2) システムコール)と暗黙的な読み込み(カーネルの namei によ るディレクトリ参照)の両方に対して行われます. ext2fs は割り当てについても多くの最適化を行っています.ブロックグルー プは関係する i-ノードとデータをひとまとまりにするためにも使われます. カーネルコードは常に,1 つのファイルに対するデータブロックを同じグルー プ内で i-ノードとして割り当てようとします.これはカーネルが i-ノードと それに対応するデータブロックを読み込む時にディスクヘッドのシークを減ら すための処理です. ファイルにデータを書き込む時は,ext2fs は新しいブロックを割り当てる際 に隣接した 8 つまでのブロックを先行割り当てします.先行割り当てのヒッ ト率はファイルシステムがほとんどいっぱいの時でも約 75% です.この先行 割り当てにより,負荷が高い時の書き込み性能が良くなります.また,先行割 り当てを行うとファイルに対して連続的なブロックが割り当てられるので,後 で連続的な読み込みを行う際の速度を向上させることができます. これらの 2 つの割り当て最適化により,以下の 2 点について非常に良い局所 性を実現できます: o 関連するファイルをブロックグループにまとめる o 関連するブロックを 8 ビットのまとまりで割り当てる 6.3. Third Extended Filesystem (Ext3 FS) ext3 は ext2 と同じ機能に対応していますが,さらにジャーナリング機能も 持っています.ext3 の先行バージョンは から入手できます. 6.4. E2compr - ext2fs における透過的な圧縮 o ホームページ: o ダウンロード先: o 管理者: Peter Moulder o Freshmeat: Console/Filesystems o アクセス機能: ext2 については読み書き可能,ロングファイルネーム対応 o ライセンス: 圧縮アルゴリズム(様々なライセンスがある)を除いて GPL このソフトウェアパッケージは ext2 ファイルシステムで `chattr +c' が 行えるようにします.パッケージは Linux カーネルへのパッチと,パッチ が当たったバージョンの各種プログラム(主に e2fsprogs に含まれるプロ グラム.つまり e2fsck 等)からできています.このソフトウェアを何年も 使っている人もいますが,これはまだ開発中です.したがって,エンドユ ーザが使うものではありません. 6.5. DOS から ext2 にアクセスする方法(ext2 tools) o ダウンロード 先:ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2/ o アクセス機能: 読み取り専用,ドライブレター非対応(特殊ユーティリ ティ) o 作者: Claus Tondering o ライセンス: ? Linux の ext2 ファイルシステムを DOS で読めるようにする DOS 用プロ グラム集です. 6.6. DOS, Windows 9x/NT, 他の UNIX から ext2 にアクセスする方法 (LTools) o ホームページ: o 作者: Werner Zimmermann o ホームページ: o ミラーサイト: (メ ジャーリリースのみ) o アクセス機能: 読み書き,修正,ロングファイルネームに対応 o ライセンス: GPL LTOOLS は DOS/Windows 3.x/Windows 9x/Windows NT や Linux 以外の UNIX で動作し,Linux の MTOOLS のように動作します.LTOOLS を使え ば,他の OS から Linux ファイルにアクセス(読み書きと修正)できます. LTOOLS の中心となるのはコマンドライン用のプログラム群です.これに加 えて Java 用のスタンドアロンの GUI が利用可能です.この他にも,普通 の WWW ブラウザを GUI として使えます.LTOOLS はローカルの Linux ファイルにアクセスできるだけでなく,他のマシンのファイルにリモート アクセスすることもできます. 6.7. OS/2 から ext2 にアクセスする方法 o ホームページ: o 作者: Matthieu WILLM , o ダウンロード先: o Freshmeat: Console/Filesystems o アクセス機能: 読み書き可能,ext2 へのスワップや ext2 からの起動が可 能.リムーバブルメディアに対応.ただし拡張属性には未対応. EXT2-OS2 は OS/2 から Linux の ext2 でフォーマットされたパーティ ションにアクセスできるようにするパッケージで,ext2 パーティションを OS/2 標準のドライブレターのように扱えるようになります.このパッケー ジの最終目標は,ext2 ファイルシステムを FAT や HPFS に置き換えて使 えるようにすることです.今のところ目標達成に足りない機能は OS/2 拡 張属性への対応だけです. 6.8. Windows 95/98 から ext2 にアクセスする方法(FSDEXT2) o ホームページ:http://www.yipton.demon.co.uk/ o 作者: Peter van Sebille pvs@globalxs.nl , pese@nlnwgfsc.origin.nl o Freshmeat: Console/Filesystems o アクセス機能: 読み取り専用.ロングファイルネーム対応. 6.9. Windows 95 から ext2 にアクセスする方法(Explore2fs) o ホームページ: o アクセス機能: 読み書き可能.ロングファイルネームやシンボリックリン ク等に対応 o 作者: John Newbigin o ライセンス: GPL ext2fs を読み書きできるユーザ空間アプリケーションです.ハードディス クおよび ZIP やフロッピーディスクを含むリムーバブルメディアに対応し ています.Windows のエクスプローラのようなインタフェースを使って ファイルや詳細情報を見ることができます.ドラッグ&ドロップやコンテク ストメニュー等にも対応しています.Windows NT 用に書かれています が,Windows 95 にもある程度対応しています.大きなディスクでは問題が 起きることがあります. 6.10. Windows NT から ext2 にアクセスする方法 (ext2fsnt) o ホームページ: o ダウンロード先: o 作者: Andrey Shedel < andreys@cr.cyco.com > o Freshmeat: Console/Filesystems o ライセンス: フリー o アクセス機能: 読み書き可能.ロングファイルネーム,セキュリティ機 能,ページファイル,ハードリンクに対応. 6.11. BeOS から ext2 にアクセスする方法 o ホームページ: o 作者: Travis Geiselbrecht < geist@tamu.edu > o ダウンロード先: (R4 用), (R3 用) o アクセス機能: 読み取り専用.ロングファイルネームに対応. o ライセンス: フリー これは BeOS が Linux の ext2 ファイルシステムをマウントできるように するドライバです.作者は現在リリースされているバージョンがかなり安 定していると考えているようです.このドライバは長い間使われています が,バグ報告はありません. 作者の方は現在 Be Inc に勤めているため,NTFS と ext2 ファイルシステム サポートについての情報は WWW ページにはあまり載らなくなるでしょう.ド ライバは将来の BeOS のリリースに入るでしょう. 6.12. MacOS から ext2 にアクセスする方法(MountX) これは Macintosh で ext2 ファイルシステム(Linux, MkLinux)をマウントで きるようにする MacOS 用ドライバです. 6.13. MiNT から ext2 にアクセスする方法 o ホームページ: o 作者: o ダウンロード先: ? o ライセンス: GPL これは FreeMiNT で完全に動作する ext2 ファイルシステムドライバで す.例えば,このドライバは Linux に実装されているものと同じように実 際の ext2 を読み書きできます.パーティションのサイズの制限はなく, 論理セクタサイズは 1024, 2048, 4096 バイトにできます.唯一の制限は 物理セクタサイズは論理セクタサイズ以下でなければならないことです. パーティションを mke2fs で初期化していればブロックサイズを変更する ことができます. 6.14. ext2fs のデフラグ o ダウンロード先: o 作者: Stephen C. Tweedie < sct@redhat.com > o ライセンス: GPL ext2 ファイルシステムのデフラグを行います.glib ライブラリのアップ デートが必要です. 6.15. ext2fs のサイズ変更 o ホームページ: o ダウンロード先: o 作者: Lennert Buytenhek . o ライセンス: GPL ext2fs のサイズ変更を行います. 6.16. Ext2end o ホームページ: o 管理者: Mike Field o ライセンス: Mike Field の著作物です.安定したら GPL になります. ``LVM'' に対して使うツールで,2 つのユーティリティが含まれていま す.ext2endable は空の ext2 ファイルシステムを再編成して容量を広げ られるようにし,ext2end マウントされていない ext2 ファイルシステム の容量を広げます.ファイルシステムを作成したときに ext2endable を実 行されていないと,ext2end は次の 256MB の倍数までしか容量を増やせま せん. 6.17. E2fsprogs を使った ext2 の修復/解析/作成 o ホームページ: o ダウンロード: o 作者: tytso@mit.edu と card@masi.ibp.fr o Windows NT への移植: o Freshmeat: Console/Filesystems o ライセンス: GPL ext2fsprogs には ext2 ファイルシステム用の重要なユーティリティが含 まれています.すなわち,e2fsck, mke2fs, debugfs, dumpe2fs, tune2fs やその他の重要な ext2 ファイルシステム用ユーティリティです. 6.18. ext2 ファイルシステムエディタ - Ext2ed o ホームページ: ? o 作者: tgud@tochnapc2.technion.ac.il. o ダウンロード先: o ライセンス: GPL EXT2ED は ext2 ファイルシステム用のディスクエディタです.このエディ タは ext2 ファイルシステムの構造を分かりやすく直観的な形で表示し, ファイルシステム上を容易に「動きまわって」必要な修正を加えることが できます. 6.19. Linux ファイルシステムエディタ - lde o ホームページ: ? o 作者: Scott D. Heavner . o ダウンロード先: o ライセンス: GPL lde を使うと Linux のファイルシステムのいくつかを表示します.現在は 16 進ブロックと i-ノードの編集にも対応しており,lde を使って少し作 業するだけで消してしまったファイルを他のパーティションにダンプする ことができます.対応しているファイルシステムは ext2, minix, xiafs です.「LaTeX Introduction to the Minix fs」も入っています. 2.2.x と 2.3.x カーネルでコンパイルするにはソースにパッチを当てる必要があ ります.なぜなら,これらのバージョンのカーネルでは Xia のヘッダがな くなっているからです. 6.20. ext2 用の削除取り消しユーティリティ o ホームページ: o Authors: Gunther Costas, Wilfredo Lugo, Jerry Ramirez o Freshmeat: Console/Filesystems o ライセンス: GPL これはカーネル 2.0.30 用のパッチで,ext2fs に用意されている「削除取 り消し可能」属性を使って削除取り消し機能を追加します.このパッチに は man ページ,削除取り消しデーモン,削除取り消しユーティリティが 入っています.WWW ページをチェックして最新で一番出来のよいバージョ ンを入手してください. 7. Macintosh Hierarchical Filesystem - HFS Macintosh のフロッピーディスクを除く全ての記憶デバイスは 1 つまたは複 数のボリュームにパーティション分割されています.ボリュームは 4 つの要 素を持つことができます.すなわちファイル,ディレクトリ,ディレクトリス レッド,ファイルスレッドです.各要素は,UNIX の i-ノードに似たカタログ レコードによって記述されます.カタログレコードはディスク上のカタログ B-ツリーにまとめられています.ディレクトリの内容はカタログ B-ツリーを 検索して得られます.カタログレコードの外部に場所を取るのはファイルだけ です. Macintosh の「ファイル」は 2 つの要素,すなわちフォークを持ちます.リ ソースフォークはコードセグメント,メニュー要素,ダイアログボックス等を 持つインデックス付けされたファイルで,データフォークは UNIX のファイル の内容と同じセマンティクスを持つ「バイトストリーム」です.それぞれの フォークは 1 つまたは複数の範囲か,あるいは連続した範囲を持つブロック からなります.範囲指示子(extent descriptor)は範囲の開始ブロックと長さ を 32 ビット長にエンコードしたものです.それぞれのフォークの最初の範囲 レコード (領域指示子 3 つ)はファイルのカタログレコードの一部です.それ 以降の範囲レコードは全て範囲オーバーフロー B-ツリーに保存されます. ファイルと B-ツリーが持つ範囲に加えて,ボリュームには 2 つの起動ブロッ ク, 1 つのボリューム情報ブロック,1 つの空き容量ビットマップも含まれ ています.ディスクのデータ構造にはかなりの量の冗長性があるので,クラッ シュからの復帰もより頑健に行えます.これは厳密にはファイルシステムの一 部ではないのですが,いくつかのカタログレコードのフィールドがファインダ ー(ユーザからのファイルシステムへのアクセスを処理し,アプリケーション とデータファイルの関係を自動的に管理するプログラム)と排他的に使われる ように予約されていることは覚えておくべきです.したがって,HFS はファイ ンダーの情報も管理しなければなりません. HFS ボリューム上のそれぞれのファイルとディレクトリは,UNIX ファイルシ ステムの i-ノード番号に似た識別番号を持っています.しかし,ファイルま たはディレクトリを指示するのには,それらの親の識別番号とそれら自身の名 前(NULL を含んでもよい 32 文字の文字列)を使います.この組み合わせはボ リュームのカタログ B-ツリーを検索するための検索キーとなります.カタロ グ B-ツリーは,B-ツリーの各レベルの全てのノードが二重リンクリストの形 になるように互いにリンクされている点と,全てのレコードは葉ノードにある 点が伝統的な B-ツリーとは異なります.この変形 B-ツリーを用いると,リン クリストを使って葉ノードを調べることで同じディレクトリのたくさんの要素 にアクセスできるようになります.厳密に言うと,HFS の B-ツリーは B+-ツ リーの変形ですが,Apple の技術文書ではこれを B*-ツリーと呼んでいます. ルートディレクトリを含むそれぞれのディレクトリはディレクトリスレッドを 持っています.ディレクトリスレッドは空のファイル名を持っています.ディ レクトリスレッドレコードはディレクトリ名とそのディレクトリの親の ID を 持っています.同様に,ファイルスレッドはファイルの名前とファイルが置か れているディレクトリの ID を持っています.全てのディレクトリはディレク トリスレッドを持たなければなりませんが,ファイルスレッドはほとんど使わ れていません.実際にはどちらも HFS の冗長性の例になりますが――障害の ないツリーの場合はスレッドは厳密には必要ありません.ファイルレコードと ディレクトリレコードはどちらもファインダーが使う 32 バイトの情報を持っ ています.カタログ B-ツリーに対する最初の 3 つの範囲指示子はボリューム 情報ブロックに保存されます.もしカタログ B-ツリーファイルがこの 3 つの 範囲よりも大きくなったら,残りの範囲指示子は範囲オーバーフローに保存さ れます. HFS と HFS+ (Sequoia とも呼ばれます)ファイルシステムに関する文書はよく 整備されています.HFS について最も役に立つ技術情報は書籍の Inside Macintosh シリーズに載っています. を見てく ださい.HFS+ ファイルシステムは Technote 1150 で説明されています.これ は からオンライ ンで入手できます.他の技術文書にもたくさんの情報があります. Paul H. Hargrove が集めたリンクを以下に示します: o - HFS Ruminations. o - Hey, Buddy, Can You Spare A Block? o - Alias Manager Q&As o - File Manager File Handling Q&As o - File Manager Volume Handling Q&As o - Bizarre Extension Loading Order: BackQuote Sorts Between "A" and "B" o - Finder Q&As 7.1. Linux から HFS にアクセスする方法 o ホームページ: o 作者: Paul. Hargrove o Freshmeat: Console/Filesystems o ライセンス: GPL 7.2. OS/2 から HFS にアクセスする方法 (HFS/2) o ホームページ: o 作者: Marcus Better HFS/2 を使うと OS/2 のユーザは HFS でフォーマットされたディスク上の ファイルの読み書きを透過的に行えます. HFS/2 を使うと Macintosh のフ ロッピーディスクは単に普通のフロッピーディスクのように使えます. このプログラムの開発はもう止まっています.なぜなら,作者が OS/2 を使わ なくなったからです.このプログラムのメンテナンスをするつもりがあれば, 作者に連絡してください. 7.3. Windows 95/98/NT から HFS にアクセスする方法(HFV Explorer) o ホームページ: o 作者: Lauri Pesonen o アクセス機能: フロッピー,ZIP, 仮想ボリュームファイルの読み書き. HFS とハイブリッド CD の読み込み. o ライセンス: GPL Windows NT と Windows 9x 用の HFS ボリュームブラウザは hfsutils を ベースにしています.Launch pad は Windows 上で動く全ての主要な Macintosh エミュレータに対応しています. 7.4. DOS から HFS にアクセスする方法 (MAC-ETTE) o ホームページ: ? o 作者: Paul E. Thomson o ダウンロード先: o アクセス機能: 読み取り専用 o ライセンス: シェアウェア ($34) Mac-ette は HFS 形式の 1.4MB のフロッピーを PC に付いている 3.5 イ ンチの高密度フロッピーディスクドライブで読み書き,フォーマット,複 製できる PC 用ユーティリティです. 7.5. HFS utils o ホームページ: o 作者: Robert Leslie o OS/2 移植版: hfsutils パッケージは hformat, hmount, hdir, hcopy 等のコマンドライン ユーティリティ群を含むパッケージです.このユーティリティを使うと HFS ボリューム上にあるファイルやディレクトリを読み書きできます. 7.6. MacFS: 移植性の高い Macintosh ファイルシステムライブラリ o 技術報告: o 作者: Peter A. Dinda , George C. Necula, Morgan Price o ダウンロード先: o アクセス機能: 読み書き可能.open/read/write/seek/close に完全対応. o License: 非商用,非軍事利用についてはフリー. を参照. これは色々な OS やプラットフォームに移植できる Macintosh ファイルシ ステム対応ライブラリです.このライブラリはユーザレベル API を作るの に十分なプログラミングインタフェースとこれらに対応するための OS 用 のシステムドライバを提供します.作者はこのようなユーザレベル API と それを元にしたユーティリティプログラム,それから UNIX 用の実験的な 仮想ファイルシステムの実装とテストを行っています.作者は Macintosh HFS とその実装についても説明しており,その設計がリエントラント性に 向いていないこととデータ構造が複雑なために複数のプログラムが動作す る環境では実装が遅くなってしまうことを述べています.性能測定による と,作者らの実装はリクエストのサイズが小さい場合にはファイルの作 成,削除,削除がネイティブの Macintosh の実装よりも高速です が,Berkeley Fast File System (FFS) よりは遅いことがわかっていま す.しかし,ネイティブの Macintosh の実装は大量の読み書きについては 作者らの実装と FFS のどちらよりも高速に動作します. 8. ISO 9660 - CD-ROM ファイルシステム ISO-9660 についての役立つリンク: o - ISO-9660 (別名 ECMA-119 または High Sierra) の仕様 8.1. RockRidge 拡張 ロングファイルネームと UNIX 形式のシンボリックリンクが使える拡張. RockRidge 拡張についての役立つリンク: o - System Usage Sharing Protocol (SUSP, IEEE P1281) o - Rock Ridge Interchange Protocol (RRIP, IEEE P1282) 8.2. Joliet 拡張 Joliet は Microsoft による ISO 9660 の拡張であり,ファイル名に Unicode 文字を使えるようになります.この機能は国際化の際に便利です. RockRidge 拡張と同様に,Joliet でもロングファイルネームを扱えます. 8.3. ハイブリッド CD-ROM ハイブリッド CD はひとつのディスク上に 3 つのファイルシステムを持って います(ISO9660/RR, Joliet, HFS).このような CD-ROM は DOS, UNIX, Macintosh, Windows 9x/NT からアクセスできます. 3 つのファイルシステム は同じデータを使っており,メタデータだけが 3 種類書き込まれています. 8.4. ISO9660 上に Novell NetWare のインデックスを持たせたもの (執筆予定) 8.5. Linux から Joliet にアクセスする方法 o ホームページ: o ライセンス: GPL 8.6. BeOS から Joliet にアクセスする方法 o ホームページ: o 作者: Gertjan van Ratingen o ライセンス: ? このドライバは ISO 9660 ドライバを更新して Joliet 拡張を使えるよう にします. 8.7. OS/2 から Joliet にアクセスする方法 o ダウンロード先: o 作者: IBM o ライセンス: ? Jcdfs.zip アーカイブには,Joliet レベル 3 に対応している OS/2 用の CDFS.IFS が入っています. 8.8. Linux でオーディオ CD をファイルシステムとして扱う方法 o ホームページ: o ダウンロード: ? o 作者: Mariusz Borkowski o ライセンス: ? このカーネルモジュールを使うと,オーディオ CD を通常のファイルシス テムとしてアクセスできます. 8.9. BeOS でオーディオ CD をファイルシステムとして扱う方法 o ホームページ: o ダウンロード先: (PPC/Intel アーカイブ) o 作者: Marco ? o ライセンス: ? このファイルシステム用アドオンを使うと,(お使いのドライブが対応して いれば)普通のオーディオ CD を WAV ファイル群のように扱えます.ファ イルのコピーや MP3 へのエンコード,ゆっくり演奏することや速く演奏す ること,あるいは逆向きに演奏することさえもできます. 8.10. Linux から全てのトラックにアクセスする方法 (CDfs) o ホームページ: o ダウンロード: o 作者: Michiel Ronsse o ライセンス: GPL CDfs は Linux 用のファイルシステムで,CD 上の全てのトラックと起動イ メージを通常ファイルとして「エクスポート」します.これらのファイル はマウント(例: ISO イメージや起動イメージの場合),コピー,演奏(オー ディオトラックの場合)等ができます.このファイルシステムの開発のいち ばんの目標は,古い ISO セッション内の情報の「鍵を外す」ことでした. このファイルシステムを使うと,不正なマルチセッションディスク(例えば マルチセッションでなく,複数のシングルセッションの入ったディスク) 上のデータにアクセスすることもできます. 8.11. ハイブリッド CD-ROM の作成(mkhybrid) o ホームページ: o ダウンロード先: o 作者: o ライセンス: ? ISO9660/HFS/Joliet が共存したハイブリッド CD ボリュームを作ります. 9. 他のファイルシステム 9.1. ADFS - Acorn Disc ファイルシステム Acorn Disc ファイルシステムは,Acorn 製の ARM ベースの RISC PC システ ムと,Acorn 製の Archimedes クラスのマシンで動作する RiscOS の標準ファ イルシステムです. Linux カーネル 2.1.x 以降はこのファイルシステムに対応しています.Linux 版のファイルシステムを実装したのは Russell King です. 9.2. AFFS - Amiga 高速ファイルシステム 高速ファイルシステム(Fast File Sysutem, FFS)は AmigaOS 1.3 (34.20) 以 来 Amiga(tm) システムのハードディスクで使われている標準のファイルシス テムです. Linux カーネル 2.1.x 以降はこのファイルシステムに対応しています.Linux 版のファイルシステムを実装したのは Ray Burr です. 9.3. BeFS - BeOS のファイルシステム BeFS は BeOS で使われている``ジャーナル''ファイルシステムです.BeFS の 詳しい情報については書籍 Practical File System Design with the Be File System または Linux 用 BeFS ドライバのソースコードを参照してください. Linux 用の BeFS の実装: o ホームページ: o ダウンロード先: o 作者: Makoto Kato o アクセス機能: 読み取り専用 o ライセンス: GPL このドライバは x86 用と PowerPC 用の Linux に対応しています.また, このドライバはハードディスクとフロッピーディスクの読み取りにだけ対 応しています. 9.4. BFS - UnixWare の起動ファイルシステム UnixWare の BFS ファイルシステムは特殊な目的のファイルシステムです.こ のファイルシステムは UnixWare のカーネルのロードと起動のために設計され ています.BFS は ``連続的な割り当てを行うファイルシステム'' として設計 されています.BFS は 1 つの(ルート)ディレクトリにしか対応しておらず, 通常ファイルしか作成できません.つまり,サブディレクトリやデバイスファ イルやソケット等の特殊ファイルは作成できません. BFS の詳しい情報については を見て ください. o - スーパ ーブロック o - i-ノード o - 記憶ブ ロック Linux から BFS にアクセスできます: o ホームページ: o ダウンロード先: Linux カーネル内に含まれています.ホームページから パッチを入手できます. o 作者: Tigran A. Aivazian o ライセンス: GPL o アクセス機能: 読み書き可能 (書き込み部分には制限があり,まだコンパ クト化はできません) BFS 対応はバージョン 2.3.25 以降の Linux カーネルに含まれています. これより古いカーネルを使っているのであれば,BFS のホームページにこ のファイルシステムに対応するためのパッチがあるかどうかを確認してく ださい.このホームページにはまだ公式カーネルに取り込まれていないバ グ修正や改良が入ったパッチもあります. 筆者による古い実装もありますが,これは時代遅れになっています.筆者とし てはこのコードを FreeBSD に移植する予定です. o ホームページ: o ダウンロード先: o 作者: Martin Hinner o ライセンス: GPL o アクセス機能: 読み取り専用 これは Linux 用の読み取り専用の UnixWare BFS 対応です.これを使うと UnixWare の /stand パーティションやフロッピーディスクを読み取り専用 でマウントできます.筆者は読み書き対応のバージョンは考えていないの ですが,欲しいという方はメールを下さい.Linux 用の ``VxFS'' 対応も 調べるとよいかもしれません. 9.5. CBM FS - Commodore 1581/1541 のファイルシステム このファイルシステムは Commodore 1581/1541 で使われていました.読み取 り専用の Linux 用ファイルシステムドライバがあります. o ホームページ: o ダウンロード先: o 作者: Dan Fandrich o ライセンス: GPL o アクセス機能: 読み取り専用 読み取り専用の Commodore 1581/1541 ファイルシステムドライバで,カー ネルモジュールとしてインストールされます.3.5" のフロッピードライブ に入っている Commodore 1581 のディスクと,任意のフロッピーディスク にコピーした 1541 のディスクイメージをマウントできます. PETSCII か ら ASCII への変換も自動的に行われます.1581 ディスク上のパーティ ションはサブディレクトリとしてアクセスされます. 9.6. CrosStor ファイルシステム これは High throughput filesystem (HTFS) の新しい名前です.詳しくは CrosStor のホームページ を見てください. 9.7. DTFS - Desktop ファイルシステム Desktop ファイルシステムの設計の目的は,小さなコンピュータシステムでは 環境はどうなるかという考えからの影響を受けています.DTFS は通常ファイ ルに格納されたデータを圧縮し,必要なディスク容量を減らします (ディレク トリはそのまま圧縮しません).圧縮は一度に 1 ページずつ「オン・ザ・フラ イ」で行われます. DTFS は LZW 圧縮と非圧縮に対応していますが,ユーザ が独自のアルゴリズムを追加できます.i-ノードの先行割り当てをやめること によりディスクをいくらか節約できます.どのディスクブロックもいつでも i-ノードとして割り当てられる対象になっています.それぞれの i-ノードは B+-ツリーに格納されます.詳しい情報については USENIX の DTFS に関する 論文を見てください ( から入 手できます). CrosStor は UnixWare と SUN Solaris 用には読み書きが可能な商用ドライバ を出しています: o ダウンロード先: o ライセンス: Commercial? o アクセス機能: 読み書き可能 9.8. EFS - Enhanced ファイルシステム (Linux) Enhanced ファイリングシステムプロジェクトの目的は,マウントできる 「ファイルシステム」を管理者が定義できるような新しいファイリングシステ ムをブロックデバイス群(ハードディスクまたはパーティション)の上に作成す ることです.最初の開発対象は Linux で,最終的には他の OS も対象にする 予定になっています.もうひとつの目的は,システムの動作中にパーティショ ンの集合からファイルシステムを追加/削除できるようにすることと,システ ムの動作中にパーティションを集合に追加できるようにすることです.主な 2 つの目的は,たくさんのマウント可能なファイルシステムが記憶空間の同じプ ールを共有できるようにし(IE は複数のユーザのホームディレクトリをニュー ススプールとして同じディスク上に持っていますが,別々のアカウンティング を行います),ハードディスクの追加を容易にして容量を増やせるようにする こととも言えます. 他に作者らが実装しようとしている機能は ``ロギング/ジャーナリング''の実 装,できるかぎりたくさんの OS への対応(ただし,最初のうちは全ての作業 が Linux 上で行われています),起動時に無駄な quota チェックで無駄な時 を過ごさなくてもよいような FS 組み込みの quota 機能――ロギングを行え ば, fsck が不要なのと同じように quota チェックも不要になるはずです. 作者達が実現したいことは,4 つのハードディスクにわたって 10G のニュー スが置かれているシステムでも,停電があった後に完全な quota チェックを した上で 20 秒未満で全てのファイルシステムをマウントすることです! Enhanced FS のホームページは です.詳しくは Contact Russell Coker に連絡して ください. 9.9. EFS - Extent filesystem (IRIX) Extent File System (efs) は Silicon Graphics の昔のブロックデバイス ファイルシステムで,バージョン 6.0 より前の IRIX で広く使われていまし た.6.0 からは xfs が IRIX に付属しており,ユーザは xfs ファイルシステ ムに移行することが推奨されています.バージョン 6.5 以降の IRIX では読 み取り専用のサポートしか行われなくなります.ただし,efs は SGI のソフ トウェア配布 CD で今でも非常によく使われています. Linux から EFS ファイルシステムにアクセスするためのカーネルモジュール は 2 つあります. o ホームページ: o ダウンロード先: o 作者: Al Smith o ライセンス: GPL o アクセス機能: 読み取り専用 efs カーネルモジュールは Linux 2.2 カーネル向けに extent ファイルシ ステムを実装したものです.efs の実装(efsmod-0.6.tar.gz)は元々は 1.x カーネル用に Christian Vogelgsang が作成しました.この実装のコード は完全に書き直され,エンディアン非依存になりました. efs モジュール を使うには少なくともバージョン 2.2 のカーネルが必要です.IRIX の CD をマウントするには,お使いの CD-ROM が 512 バイト/ブロックを扱える 必要があります.このバージョンの efs はハードディスク上のパーティ ションに対応しており,Linux カーネルツリーに efs コードをインストー ルできるカーネルパッチも含まれています.巨大なファイルの扱いも大幅 に改善されています. オリジナルの efsmod も入手できます: o ホームページ: o ダウンロード先: o 作者: Christian Vogelgsang o ライセンス: GPL o アクセス機能: 読み取り専用 efs-mod 0.6 は Linux で EFS を読み書きするためのオリジナルのモジュ ールです.バージョン 0.6 は完成していますが,時間がないことと書き込 み部分の実装に関する情報不足のためにプロジェクトは凍結されました. 9.9.1. EFS と FFS のためのライブラリ,libfs o ダウンロード先: o 作者: J.A. Gutierrez o ライセンス: GPL o アクセス機能: IRIX EFS と Sun UFS の読み取り専用アクセスが可能. EFS と FFS を x86 用 Windows NT, SunOS, IRIX で読み込むための C ラ イブラリです.使い方は簡単であり(POSIX 風のインタフェースです),既 存コードとリンクすることも簡単です.FTP サーバには UFS と EFS ファ イルシステムを対話的に読み込むための Windows NT 用バイナリである winefssh.exe と winufssh.exe もあります.あまりまとまっておらず文書 もないパッケージですが,このパッケージを便利だと思う人もいるでしょ う. 役に立つリンク: o IRIX EFS filesystem brief description: 9.10. FFS - BSD Fast filesystem これはほとんどの BSD UNIX(FreeBSD, NetBSD, OpenBSD, Sun Solaris, ...) で使われているネイティブのファイルシステムです. ``SFS, secure filesystem'' や ``UFS'' も見てください. 9.11. GPFS - General Parallel Filesystem GPFS は RS/6000 SP(tm) サーバ用に設計された UNIX(tm) OS 形式のファイル システムです.GPFS では複数ノード上にあるアプリケーションがファイルの データを共有できます.また,非常に巨大なファイルにも対応していますし, 複数ディスクを使ったストライピングを行って性能を向上させることもできま す.GPFS はアプリケーションノードに直接割り当てられていないディスクへ のアクセスのオーバーヘッドを減らす共有ディスクモデルに基づいており,ま た分散ロッキングプロトコルを用いて,任意のノードからのアクセスに対して データが完全に一貫していることを保証しています.GPFS は AIX(tm) 標準の ファイルシステムインタフェースも多く持っており,ほとんどのアプリケー ションは修正や再コンパイルの必要なしに実行できます.これらの機能は,SP システムの全てのノードから同じデータに対する高速なアクセスを可能とし, 様々なノードで起こる操作に対して完全にデータの一貫性を保つことができま す.複数ノードにわたる操作やコンポーネントの異常があっても,GPFS は継 続に十分なリソースが存在すると仮定して操作を継続しようとします. o 9.12. HFS - HP-UX Hi performance filesystem これはこの HOWTO 文書に出てくる 2 つめの `hfs' です.この名前は古いバ ージョンの HP-UX でも使われています. 9.13. HTFS - High throughput filesystem 役に立つリンク: o SCO OpenServer 5 filesystems whitepaper: 読み書き可能な商用ドライバが Crostor から入手できます: o ダウンロード先: o ライセンス: 商用? o アクセス機能: 読み書き可能 9.14. JFS - ジャーナルファイルシステム (HP-UX, AIX, OS/2 5, Linux) o ホームページ: o ダウンロード: o 作者: Steve Best and Dave Kleikamp o ライセンス: GPL o アクセス機能: ? JFS は IBM のジャーナルファイルシステム技術です.現在は IBM エンタ ープライズサーバで使われており,高スループットのサーバ環境向けに設 計されています. 9.15. LIF - 論理交換フォーマット (HP-UX) このファイルシステムは古いバージョンの HP-UX で使われています.この ファイルシステムは ROM や起動セクタの中にもあります. 9.16. LFS - Linux ログ構造化ファイルシステム Linux ログ構造化ファイルシステム(Linux Log structured filesystem)の実 装は d(t)fs と呼ばれています: o ホームページ: o 作者: Christian Czezatke o ライセンス: GPL o アクセス機能: 読み書き可能.ロングファイルネーム等 d(t)fs は Linux 用ログ構造化ファイルシステムのためのプロジェクトで す.現時点では,ファイルシステムはだいたい完成して動作しています が,まだコードをきれいに書き直したものはありません. ホームページでは dtfs メーリングリストのアナウンスもそのうちに行われる ようです.詳しくは を 見てください. o - kfs のホームページ. Cornelius "Kees" Cook は dtfs が生まれる前から Linux Log--Structured Filesystem プロジェクトを始めています. o - 別の (死んだ)LFS の 実装 ;-) o - Margo Seltzer による LFS のページ 9.17. MFS - Macintosh filesystem MFS は Macintosh ファイルシステムです.これは HFS/HFS+ の代わりとなる ものです.詳しい情報をお持ちであれば,筆者にメールをください. 9.18. Minix ファイルシステム これは Minix ネイティブのファイルシステムです.これは初期バージョンの Linux でも使われていました. 9.19. NWFS - Novell NetWare filesystem NWFS は Novell NetWare OS のネイティブファイルシステムです.これは FAT ベースのファイルシステムを改造したものです.このファイルシステムには 2 つの変種があります.16 ビットの NWFS 286 は NetWare 2.x で使われてお り, NetWare 3.x, 4.x, 5 では 32 ビットの NWFS 386 が使われています. 9.19.1. NetWare filesystem / 286 (執筆予定) 9.19.2. NetWare filesystem / 386 (執筆予定) 9.19.3. Linux から NWFS-386 にアクセスする方法 o ホームページ: o ダウンロード先: o 作者: Timpanogas Research Group, Inc. (jmerkey@timpanogas.com) o ライセンス: GPL o アクセス機能: 読み取り専用 このドライバを使うと NWFS-386 ファイルシステムを Linux にマウントで きます. 9.20. NSS - Novell Storage Services これは新しい 64 ビットの``ジャーナル'' ファイルシステムであり,``B-ツ リー''アルゴリズムを使っています.このファイルシステムは Novell NetWare 5 で使われています. o - NSS Whitepaper 9.21. ODS - On Disk Structure filesystem これは OpenVMS と VMS のネイティブなファイルシステムです. 9.22. QNX filesystem このファイルシステムは QNX で使われています.ファイルシステムには主な バージョンが 2 つあります.QNX 2 で使われているバージョン 2 と QNX 4 で使われているバージョン 4 です.QNX 4 はバージョン 2 に対応していませ んし,その逆も同じです. QNX4 ファイルシステムは Linux 2.1.x 以降でアクセスできるようになりまし た.'QNX filesystem support' の問いに ``Y'' と答えてください. o ダウンロード先: カーネルに入っています ;) o 作者: Frank Denis (管理者), Richard Frowijn o ライセンス: GPL o アクセス: 読み取り (複数ブロックにわたるファイルは除く),書き込 み(テスト中) これは QNX 4 ファイルシステム用のドライバです. 9.23. Reiser ファイルシステム Reiserfs は古典的な B-ツリーアルゴリズムの変種を使ったファイルシステム です.ext2fs のように普通のブロック割り当てを行うファイルシステムとの 比較を同じ OS とバッファリングコードを使って行うと以下のような結果が出 ます.まずこれらのアルゴリズムは,ノードの大きさとかけ離れたサイズの ファイル (大きなものも小さなものも)では時間性能の効率が良くなります. 次にファイルの大きさがノードの大きさに近付くにつれて時間性能の点では効 率が悪くなり,空間性能は著しく向上します.それからファイルサイズが実質 的にノードのサイズ(4K)より小さくなってくると空間性能も時間性能も極めて 効率的になります.そして 100 バイト程度のファイルで性能向上は最も大き くなります.小さなファイルで空間性能と時間性能が向上することは,ファイ ルシステム層より上にレイヤを用意して小さなオブジェクトをまとめるべきだ という OS 設計の一般的な仮定をそろそろ見直してもよいことを示していま す. [ 訳注: 上の説明はノードの大きさを軸に行われていますが,時間効率と空間 効率を軸に理解すると分かりやすいと思います. 時間効率: ノードとの差が大きいほうがよい(ノードと同等のサイズでは効率が悪 い) 空間効率: ファイルサイズが小さいほうがよい ] 役に立つリンク: o Reiser fs のホームページ 9.24. RFS (CD-ROM 用ファイルシステム) Sony の追記型のパケット書き込みファイルシステムです. 9.25. RomFS - Rom filesystem Linux 用 RomFS の実装は Janos Farkas が行いま した.詳しい情報については /usr/src/linux/Documentation/filesystems/romfs.txt を見てください. 9.26. SFS - Secure filesystem SFS ファイルシステムは FFS ファイルシステムの変化形です.SFS ファイル システムの起動ブロック,スーパーブロック,記憶ブロック,空きブロックは 管理レベルでは FFS と同じです.ただし i-ノードは FFS の i-ノードと異な ります.奇数番号の i-ノードはセキュリティ情報のために予約されていま す.セキュリティ情報としてはアクセス制御リストの情報が保持されていま す.筆者は SFS が他の機能を持っているかどうかはよく知りません. SFS 関連リンク: o - UnixWare 7 の文書: SFS ファイルシステム 9.27. Spiralog ファイルシステム(OpenVMS) Spiralog は OpenVMS 用の 64 ビット高性能ファイルシステムです. Spiralog は ``ログ構造化''技術と伝統的な ``B-ツリー''技術を組み合わせ て一般的な抽象化を行っています.B-ツリーによるマッピング機構では先行書 き込みロギングを用いて安定性と修復性の保証を行っています. Spiralog 関連のリンクは Digital にあります: o - OpenVMS Alpha における Spiralog ファイルシステム o - Spiralog ファイルシ ステムの概要 o - Spiralog ファイルシ ステムを使ったサーバの設計 9.28. System V のファイルシステムと System V 由来のファイルシステム System V Linux のホームページは です.このプロジェクトの管理 者は です. 9.28.1. AFS - Acer Fast Filesystem Acer Fast ファイルシステムは SCO Open Server で使われています.これは System V リリース 4 のファイルシステムに似ていますが,ブロックの連鎖フ リーリストではなくビットマップを使っています. 9.28.2. EAFS - Extended Acer Fast Filesystem AFS ファイルシステムは 255 文字までのファイル名を扱えるように「拡張」 できます.ただしディレクトリのエントリは 14 文字のままです.このファイ ルシステムは SCO OpenServer で使われています. 9.28.3. Coherent ファイルシステム 9.28.4. S5 これは UnixWare で使われているファイルシステムです.これはたぶん System V と互換ですが,筆者はまだ確認していません.詳しい情報について は . を 見てください. 9.28.5. S51K - SystemV 1K 9.28.6. Version 7 ファイルシステム このファイルシステムは PDP-11 マシンの Versino 7 Unix で使われていまし た. 9.28.7. Xenix ファイルシステム 9.29. Text - (Philips の CD-ROM ファイルシステム) オーディオ CD にディスクとトラックに関するデータをエンコードするために Philips が作った標準です. 9.30. UDF - Universal Disk Format (DVD-ROM のファイルシステム) Linux 用の UDF ファイルシステムドライバがあります: o ホームページ: o ダウンロード先: o 作者: Dave Boynton o メーリングリスト: o ライセンス: GPL o アクセス機能: 読み取り専用 9.31. UFS 注意: ``BSD Fast Filesystem'' のことを間違って UFS と呼ぶ人がよくいま す.FFS と UFS は別のファイルシステムです.最近の UNIX は全て,UFS で はなく FFS ファイルシステムを使っています. UFS は初期バージョンの BSD で使われていました.ソースコードは から入手できます. 役に立つリンク: o - Sun の UFS の書 き込みにおけるクラスタ化の実装 ``BSD FFS'' も参照してください. 9.32. V7 ファイルシステム V7 ファイルシステムは UNIX タイムシェアリングシステムの第 7 版で使われ ていました(1980 年頃).詳しい情報については第 7 版のソースコードを見て ください.これは the Unix Archive: から入手できます. 9.33. VxFS - Veritas filesystem (HP-UX, SCO UnixWare, Solaris) これは Veritas Inc. が出している商用ファイルシステム開発ツールです.こ れは HP-UX, SCO UnixWare, Solaris 等のシステムで見かけます. VxFS は非 常に面白い機能を持っています: 範囲ベースの割り当て,ジャーナリング,ア クセス制御リスト(ACL), 2 テラバイトまでの巨大なファイルへの対応,オン ラインバックアップ(スナップショットファイルシステム), BSD スタイルの quota やその他たくさんの機能です. VxFS は 3 つのバージョンが利用できます: バージョン 1: これがオリジナルの VxFS です.一般には使われていません バージョン 2: ファイル集合と動的な i-ノードの割り当てに対応 バージョン 4: 最新バージョン巨大なファイルや quotas に対応 HP-UX, Solaris, UnixWare 版のファイルシステムは多少異なる構造を持って いるので,別のシステムに接続しても読むことはできないと思います. VxFS 関連リンク: o - Veritas Inc o - VxFS ODM FS Admin - UnixWare 7 (文書.非常に良いリンクです) o - VxFS FS Manager - UnixWare 7 (文書) o - VxFS - Reliant Unix ``VxVM (Veritas ボリュームマネージャ)'' と ``ジャーナルファイルシステ ム''も参照してください. 9.33.1. VxTools VxFS 2, 4 にアクセスできる UNIX 用のコマンドラインユーティリティが GNU GPL の下で入手できます: o ホームページ: o ダウンロード先: o 作者: Martin Hinner o メーリングリスト: o ライセンス: GPL o アクセス機能: 読み取り専用,コマンドラインユーティリティ Vxtools は Linux から(たぶん他の UNIX からでも) VxFS ファイルシステ ムにアクセスできるようにするコマンドラインユーティリティです.現在 のバージョンは VxFS 2, 4 を読めます. 筆者は Linux 用の VxFS カーネルドライバの開発を計画しています. 筆者の知る限りでは, Rodney Ramdas が FreeBSD 用 の VxFS を開発中です.筆者は彼のプロジェクトの進行状況は知らないので, 詳しい情報が欲しい方は直接彼に聞いてください. 9.34. XFS - 拡張ファイルシステム (IRIX) XFS(tm) は,デスクトップワークステーションからスーパーコンピュータまで の Silicon Graphics[TM] システムの次世代ファイルシステムです. XFS は 完全な 64 ビット機能を持ち,巨大なファイルや 1 テラバイトものファイル システムを容易に扱えます.XFS ファイルシステムにはボリューム管理も統合 されており,速度保証 I/O や, 高速で信頼性の高い復旧を可能にする``ジャ ーナリング''機能も組み込まれています.動作中にバックアップを取れるの で,システム管理の手間も大幅に節約できます. XFS は非常に高性能なマシン向けに設計されています.300MB 毎秒を超え続け るデータを処理するデモが CHALLENGE システムで行われました.XFS ファイ ルシステムは CHALLENGE MP アーキテクチャに相応しい性能を発揮できます. 従来のファイル,ディレクトリ,ファイルシステムはサイズが大きくなるにつ れて性能は低下していましたが,XFS ファイルシステムではそのような損失は ありません.例えば,XFS では 1 つのディレクトリに 3200 万個までのファ イルを置くテストが行われています. XFS はジャーナルファイルシステムです.XFS は i-ノード,ディレクトリ, ディスクへのビットマップに対する変更が,元のエントリが更新される前に記 録されます.更新が行われる前にシステムがクラッシュしたとしても,ログを 使ってその更新をやり直すことができ,最初の意図した通りの更新を行えま す. XFS は空間マネージャを使ってファイルシステムのためのディスク空間の割り 当てと i-ノードの制御を行います.XFS は名前空間マネージャを使ってディ レクトリファイルの割り当てを制御します.これらのマネージャは B-ツリー によるインデックス付けを行ってファイルの位置情報を保存し,ファイル情報 を取り出すために必要なアクセス時間を大幅に減らしています. i-ノードは必要に応じて作成されますし,置かれる場所もディスクのパーティ ション上の特定の領域には制限されていません.XFS は i-ノードの場所をそ の i-ノードが参照しているファイルやディレクトリのそばに置こうとしま す.非常に小さなファイル(シンボリックリンクやいくつかのディレクトリ)は i-ノードの一部として格納されます.この方法によって性能は向上し,ディス ク容量も節約できます.大きなディレクトリではディレクトリ内のファイルの インデックス付けに B-ツリーを使い,ディレクトリの検索やファイルの追 加/削除を高速に行えます. XFS 関連の役に立つリンク: o XFS whitepaper XFS の Linux 移植版は SGI Inc. から GNU GPL に従って入手できます: o ホームページ: o ダウンロード先: o 作者: SGI Inc., o ライセンス: GPL o アクセス機能: 読み書き可能 9.35. Xia FS このファイルシステムは Linux で古い Minix ファイルシステムを置き換える ために開発されました.このファイルシステムの作者は Franx Xia です. 10. raw パーティション 10.1. DBsnapshot を使った raw パーティションのバックアップ (執筆予定: www.crosstor.com) 11. 付録 11.1. ネットワークファイルシステム ネットワークファイルシステムはこの HOWTO の対象外ですが,説明をしてお くべきだと判断しました. 筆者が知っているものを以下に列挙します: 11.1.1. AFS - Andrew Filesystem o AFS FAQ が に あります. o ほとんどのプラットフォーム用(Windows 98 を除く)の商用のクライアント とサーバが IBM から入手できます.詳しくは を見てくださ い. o Arla Team による Unix 用のフリーなクライアントが から入手できます. o フリーなサーバも準備されつつありますが完成はしていません. 11.1.2. CODA o ホームページ: o ダウンロード: o 作者: CMU Coda Group . o ライセンス: GPL o アクセス機能: 読み書き可能 CODA は,非接続での操作やサーバの複製などの新しい機能を持った分散 ファイルシステムです. 11.1.3. NFS - Network filesystem (Unix) 11.1.4. NCP - NetWare Core Protocol (Novell NetWare) 11.1.5. SMB - Session Message Block (Windows 3.x/9x/NT) このプロトコルは Windows 方面で使われています. 11.1.6. Intermezzo o ホームページ: o ダウンロード: o 作者: Stelias and Redhat . o ライセンス: GPL o アクセス機能: 読み書き可能 Intermezzo は Linux 用の分散ファイルシステムです.これは CODA に触 発されたものですが,永続的キャッシュとしてディスクファイルシステム を使っています. Intermezzo は非接続での操作に対応していますが,認 証機構はまだ実装されていません. 11.2. 暗号化ファイルシステム 11.2.1. CFS o ホームページ: ? o ダウンロード先: ? o 作者: Matt Blaze o ライセンス: ? o アクセス機能: 読み書き可能.DES/3DES を使用. CFS は暗号化サービスを UNIX(tm) のファイルシステムに加えます.CFS は標準の UNIX ファイルシステムのインタフェース経由で暗号化ファイル にすることによってシステムレベルでの安全なファイル保存に対応しま す.ユーザは保護しようと考えているディレクトリに暗号の鍵を関連付け ます.このディレクトリ内のファイルは(途中にこのディレクトリを含むパ スも同様),ユーザが介入しなくても,指定されたキーを使って透過的に暗 号化と復号化がなされます.平文(ひらぶん)はディスクに格納されません し,リモートのファイルサーバにも送られません.CFS は現在のワークス テーションで強力なセキュリティと高性能を実現するために,DES ストリ ームと暗号表による暗号化モードを組み合わせるという新しい方法を採用 しています.CFS は下位の記憶層として,どんなファイルシステムでも修 正なしで使えます.これには NFS といったリモートのファイルサーバも含 まれます.ファイルのバックアップといったシステムの管理作業も普通に 行えますし,暗号の鍵に関する知識も必要ありません. 11.2.2. TCFS o ホームページ: o ダウンロード先: o 作者: Luigi Catuogno , Aniello Del Sorbo , Luigi Della Monica , G.Cattaneo , G.Persiano ( ), Ermelindo (Erry) Mauriello , Angelo Celentano , Andrea Cozzolino . o ライセンス: GPL o アクセス機能: CBC-DES/3DES/RC5/IDEA 等を透過的に使って読み書きを行 えます. TCFS と CFS の主な違いは,TCFS を使うことによって得られるユーザに対 する透過性です.実際のところ CFS はユーザ空間で動作し,TCFS はカー ネル空間で動作するため,TCFS の方が性能的にもセキュリティ的にも優れ ています.TCFS の動的暗号化モジュール機能を使うと,ユーザは好みの暗 号化エンジンを TCFS に使わせることができます.現在は Linux でしか使 えませんが,近いうちに NetBSD 版も公開されます.その後の近い将来に は,他のファイルシステムそれから NFS にも対応します. 11.2.3. SFS ( 執筆予定: ) 11.2.4. VS3FS: Steganographic File System for Linux o ホームページ: o ライセンス: ? o アクセス機能: ? fspatch は steganographic ファイルシステムに対応するためのモジュー ルを導入するためのカーネルパッチです.以前は vs3fs として知られてい たこのファイルシステムは,ディスク上の情報を全て暗号化するだけでは なく,ファイルがディスク上に存在することさえわからなくなるように情 報を隠してしまおうとする実験的なファイルシステムでした.こうするこ とにより,機密情報を洩らしてしまうことなく,その情報をディスク上に 置けるようになります.ディスクのパスワードが洩れてしまうような極端 な状況であっても,偽の文書をディスクの他の場所に置いてごまかすこと ができるでしょう.他の情報がディスク上にあるかどうかを調べることは 不可能なはずです. 11.3. ファイルシステムのベンチマーク用ユーティリティ 11.3.1. IOzone o ホームページ: o ダウンロード: o ライセンス: 自由に再配布可能 IOzone はファイルシステムのベンチマーク用ツールです.このベンチマー クは様々なファイル操作の生成と測定を行います. IOzone はいろいろな マシンに移植されており,さまざまな OS 上で動作します. 11.4. 自分で独自にファイルシステムのドライバを書く方法 11.4.1. DOS 筆者は DOS のファイルシステムドライバ(ネットワークリダイレクタ)に関す る良いページをネット上で見たことがありません.最も良い情報源は Ralf Brown の割り込みリストと ``iHPFS'' のソースコードです. 11.4.2. OS/2 o o - 32 ビットの OS/2 用デバイスドライバと IFS サポートです.32 ビット のカーネルサービス(DevHelp)と 32 ビットの OS/2 リング 0 コードに対 するユーティリティ機能(デバイスドライバとインストール可能なファイル システムドライバ)を提供します. 11.4.3. Windows NT Microsoft の IFS キットのページ ( ) は便利で, Windows NT 用ファイ ルシステムを開発を覚えるには最善でしょう(1000 ドルかかりますが). Windows NT 用のファイルシステムドライバの書き方については による を参照して ください. 11.5. 関連文書 o - ファイ ルシステムに関する良い説明がある. o - Linux overlay の説 明. による. o - Linux trustees プロジェクトのページ o - 透過的な暗号化ファイルシステム(TCFS)の ページ o - Large file summit - 32 ビットコンピュータで 2GB を超えるファイルを扱う問題に挑戦 o - CODA プロジェクト (AFS ベースの分散 ファイルシステム AFS) o - LFS 関連の論文 o - Linux Kernel Hacker's guide o - Large disk HOWTO o - The Linux devfs o - The Global File System (GFS) o - The Toronto Virtual Filesystem/2 o OS/2 用の動的 RAM ドライブ IFS ドライバ o - UnixWare と SCO Unix に関するオンライン文書 o - UnixWare 7 に関するオンライン文書 o - OS/2 LAN Server 4.0 の内部 について o - Linux UserFS.ファ イルシステムを実装するプロセスをユーザが書けるようにします. o - Stein Gjoen's Multi Disk System Tuning HOWTO o - Linux Today: Kragen に よる見事なファイルシステム一覧 o - Kristian Kohntopp による Unix ファイルシステムのまとめ (ドイツ語) 12. 日本語訳について 日本語訳は Linux Japanese FAQ Project が行いました.翻訳に関するご意見 は JF プロジェクト 宛に連絡してください. 改訂履歴を以下に示します. v0.7.3j, 21 Feburary 2000 翻訳: 藤原輝嘉 校正/技術チェック: o 後藤正徳 o 武井伸光