NT File System
出典: フリー百科事典『ウィキペディア(Wikipedia)』
NTFS | |
---|---|
開発者 | Microsoft |
正式名 | New Technology File System |
導入 | 1993年7月 (Windows NT 3.1) |
パーティション識別子 | 0x07(MBR) EBD0A0A2-B9E5-4433- 87C0-68B6B72699C7 (GPT) |
構造 | |
ディレクトリ | B+ 木 |
ファイル配分 | ビットマップ/Extents |
不良ブロック | ビットマップ/Extents |
限度 | |
最大ファイルサイズ | (実施)16TiB (理論上)16EiB |
最大ファイル数 | 4,294,967,295 |
最大ファイル名長さ | 255文字 |
最大ボリュームサイズ | (実施)256TiB (理論上)16EiB |
ファイル名の使用許可文字 | 一文字以上, /, \ (¥)[1], *, :, ?, <, >, ", | 以外使用可能 |
機能 | |
記録可能なタイムスタンプ | アクセス, 作成, 修正, POSIX変更 |
日付範囲 | 1601年1月1日 - 60056年5月28日 |
フォーク | 可能 |
属性 | 読み取りのみ (R), 隠し (H), システム (S), アーカイブ (A) |
ファイルパーミッション | ACL |
透過的圧縮 | ファイル毎, LZ77 |
透過的暗号化 | ファイル毎, DESX: (Windows 2000) トリプルDES: (Windows XP) AES: (Windows XP SP1, Windows Server 2003以降) |
サポートOS | Windows NT 3.1から4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista |
NT File System(NTFS)とは、Windows XPやWindows Vista、Windows Server 2003などのWindows NT系OSで使われている標準のファイルシステム。
MS-DOS やWindows 95などのWindows 9x系で採用されたFATと比較すると、信頼性や機能性、安定性が向上している。
目次 |
[編集] NTFS の歴史
[編集] バージョン
- NTFS v1.0
- NTFS v1.1
- NTFS v1.2(v4.0)- NT 3.51とNT 4.0まで使用されたバージョン
- NTFS v3.0(v5.0)- 2000で使用されたバージョン
- NTFS v3.1(v5.1)- XP, Server 2003, Vistaで使用されているバージョン
下の三つはそれぞれが実装されたWindows NTのバージョンから、括弧内のバージョンで呼ばれることがある。
[編集] 互換性
- Windows NT 4.0のNTFS 1.2とWindows 2000/XPのNTFS 3.xは下位互換性が無いため、Windows NT 4.0上からWindows 2000/XPで作成したNTFSボリュームにアクセスするには、Service Pack 4以上を適用する必要がある。
[編集] NTFS の特徴
[編集] 大容量化
1ボリューム当たりのサイズの推奨最大サイズは2TiBであるがそれ以上のファイルシステムも作成可能である(理論的には16EiBまで可能だが、コンピュータの性能上制限してある)。従来のFAT16は4GiBが上限である。
また、ファイルサイズの上限がFATの2GiB(NT系では4GiB)からボリュームサイズの最大値までに大幅に緩和された。
[編集] 堅牢性の向上
突然の電源停止などの障害が発生した場合、トランザクションログから、実行した処理をロールバックし、ファイルシステムの不整合を発生させない(ジャーナリングファイルシステム)。
[編集] 耐障害性
ハードディスク内のエラーセクタ、不良セクタを認識する。不良セクタへの以降のアクセスは無視されるようになる。なお、不良セクタにあったデータは回復することは出来ない。
[編集] 検索の高速化
ファイルの管理は B+ツリーで行われ、大量のファイルが存在していても、検索やアクセス速度の低下が少ない。
[編集] セキュリティの向上
各ファイルやディレクトリごとにアクセス制御リスト (ACL)によるアクセス権の設定が可能である。 また、ファイルアクセスの監視を行う設定も可能である。
[編集] クォータ
Windows 2000以降のNTFSは、各ユーザごとのディスクの使用量の上限を設定することができる。Windows Server 2003 R2からは、ディレクトリごとのディスクの使用量の上限を設定することができるようになった。
[編集] 圧縮機能
Windows NT 3.51以降のNTFSでは、ファイル単位での圧縮記録をサポートし、空き領域を拡張することができる。
[編集] 暗号化
Windows 2000以降のNTFSでは、ファイルやフォルダを暗号化することができる。これは前述の圧縮機能の一実装であり、暗号化されたファイルやフォルダは常に圧縮されている。暗号化を利用した場合、自分自身の証明書を所持しておかないと誰も永久にアクセスできなくなるので注意が必要[2]。
[編集] 充填密度の向上
FATファイルシステムはボリューム全体を最大65525個(FAT32は最大4177917個)に分割できるクラスタサイズを利用しなければならない。仕様上、FAT16では256MiB以上(FAT32では8GiB以上)のボリュームからNTFSと比べディスク上の領域に無駄が発生する。従ってボリュームサイズが大きくなるに従いファイルシステムに1クラスタ内に未使用領域の隙間が増えて効率が下がる。
NTFSは(クラスタに相当する)アロケーションユニットのサイズをボリュームのサイズに関係なく設定する事が出来る。小さなファイルをたくさん収納したいのであれば、最小のアロケーションユニットサイズ512バイトを選択できる。ファイル数は少ないが巨大なファイルを格納したいと思うなら、最大64KiBのアロケーションユニットサイズを選択できる。なお、4KiBを超えるアロケーションユニットサイズを持つボリュームでは圧縮機能が利用できなくなる。
NTFSはUNIXにおけるスパースファイルに相当する機能をサポートする。ファイルの一部が0で埋められている場合、アロケーションユニットサイズ単位で0で埋められている領域をスキップし、ディスク容量を節約する。これはデータベースのハッシュテーブルファイルなど大部分が0で埋められているファイルで有効に働くだろうと考えられる。
[編集] POSIXサポート
アメリカ合衆国政府のコンピュータ納入の条件としてPOSIXサポートが必須条項であったため、NTFSはPOSIX.1仕様の環境を提供する[3]。
[編集] マルチデータストリーム
NTFSは、一つのディレクトリエントリに対して、複数のデータストリームを持つことができる。ファイルの概要情報などはこの機能を利用してディレクトリエントリに結び付けられている。
[編集] NTFSの欠点
[編集] フラグメンテーション
NTFSはフラグメンテーションが発生する(フラグメンテーションが発生しないファイルシステムは存在しない)。フラグメンテーションの量はアロケーションユニットサイズに反比例し、最も小さなアロケーションユニットサイズ512バイトで最も顕著になる。マイクロソフトはNTFS発表当初フラグメンテーションは発生しにくいと言っていたがそれは誤りであった。しかし、FAT32よりも発生しにくいのは事実であり、誤りとも言い切れない。Executive Software社(現Diskeeper社)がNTFS用のデフラグメンテーションソフトウエア Diskeeperを開発しフラグメンテーション度合いを表示する機能からNTFSはフラグメンテーションが起きる事を一般に知らしめた。現在のWindowsにはアクセサリとして「ディスクデフラグ」(DiskeeperのOEMバージョン)が標準搭載されている。
[編集] 未サポートの機能
- ファイルシステムのバージョニング(バージョン管理)をサポートしていない。
- ディレクトリファイルと通常ファイルの間に距離を置くことができない(ディレクトリファイルのフラグメンテーションを招きパフォーマンスが低下する)。
- ファイルシステムをマウント状態にしたままでメンテナンスする事ができない。
- POSIX.1仕様ではシンボリックリンクは明記されていない為シンボリックリンクをサポートしていない。その代わり、よく似たリパースポイントという機能がある。これは標準でボリューム・フォルダに対してのみ提供される。ファイルにはNTFSの仕様上は問題なく作成可能だが、標準では制限されている。この機能を用いて接合される部分をジャンクションと称する。ハードリンクはサポートされており、Windows XPではコマンドラインから操作できる。Windows Vistaからシンボリックリンクにも対応するようになった。。
[編集] NT系OS以外でのサポート
[編集] 直接的なNTFSへのアクセス手段
NTFSは、もともとWindowsのサーバーOS用に開発されたため、昔のクライアントOSであるWindows 9xからの読み書きはサポートされていない。(どうしても読みたい場合は「NTFS for Windows98」を使えば可能であるが自己責任で。)
NTFSは、マイクロソフトの企業戦略上、その仕様が一般公開されていない。このため、NT系以外のOSからNTFSを“安全確実に”読み書きすることは不可能である。しかしながら有志によって不完全ながらも読み書きするための手段が提供されている。
- mount
- Linuxカーネル2.4およびFreeBSD等は、「mount -t ntfs」コマンドによって読み取りのみサポートしている。
- NTFS-3g
- NTFS-3gは、NTFSパーティションの読み書きに対応。各Linux、FreeBSD、Mac OS X、BeOS上で動作する。オープンソースかつフリー。
- Captive NTFS
- Captive NTFSは、NTFSパーティションの読み書きに対応。使用するにはWindows内のドライバが必須。
- partimage
- partimageは、パーティションまるごとイメージ作成ソフトである。Linux上で動作する(KNOPPIXやsysrescuecdなどに同梱されている)。NTFS領域のイメージ作成・復旧に不完全ではあるが対応している。ただし操作性には少々慣れが必要であり、またイメージからファイルを単体で抽出することはできない。使用する前にはデフラグを行うことが推奨されている。またNTFS圧縮機能を解除しておく必要がある。
- 番外)市販のパーティションイメージ作成ソフト
- 市販品は有償であるがゆえに、NTFSパーティションの読み書きがサポートされている。またイメージの中からファイルを抽出できたり、WindowsのようなGUIで操作できる機能もある。
[編集] 間接的なNTFSへのアクセス手段
NT系OS以外からの直接的なアクセスは、必ずしも安全が保証されているとは言えない。そのため、他OSからNTFS内のデータを読み書きする方法としてネットワーク共有を使うことが考えられる。
- NTFSが動いているOS(つまりWindows)でファイル共有を行い、他OS(例えばLinux)からWindowsの共有フォルダへアクセスする、というネットワーク経由の間接的な方法が考えられる。LinuxやFreeBSDなどは、mountコマンドでWindows共有フォルダをマウントできる。
- (例:mount -t smbfs -o username=administrator,password=xxx //192.168.0.2/data /mnt/data)
- GNOMEやKDEなどでは標準のファイラーを使ってアクセスすることが出来る。
- MacOSXでは標準でWindowsファイル共有へ接続可能である(Mac OS X: Windows ファイル共有 (SMB) に接続する方法)。
- ただしこの場合、NTFS上の共有ファイルを他OSの方へコピーすれば、そのファイルはNTFS特有の機能(アクセス権、ファイル圧縮、暗号化など)が解除されることに注意が必要である。
- KNOPPIXなどでCD-ROMブートし、NTFSパーティションをマウント。その後Sambaでそのパーティションを共有フォルダにして、ネットワーク経由で他OSから共有フォルダを参照する。これでノートパソコンのようにハードディスクが取り出せない場合でもNTFSパーティションから大量のデータを他のコンピュータへコピーすることが出来る。
- Service for UNIXを使い、NTFSをNFSとして公開する。ユーザーID、グループはNFSサーバーによって変換される。アクセスコントロールリストはWindows側によって制御され適用されるが、NFSクライアント側からアクセスコントロールリストにアクセスする手段は存在しない。
[編集] 関連項目
- CIFS : Common Internet File System
- FAT : File Allocation Table
- HPFS : High Performance FileSystem
- MFT : Master File Table
- WinFS : Windows File System
[編集] 脚注
- ^ 括弧中は日本語版での表示されるバックスラッシュに変わる文字。ASCIIの文字コードの0x5C は本来バックスラッシュであるが、JIS X 0201では¥(円)記号を割り当てているために違う文字で表示される。詳しくは、¥記号を参照のこと。
- ^ Windows Vistaはコントロールパネルにあるユーザーアカウントからファイル暗号化証明書の管理で管理可能。
- ^ ファイルやディレクトリ名の大文字小文字の区別やアクセス権、ハードリンクや互換性あるタイムスタンプのサポートである。
[編集] 外部リンク
- Windows Sysinternals : NTカーネル及びNTFSに関するメンテナンスツールを提供している。