| 開発者 | マイクロソフト |
|---|---|
| フルネーム | NTファイルシステム[2] |
| 紹介された | 1993年7月27日Windows NT 3.1 |
| パーティションID | 0x07 ( MBR ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
| 構造 | |
| ディレクトリの内容 | Bツリーバリアント[3] [4] |
| ファイルの割り当て | ビットマップ |
| 不良ブロック | $BadClus (MFT レコード) |
| 制限 | |
| 最大ボリュームサイズ | 2 64 クラスター− 1 クラスター(フォーマット); 256 TB [a] − 64 KB [a] ( Windows 10バージョン 1703、Windows Server 2016またはそれ以前の実装) [5] 8 PB [a] − 2 MB [a] (Windows 10 バージョン 1709、Windows Server 2019またはそれ以降の実装) [6] |
| 最大ファイルサイズ | 16 EB [a] − 1 KB(フォーマット); 16 TB − 64 KB(Windows 7、Windows Server 2008 R2またはそれ以前の実装)[5] 256 TB − 64 KB(Windows 8、Windows Server 2012またはそれ以降の実装)[7] 8 PB − 2 MB(Windows 10バージョン1709、Windows Server 2019またはそれ以降の実装)[6] |
| 最大ファイル数 | 4,294,967,295 (2 32 −1) [5] |
| ファイル名の最大長 | 255 UTF-16コード単位[8] |
| ファイル名に使用できる 文字 | |
| 特徴 | |
| 記録された日付 | 作成、変更、POSIXの変更、アクセス |
| 日付範囲 | 1601年1月1日~30828年9月14日(ファイルの時間は64ビットの正の符号付き数値[9]で、1601年から100ナノ秒間隔(1秒あたり1000万)でカウントされており、これは32,000年以上に相当します) |
| 日付解決 | 100ナノ秒 |
| フォーク | はい(下記の§ 代替データストリーム(ADS)を参照) |
| 属性 | 読み取り専用、非表示、システム、アーカイブ、コンテンツがインデックスされていない、オフライン、一時的、圧縮、暗号化 |
| ファイルシステムの 権限 | ACL について |
| 透過的な 圧縮 | ファイルごと、LZ77 ( Windows NT 3.51以降) |
| 透過的な 暗号化 | ファイル単位、 DESX ( Windows 2000以降)、 Triple DES ( Windows XP以降)、 AES (Windows XP Service Pack 1、Windows Server 2003以降) |
| データ重複排除 | はい(Windows Server 2012)[10] |
| 他の | |
| サポートされている オペレーティングシステム | Windows NT 3.1以降 Mac OS X 10.3以降 (読み取り専用) Linux カーネルバージョン 2.6 以降 Linux カーネル バージョン 2.2-2.4 (読み取り専用) FreeBSD NetBSD OpenBSD (読み取り専用) ChromeOS Solaris ReactOS (読み取り専用) |
NTファイルシステム(NTFS)(一般にNew Technology File Systemと呼ばれる)は、1990年代にMicrosoftが開発した独自のジャーナリングファイルシステムです。 [11] [12] [2]
これは、 FATのスケーラビリティ、セキュリティ、およびその他の制限を克服するために開発されました。[13] NTFSは、アクセス制御リスト(ACL)、ファイルシステムの暗号化、透過的な圧縮、スパースファイル、ファイルシステムジャーナリング、ボリュームシャドウコピー(使用中にシステムをバックアップできる機能)など、FATとHPFSにはないいくつかの機能を追加します。
Windows NT 3.1以降、ファイルアロケーションテーブル(FAT)ファイルシステムに代わるWindows NTファミリのデフォルトのファイルシステムです。 [14] NTFSの読み取り/書き込みサポートは、 LinuxではNTFS3 、BSDではNTFS-3Gを使用してLinuxとBSDで利用できます。[15] [16]
NTFSは、ドライブに保存されている他のファイルに関するメタデータを保存するために、ユーザーから隠されたいくつかのファイルを使用します。これにより、データの読み取り時の速度とパフォーマンスが向上します。[1]
歴史
1980 年代半ば、MicrosoftとIBM は、次世代のグラフィカルオペレーティング システムを作成するための共同プロジェクトを立ち上げ、その結果、 OS/2とHPFS が誕生しました。Microsoft は多くの重要な問題で IBM と意見が合わなかったため、最終的に両者は袂を分かつことになりました。OS/2 は IBM プロジェクトのまま残り、Microsoft はWindows NTと NTFS の開発に取り組みました。
OS/2のHPFSファイルシステムには、いくつかの重要な新機能が含まれていました。Microsoftが新しいオペレーティングシステムを開発したとき、これらの概念の多くをNTFSに取り入れました。[ 17] NTFSの最初の開発者は、 Tom Miller、Gary Kimura、Brian Andrew、David Goebelでした。[18]
おそらくこの共通の祖先の結果として、HPFS と NTFS は同じディスク パーティション識別タイプ コード (07) を使用します。未使用のコード番号が何十個もあり、他の主要なファイル システムには独自のコードがあるため、同じパーティション ID レコード番号を使用することは非常にまれです。たとえば、FAT には 9 個を超えるコードがあります ( FAT12、FAT16、FAT32などにそれぞれ 1 つずつ)。パーティション タイプ 07 のファイル システムを識別するアルゴリズムは、HPFS と NTFS を区別するために追加のチェックを実行する必要があります。
バージョン
Microsoft は NTFS の 5 つのバージョンをリリースしました。
バージョン番号NTFS.sys(例:Windows 2000ではv5.0)はオペレーティングシステムのバージョンに基づいています。NTFSのバージョン番号(Windows XP以降ではv3.1)と混同しないでください。[22] [23]
Windowsのその後のバージョンでは、ファイルシステム関連の新しい機能が追加されましたが、NTFS自体は変更されませんでした。たとえば、Windows Vistaでは、 NTFSシンボリックリンク、トランザクションNTFS、パーティションの縮小、自己修復が実装されました。 [24] NTFSシンボリックリンクはファイルシステムの新しい機能であり、その他はすべて、既存のNTFS機能を活用する新しいオペレーティングシステム機能です。
スケーラビリティ
NTFSは4KB [a] の クラスターに最適化されています が、最大2MBのクラスターサイズをサポートしています[a]。(以前の実装では最大64KBをサポートしていました)[6]仕様でサポートできる最大のNTFSボリュームサイズは2 64 − 1クラスターですが、以下で説明するように、すべての実装がこの理論上の最大値を達成しているわけではありません。
Windows XP Professional で実装されている NTFS ボリュームの最大サイズは2 32 − 1クラスターですが、これはパーティション テーブルの制限によるところが大きいです。たとえば、64 KB クラスターを使用する場合、Windows XP NTFS ボリュームの最大サイズは 256 TB マイナス 64 KB です。デフォルトのクラスター サイズである 4 KB を使用する場合、NTFS ボリュームの最大サイズは 16 TB マイナス 4 KB です。これらは両方とも、Windows XP SP1の 128 GB [a]制限より大幅に大きいです。マスター ブート レコード (MBR) のパーティションのサイズは、512 バイトの物理セクターを持つハード ドライブでは 2 TiB に制限されていますが、[25] [26] 4 KiB の物理セクターの場合、MBR パーティションのサイズ制限は 16 TiB です。別の方法として、複数のGUID パーティション テーブル(GPT または「ダイナミック」) ボリュームを組み合わせて、2 TiB を超える単一の NTFS ボリュームを作成することもできます。 Microsoftがサポートする方法でGPTボリュームからWindows環境にブートするには、Unified Extensible Firmware Interface (UEFI)と64ビット[b]をサポートするシステムが必要です。[27] GPTデータディスクはBIOSを搭載したシステムでサポートされています。
NTFSの個々のファイルのサイズに関する理論上の最大制限は16 EB [a] [28](16 × 1024 6または2 64バイト)から1 KBを引いた値で、合計18,446,744,073,709,550,592バイトです。Windows 10バージョン1709およびWindows Server 2019では、実装されているファイルの最大サイズは8 PB [a]から2 MBを引いた値、つまり9,007,199,252,643,840バイトです。[6]
相互運用性
ウィンドウズ
NTFS のさまざまなバージョンは、ほとんどの場合、完全な前方互換性と後方互換性がありますが、新しい NTFS ボリュームを古いバージョンの Microsoft Windows にマウントするには技術的な考慮事項があります。これは、デュアルブートや外付けポータブルハードドライブに影響します。たとえば、"以前のバージョン" (ボリュームシャドウコピー) を含む NTFS パーティションを、それをサポートしていないオペレーティングシステムで使用しようとすると、以前のバージョンの内容が失われます。[29] Windows コマンドラインユーティリティのconvert.exeを使用すると、 HPFS (Windows NT 3.1、3.5、3.51 のみ)、FAT16、FAT32 (Windows 2000 以降)などのサポートされているファイルシステムを NTFS に変換できます。 [30] [31]
フリーBSD
1999年5月にリリースされたFreeBSD 3.2には、Semen Ustimenkoによって書かれた読み取り専用のNTFSサポートが含まれていました。[32] [33]この実装は、Christos ZoulasとJaromir DolecekによってNetBSDに移植され、2000年12月にNetBSD 1.5とともにリリースされました。 [34] FreeBSDのNTFS実装は、 Julien BordetによってOpenBSDにも移植され、2011年5月1日にリリースされたバージョン4.9の時点で、i386およびamd64プラットフォームでデフォルトでネイティブの読み取り専用NTFSサポートを提供しています。[35] [33][アップデート]
リナックス
Linuxカーネルバージョン2.1.74以降には、Martin von Löwisによって書かれた、NTFSパーティションを読み取る機能を持つドライバーが含まれています。[36]カーネルバージョン2.5.11以降には、Anton Altaparmakov(ケンブリッジ大学)とRichard Russonによって書かれた、ファイルの読み取りをサポートする新しいドライバーが含まれています。[37] [38] [36]ファイルへの書き込み機能は、2006年のカーネルバージョン2.6.15で導入されました。これにより、ユーザーは既存のファイルに書き込むことができますが、新しいファイルを作成することはできません。[39] ParagonのNTFSドライバー(以下を参照)はカーネルバージョン5.15に統合され、通常ファイル、圧縮ファイル、スパースファイルの読み取り/書き込みとジャーナル再生をサポートしています。[40]
NTFS-3Gは、もともとSzabolcs SzakacsitsによってLinuxカーネルドライバーとして開発された、 GPLライセンスのFUSEによるNTFSの実装です。macOS、FreeBSD、NetBSD、OpenBSD、[41] Solaris、QNX、Haiku [42]などのFUSEがサポートする他のシステムで動作するようにFUSEプログラムとして書き直され、NTFSパーティションの読み取りと書き込みが可能になりました。NTFS-3Gの性能を強化した商用バージョンである「Tuxera NTFS for Mac」も、NTFS-3G開発者から入手できます。[43]
Captive NTFSは、Windows独自のドライバntfs.sysを使用する「ラッピング」ドライバで、Linux用として存在します。これはFilesystem in Userspace (FUSE)プログラムとして構築され、GPLの下でリリースされましたが、Captive NTFSの開発は2006年に中止されました。[44]
Linux カーネル バージョン 5.15 以降には、NTFS バージョン 3.1 までで動作し、主にParagon Software Groupによって保守されている、完全に機能する NTFS 読み取り/書き込みドライバーである NTFS3 が搭載されています。
macOS
Mac OS X 10.3には、Ustimenko による FreeBSD からの NTFS の読み取り専用実装が含まれていました。その後、2006 年に Apple は Anton Altaparmakov を雇い、Mac OS X 10.6用の新しい NTFS 実装を作成しました。[45]ネイティブ NTFS 書き込みサポートは 10.6 以降に含まれていますが、デフォルトでは有効になっていません。ただし、この機能を有効にする回避策は存在します。ただし、ユーザーからの報告によると、この機能は不安定で、カーネルパニックを引き起こす傾向があります。[46]
Paragon Software GroupはNTFS for Macという読み書き可能なドライバを販売しており[47]、これはSeagateハードドライブの一部のモデルにも搭載されている。[48]
OS/2
OS/2(およびeComStationやArcaOSなどの派生製品)用のNetDriveパッケージは、NTFSボリュームへの読み取りおよび書き込みアクセスを可能にするプラグインをサポートしています。[49] [50]
ドス
Avira社による「NTFS4DOS」と呼ばれるMS-DOS用の個人使用無料の読み取り/書き込みドライバがある。 [51] [52]
Ahead Software は、 2002 年から 2004 年にかけて、 DR-DOS 7.0x用の「NTFSREAD」ドライバ (バージョン 1.200) を開発しました。これは、同社のNero Burning ROMソフトウェア の一部でした。
安全
NTFS は、アクセス制御リストとユーザー レベルの暗号化を使用して、ユーザー データを保護します。
アクセス制御リスト (ACL)

NTFS では、各ファイルまたはフォルダに、所有者を定義し、2 つのアクセス制御リスト(ACL) を含むセキュリティ記述子が割り当てられます。最初の ACL は任意アクセス制御リスト (DACL) と呼ばれ、どの種類の操作 (読み取り、書き込み、実行、削除など) がどのユーザーまたはユーザー グループに許可または禁止されるかを正確に定義します。たとえば、フォルダ内のファイルはすべてのユーザーが読み取りおよび実行できますが、変更できるのは管理者権限を持つユーザーのみです。[53] Windows Vistaでは、DACL に必須アクセス制御情報が追加されています。DACL は、 Windows Vista以降
のユーザー アカウント制御の主な焦点です。C:\Program Files
2 番目の ACL はシステム アクセス制御リスト (SACL) と呼ばれ、ファイルまたはフォルダーとのどのやり取りを監査するか、アクティビティが成功したとき、失敗したとき、またはその両方でログに記録するかどうかを定義します。たとえば、会社の機密ファイルに対して監査を有効にすると、管理者は誰かがそれらのファイルを削除しようとしたり、コピーしようとしたりしたときに、それが成功したかどうかを知ることができます。[53]
暗号化
暗号化ファイル システム(EFS) は、NTFS ボリューム上の任意のファイルまたはフォルダのユーザー透過的な暗号化を提供します。[54] EFS は、EFS サービス、Microsoft のCryptoAPI、および EFS ファイル システム ランタイム ライブラリ (FSRTL) と連携して動作します。EFS は、バルク対称キー(ファイル暗号化キーまたは FEK とも呼ばれる) を使用してファイルを暗号化することによって動作します。これは、非対称キー暗号を使用する場合よりも、大量のデータの暗号化と復号化に比較的短時間しかかからないために使用されます。ファイルの暗号化に使用される対称キーは、次に、ファイルを暗号化したユーザーに関連付けられた公開キーで暗号化され、この暗号化されたデータは、暗号化されたファイルの代替データ ストリームに格納されます。ファイルを復号化するために、ファイル システムは、ユーザーの秘密キーを使用して、データ ストリームに格納されている対称キーを復号化します。次に、対称キーを使用してファイルを復号化します。これはファイル システム レベルで行われるため、ユーザーに対して透過的です。[55]また、ユーザーがキーにアクセスできなくなった場合でも、EFS システムには追加の復号化キーのサポートが組み込まれているため、必要に応じて回復エージェントがファイルにアクセスできます。NTFS が提供する暗号化と NTFS が提供する圧縮は相互に排他的ですが、一方に NTFS を使用し、もう一方にサードパーティのツールを使用できます。
EFS のサポートは、Windows の Basic、Home、および MediaCenter バージョンでは利用できません。Windows の Professional、Ultimate、および Server バージョンをインストールした後、または Windows ドメイン内でエンタープライズ展開ツールを使用してアクティブ化する必要があります。
特徴
ジャーナリング
NTFS はジャーナリング ファイル システムであり、NTFS ログ ( $LogFile ) を使用してボリュームのメタデータの変更を記録します。これは FAT が提供しない機能であり、システム クラッシュやデフラグAPI によって実行されるデータ移動が発生した場合に NTFS の複雑な内部データ構造の一貫性が維持されるようにするために、またボリュームが再マウントされたときにこれらの重要なデータ構造へのコミットされていない変更を簡単にロールバックできるようにするために、NTFS にとって重要です。特に影響を受ける構造は、ボリューム割り当てビットマップ、MFT レコードおよび属性リストに格納されている可変長属性の移動などの MFT レコードへの変更、およびディレクトリとセキュリティ記述子のインデックスです。
( $LogFile ) 形式はいくつかのバージョンを経て進化してきました。
Windows 8、Windows 10、Windows 11で実装されている$LogFileバージョンの非互換性により、 Windows 7 (および以前のバージョンの Windows) は$LogFileバージョン 2.0 を認識できません。下位互換性は、NTFS ボリュームが正常にマウント解除されたときに$LogFile をバージョン 1.1 にダウングレードすることで提供されます。互換性のあるバージョンの Windows にマウントすると、バージョン 2.0 に再度アップグレードされます。ただし、ログオフ状態でディスクに休止状態になる場合 (既定で有効になっているハイブリッド ブートまたは高速ブートとも呼ばれます)、マウントされたファイル システムはマウント解除されないため、アクティブなファイル システムの$LogFileはバージョン 1.1 にダウングレードされません。8.0 より前のバージョンの Windows では$LogFileバージョン 2.0 を処理できないため、CHKDSKディスク修復ユーティリティが不必要に呼び出されます。これは、Windows 8.0 以前とそれ以降のバージョンが関係するマルチブートシナリオや、古いバージョンと新しいバージョンの間でストレージ デバイスを頻繁に移動する場合に特に問題となります。Windowsレジストリ設定には、 $LogFileが新しいバージョンに自動的にアップグレードされないようにするものがあります。この問題は、ハイブリッド ブートを無効にすることでも対処できます。[56]
USNジャーナル(Update Sequence Number Journal)は、ボリューム上のファイル、ストリーム、ディレクトリ、およびそれらのさまざまな属性とセキュリティ設定への変更を($Extend\$UsnJrnlに)記録するシステム管理機能です。ジャーナルは、アプリケーションがボリュームへの変更を追跡するために使用できます。[57]このジャーナルは、システム以外のボリュームで有効または無効にすることができます。[58]
ハードリンク
ハードリンク機能により、異なるファイル名で同じファイルの内容を直接参照することができます。ハードリンクは同じボリューム内のファイルにのみリンクできます。これは、各ボリュームが独自のMFTを持っているためです。ハードリンクはもともとWindows NTのPOSIXサブシステムをサポートするために含まれていました。 [59]
ハードリンクは、ファイルサイズ、変更日、属性などのファイルメタデータを記録する同じ MFT レコード ( inode ) を使用しますが、NTFS はパフォーマンス向上のため、このデータをディレクトリエントリにキャッシュします。つまり、FindFirstFile/FindNextFile ファミリの API (POSIX opendir/readdir API に相当) を使用してディレクトリの内容を一覧表示すると、名前と inode に加えて、このキャッシュされた情報も受け取ることになります。ただし、この情報はファイルが閉じられたときにのみ更新されることが保証されており、その場合もファイルが開かれたディレクトリに対してのみ更新されるため、最新の情報が表示されない可能性があります。[60]つまり、ファイルにハードリンク経由で複数の名前がある場合、1 つの名前でファイルを更新しても、他の名前に関連付けられたキャッシュされたデータは更新されません。GetFileInformationByHandle (POSIX stat 関数に完全に相当) を使用すると、常に最新のデータを取得できます。これは、ファイル自体にアクセスできないハンドル (dwDesiredAccess の CreateFile にゼロを渡す) を使用して実行できます。このハンドルを閉じると、キャッシュされた情報が更新されるという付随的な効果があります。
Windows は、ハード リンクを使用してNTFS で短い (8.3) ファイル名をサポートします。8.3 ファイル名でしか動作しないレガシー アプリケーションがあるため、オペレーティング システムのサポートが必要ですが、サポートを無効にすることもできます。この場合、追加のファイル名レコードとディレクトリ エントリが追加されますが、通常のハード リンクとは異なり、8.3 ファイル名と長いファイル名の両方が一緒にリンクされ、更新されます。
NTFSファイルシステムでは、ファイルあたりのハードリンクの数は1024個までという制限がある。 [61]
代替データストリーム (ADS)
代替データ ストリームを使用すると、"filename:streamname" (例: "text.txt:extrastream") の形式を使用して、複数のデータ ストリームをファイル名 (フォーク)に関連付けることができます。これらのストリームは、Windows に既定で組み込まれている一般的なGUIアプリケーションではユーザーに表示されず、編集もできないため、ほとんどのユーザーから存在を隠します。有用なメタデータを目的としていますが、その難解な性質により、マルウェア、スパイウェア、目に見えないブラウザー履歴、その他の潜在的に不要な情報の隠れ場所になる可能性があります。
代替ストリームは Windows エクスプローラーに表示されず、そのサイズはファイルのサイズに含まれません。ファイルを ADS サポートのない別のファイル システムにコピーまたは移動する場合、代替データ ストリームは保持できないという警告が表示されます。ファイルが電子メールに添付されている場合や Web サイトにアップロードされている場合は、通常、このような警告は表示されません。したがって、重要なデータに代替ストリームを使用すると、問題が発生する可能性があります。Microsoft は、選択したボリューム上のストリームを表示するための Streams [62]と呼ばれるダウンロード可能なツールを提供しています。Windows PowerShell 3.0以降では、Add-Content、Clear-Content、Get-Content、Get-Item、Remove-Item、Set-Content の 6 つのコマンドレットを使用して、ADS をネイティブに管理できます。[63]
Internet Explorerやほとんどのブラウザでは、外部サイトからダウンロードしたファイルを安全に実行できない可能性があるとしてマークするために、という名前の小さなADSZone.Identifierが追加されます。これにより、ローカルシェルはファイルを開く前にユーザーの確認を求めます。 [64]ユーザーがこの確認ダイアログが不要であることを示すと、このADSは削除されます。この機能は、「 Mark of the Web」とも呼ばれます。 [65] [66]ソースコードに大きな変更を加えなくても、すべてのChromium ( Google Chromeなど)およびFirefoxベースのウェブブラウザも、ダウンロードしたファイルにストリームを書き込みます。Windows 10の時点では、ストリームの内容は、、、およびキーを含むINIファイル(つまり、キー値ストア)のように構造化されています。ある程度、これらは実装定義のフィールドですが、通常は元のオンラインダウンロード場所のドメイン名と正確なURLが含まれており、潜在的にプライバシーのリスクを伴う閲覧履歴を追跡する非常に難解な方法を提供しています。[67]ダウンロードされたファイルが実行可能ファイル(インストーラなど)の場合、 ADSはリフレクションに使用でき、プログラムはダウンロード元を識別できます。これはテレメトリやセキュリティ目的で使用される場合があり、プログラムは(ストリームが削除または偽装されていないと仮定して)公式ソースからダウンロードされたことを確認し、その情報をインターネット経由で送信することができます(この動作の例としては、BiglyBTのインストーラがあります)。
Zone.IdentifierZone.IdentiferHostIpAddressHostUrlReferrerUrlZone
マルウェアは代替データストリームを使用してコードを隠す。[68] 2000年代後半から、一部のマルウェアスキャナやその他の特別なツールは代替データストリームをチェックする。ADSに関連するリスク、特にプライバシーとZone.Identifierストリームに関連するリスクのため、ファイルからストリーム(リスクがあると認識されている特定のストリームまたはすべてのストリーム)をユーザーフレンドリーな方法で削除するように特別に設計されたソフトウェアが存在します。[69]
NTFS ストリームは、Services for Macintosh (SFM) がリソース フォークを保存できるようにするために、Windows NT 3.1で導入されました。現在のバージョンの Windows Server には SFM が含まれていませんが、サードパーティのApple Filing Protocol (AFP) 製品 ( GroupLogicの ExtremeZ-IPなど) は、ファイル システムのこの機能を引き続き使用しています。
ファイル圧縮
圧縮は、「compressed」属性を設定することでフォルダごとまたはファイルごとに有効になります。フォルダで圧縮を有効にすると、そのフォルダに移動または保存されたファイルは、 LZNT1 アルゴリズム ( LZ77のバリエーション) を使用して自動的に圧縮されます。[70]圧縮アルゴリズムは、最大 4 KB のクラスタ サイズをサポートするように設計されています。NTFS ボリュームでクラスタ サイズが 4 KB を超える場合、NTFS 圧縮は使用できません。[71]データは 16 クラスタ チャンク (サイズは最大 64 KB) で圧縮されます。圧縮によって 64 KB のデータが 60 KB 以下に縮小されると、NTFS は不要な 4 KB ページを空のスパース ファイルクラスタのように扱い、書き込まれません。これにより、OS はフラグメントのチェーンをたどるだけで済むため、妥当なランダム アクセス時間が可能になります。
圧縮は、繰り返しコンテンツを持ち、めったに書き込まれず、通常は順番にアクセスされ、それ自体は圧縮されていないファイルに最適です。ハードディスクの容量が限られているシングルユーザーシステムでは、圧縮率に応じて 4 KB から 64 KB 以上の小さなファイルに対して NTFS 圧縮が役立ちます。約 900 バイト未満のファイルは、MFT のディレクトリエントリ内に保存されます。[72]
利点
高速マルチコアプロセッサのユーザーは、アプリケーションとデータを圧縮することでアプリケーション速度が向上し、使用されるスペースが削減されることに気付くでしょう。SSDコントローラがすでにデータを圧縮している場合でも、転送されるデータが少なくなるため、I/Oは削減されます。[73]
マイクロソフトのNTFS開発チームの調査によると、 4KB(デフォルト)のクラスタ(ブロック)サイズを持つNTFSボリューム上の圧縮ファイルの適切な最大サイズは50~60GBです。この適切な最大サイズは、クラスタサイズが小さいボリュームでは大幅に減少します。[74]
デメリット
大きな圧縮ファイルは、64KB未満のすべてのチャンクがフラグメント になるため、高度に断片化されます。[74] [75] SSDドライブなどのフラッシュメモリには、機械式ハードディスクドライブのようなヘッド移動の遅延やアクセス時間の長さがないため、断片化によるペナルティは小さくなります。
起動時に必要なシステム ファイル (ドライバー、NTLDR、winload.exe、BOOTMGR など) が圧縮されている場合、解凍フィルターがまだ読み込まれていないため、システムが正しく起動しないことがあります。[76] [検証に失敗しました] Windows の最近のエディション[どれですか]では、重要なシステム ファイルを圧縮できません。
システム圧縮
Windows 10 以降、Microsoftは4K/8K/16KブロックサイズのXPRESSアルゴリズム[77]とLZXアルゴリズム[78 ]に基づく新しいファイル圧縮方式を導入しました。どちらもLZNT1にはなかったハフマンエントロピー符号化と範囲符号化で更新されたLZ77の変種です。これらの圧縮アルゴリズムはWindows Imaging Format (WIMファイル)から採用されました。
新しい圧縮方式は、Windows システム ファイルを圧縮してディスク使用量を削減する CompactOS 機能で使用されます。[79] CompactOS は NTFS ファイル圧縮の拡張機能ではなく、「圧縮」属性を使用しません。代わりに、WOF (Windows Overlay Filter) タグを使用して各圧縮ファイルに再解析ポイントを設定します。 [80]ただし、実際のデータは「WofCompressedData」という名前の代替データ ストリームに格納され、WOFファイルシステム フィルタードライバーによってオンザフライで解凍され、メイン ファイルは空のスパース ファイルです。[80]この設計は読み取り専用アクセスのみを目的としているため、圧縮ファイルへの書き込みは自動的に解凍されます。[80] [81] [82]
CompactOS圧縮は、 Windows ADKのツールのフラグを使用してOSイメージを準備するOEMを対象としていますが、[83]コマンドのフラグを使用してファイルごとに手動で有効にすることもできます。[84] CompactOSアルゴリズムは、コアのNTFS圧縮とは異なり、圧縮データを連続して割り当てられたチャンクに書き込むことでファイルの断片化を回避します。 [引用が必要]/compactDISM/execompact
CompactOS のファイル圧縮は、 Windows 8.1で導入された WIMBoot 機能の改良版です。WIMBoot は、システム ファイルを別の隠しディスク パーティションに圧縮された WIM イメージとして保存することで、Windows のディスク使用量を削減します。[85] CompactOS と同様に、Windows システム ディレクトリには、 WOF タグ付きの再解析ポイントでマークされたスパース ファイルのみが含まれ、Windows オーバーレイ フィルター ドライバーは、WIM イメージからオンザフライでファイル コンテンツを解凍します。ただし、WIMBoot は CompactOS ほど効果的ではありません。システム ファイルの新しい更新バージョンをシステム パーティションに書き込む必要があり、ディスク領域を消費するためです。[80]
スパースファイル
.svg/500px-Sparse_file_(en).svg.png)
.png/500px-One_Petabyte_of_Files_(Windows_10_Professional).png)
スパースファイルは、実際のストレージスペースが使用されていない空のセグメントが点在するファイルです。アプリケーションにとって、ファイルは、空の領域がゼロで満たされた領域として表示される通常のファイルのように見えます。ファイルシステムは、各スパースファイルに対してそのような領域の内部リストを維持します。[86]スパースファイルには、必ずしもスパースゼロ領域が含まれているわけではありません。「スパースファイル」属性は、ファイルにスパースゼロ領域が含まれることを許可されていることを意味します。
たとえば、データベースアプリケーションではスパースファイルを使用する場合があります。[87]圧縮ファイルと同様に、スパースファイルの実際のサイズはクォータ制限を決定する際に考慮されません。[88]
ボリュームシャドウコピー
ボリュームシャドウ コピー サービス (VSS) は、コピー オン ライト技術を使用して、新しく上書きされた古いデータをシャドウ コピーにコピーすることで、NTFS ボリューム上のファイルとフォルダーの履歴バージョンを保持します。ユーザーは後で以前のバージョンの回復を要求することができます。これにより、データ バックアップ プログラムで、ファイル システムで現在使用されているファイルをアーカイブすることもできます。
Windows Vista では、システムの復元と以前のバージョンの機能で使用するための永続的なシャドウ コピーも導入されました。ただし、永続的なシャドウ コピーは、古いオペレーティング システムがその NTFS ボリュームをマウントすると削除されます。これは、古いオペレーティング システムが永続的なシャドウ コピーの新しい形式を理解できないために発生します。[29]
取引
Windows Vista 以降、アプリケーションはトランザクション NTFS (TxF) を使用して、ファイルへの複数の変更を 1 つのトランザクションにグループ化できます。トランザクションでは、すべての変更が行われるか、まったく行われないかのいずれかが保証され、トランザクション外のアプリケーションは変更がコミットされるまで変更を確認できません。[89]
ボリューム シャドウ コピー (コピー オン ライト) で使用されるものと同様の技術を使用して、上書きされたデータを安全にロールバックできるようにします。また、CLFSログを使用して、まだコミットされていないトランザクション、またはコミットされているが完全には適用されていないトランザクション (参加者の 1 人によるコミット中にシステム クラッシュが発生した場合) をマークします。
トランザクション NTFS は、トランザクションをローカル NTFS ボリュームだけに制限するのではなく、別のボリューム、ローカル レジストリ、SQL データベースに保存されているデータ、またはシステム サービスやリモート サービスの現在の状態など、他の場所にある他のトランザクション データや操作も含まれます。これらのトランザクションは、特定のサービスである DTC を使用してすべての参加者とネットワーク全体で調整され、すべての参加者が同じコミット状態を受け取るようにし、いずれかの参加者によって検証された変更を転送します (これにより、他の参加者は古いデータのローカル キャッシュを無効にしたり、進行中のコミットされていない変更をロールバックしたりできます)。トランザクション NTFS を使用すると、たとえば、ローカルのライブ キャッシュやオフライン キャッシュを含む、ネットワーク全体で一貫性のある分散ファイル システムを作成できます。
マイクロソフトは現在、TxFの使用を推奨していない。「TxFはMicrosoft Windowsの将来のバージョンでは利用できなくなる可能性があるため、開発者は代替手段を利用することを強く推奨します」[90]
割り当て
ディスク クォータはNTFS v3 で導入されました。これにより、NTFS をサポートする Windows バージョンを実行するコンピューターの管理者は、ユーザーが使用できるディスク領域のしきい値を設定できます。また、管理者は各ユーザーが使用しているディスク領域の量を追跡できます。管理者は、警告が表示される前にユーザーが使用できるディスク領域の特定のレベルを指定し、領域の上限に達したらユーザーのアクセスを拒否できます。ディスク クォータでは、NTFS の透過的なファイル圧縮(有効になっている場合) は考慮されません。空き領域の量を照会するアプリケーションは、クォータが適用されているユーザーに残っている空き領域の量も確認します。
ポイントを再解析する
NTFS v3 で導入された NTFS 再解析ポイントは、ファイルまたはディレクトリのユーザー スペース属性に再解析タグを関連付けることで使用されます。Microsoft では、シンボリック リンク、ディレクトリ ジャンクション ポイント、ボリューム マウント ポイントなど、いくつかの既定のタグを組み込んでいます。オブジェクト マネージャーがファイル システム名の検索を解析して再解析属性を検出すると、名前の検索が再解析され、ユーザーが制御する再解析データが、Windows に読み込まれているすべてのファイル システム フィルター ドライバーに渡されます。各フィルター ドライバーは、再解析データを調べて、その再解析ポイントに関連付けられているかどうかを確認し、フィルター ドライバーが一致を判定すると、ファイル システム要求をインターセプトして特別な機能を実行します。
制限事項
サイズ変更
Windows Vista以降、Microsoft はパーティションを縮小または拡張する組み込み機能を追加しました。ただし、この機能では、ページ ファイルのフラグメントや移動不可としてマークされたファイルは再配置されないため、ボリュームを縮小するには、多くの場合、ページ ファイル、 Windows Searchのインデックス、およびシステムの復元で使用されるシャドウ コピーを再配置または無効にする必要があります。さまざまなサードパーティ ツールで、NTFS パーティションのサイズを変更できます。
ワンドライブ
2017年以降、マイクロソフトはOneDriveのファイル構造をNTFSディスク上に配置することを義務付けています。[91]これは、OneDrive Files On-Demand機能がNTFS再解析ポイントを使用してOneDriveに保存されているファイルとフォルダーをローカルファイルシステムにリンクするため、以前のバージョンのWindows、他のNTFSファイルシステムドライバー、またはそれをサポートするように更新されていないファイルシステムやバックアップユーティリティではファイルやフォルダーが使用できなくなるためです。[92]
構造
NTFS は、ブート情報を保持するパーティション ブート セクター (PBS)、ファイル システム内のすべてのファイルとフォルダーの記録を格納するマスター ファイル テーブル、メタデータをより効率的に構造化するのに役立つ一連のメタ ファイル、データ ストリーム、およびロック メカニズムなど、複数のコンポーネントで構成されています。
内部的には、NTFSはファイルシステムデータのインデックスにBツリーを使用します。ファイルシステムジャーナルはファイルシステムメタデータの整合性を保証するために使用されますが、個々のファイルの内容を保証するものではありません。NTFSを使用するシステムは、FATファイルシステムと比較して信頼性が向上していることが知られています。[93]
NTFS では、0x0000 を除く任意の 16 ビット値のシーケンスを名前のエンコードに使用できます (ファイル名、ストリーム名、インデックス名など)。つまり、UTF-16コード単位はサポートされていますが、ファイル システムはシーケンスが有効な UTF-16 であるかどうかをチェックしません ( Unicode 標準に制限されない任意の短い値のシーケンスを使用できます)。Win32 名前空間では、UTF-16 コード単位は大文字と小文字を区別しませんが、POSIX 名前空間では大文字と小文字を区別します。ファイル名は 255 個の UTF-16 コード単位に制限されています。ボリューム ルート ディレクトリで予約されている特定の名前はファイルには使用できません。これらは、、、、、、($MFTドット)、、、、、、、および. [ 5] (ドット) であり、どちらもディレクトリです。その他はファイルです。NT カーネルでは、フル パスを 32,767 個の UTF-16 コード単位に制限しています。コード ポイントとファイル名には追加の制限があります。[94]$MFTMirr$LogFile$Volume$AttrDef.$Bitmap$Boot$BadClus$Secure$UpCase$Extend .$Extend
パーティションブートセクター (PBS)
このブート パーティション フォーマットは、以前のFATファイルシステムをほぼベースにしていますが、フィールドの場所が異なります。これらのフィールドの一部、特に「トラックあたりのセクター数」、「ヘッド数」、および「隠しセクター」フィールドには、意味をなさないか判別できないドライブ上のダミー値が含まれる場合があります。
OS はまず 0x30 の 8 バイトを調べて $MFT のクラスター番号を見つけ、その数値にクラスターあたりのセクター数 (0x0D の 1 バイト) を掛けます。この値は $MFT へのセクター オフセット ( LBA ) であり、以下で説明します。
マスターファイルテーブル
NTFS では、すべてのファイル、ディレクトリ、およびメタファイルのデータ (ファイル名、作成日、アクセス許可 (アクセス制御リストを使用)、サイズ) が、マスター ファイル テーブル( MFT )にメタデータとして保存されます。この抽象的なアプローチにより、Windows NT の開発中にファイル システム機能を簡単に追加できました。たとえば、Active DirectoryおよびWindows Searchで使用されるインデックス用のフィールドが追加されました。また、これにより、高速ファイル検索ソフトウェアは、他のインデックスを必要とせずに、MFT に含まれる名前付きローカル ファイルとフォルダーを非常に迅速に検索できます。
MFT構造は、ディスクの断片化を最小限に抑えるアルゴリズムをサポートしています。[97]ディレクトリエントリは、ファイル名と「ファイルID」(inode番号に類似)で構成されます。これは、マスターファイルテーブル内のファイルを表すレコード番号です。ファイルIDには、古い参照を検出するための再利用カウントも含まれています。これは、 Files-11のW_FIDに非常に似ていますが、他のNTFS構造は根本的に異なります。
MFTの部分的なコピーはMFTミラーと呼ばれ、破損した場合に備えて保存されます。[98] MFTの最初のレコードが破損した場合、NTFSは2番目のレコードを読み取ってMFTミラーファイルを見つけます。両方のファイルの場所はブートセクターに保存されます。[99]
メタファイル
NTFS には、ファイル システムを定義して整理する複数のファイルが含まれています。すべての点で、これらのファイルのほとんどは他のユーザー ファイルと同様に構造化されています ($Volume が最も特殊です) が、ファイル システム クライアントにとって直接関係するものではありません。[100]これらのメタファイルは、ファイルを定義し、重要なファイル システム データをバックアップし、ファイル システムの変更をバッファリングし、空き領域の割り当てを管理し、BIOS の期待に応え、不良な割り当て単位を追跡し、セキュリティとディスク領域の使用状況に関する情報を保存します。特に指定がない限り、すべてのコンテンツは名前のないデータ ストリームにあります。
これらのメタファイルは Windows によって特別に扱われ、NTFS.SYSドライバによって直接処理されるため、直接表示することは困難です。専用のツールが必要です。[c] Windows 7 以降、NTFS ドライバはユーザー アクセスを完全に禁止しているため、メタデータ ファイルを実行しようとするとBSoDが発生します。そのようなツールの 1 つが nfi.exe (「NTFS ファイル セクター情報ユーティリティ」) で、Microsoft の「OEM サポート ツール」の一部として無料で配布されています。たとえば、「$MFT」マスター ファイル テーブル セグメントに関する情報を取得するには、次のコマンドを使用します。nfi.exe c:\$MFT[101]制限を回避するもう 1 つの方法は、7-Zipのファイル マネージャを使用して、低レベルの NTFS パス\\.\X:\(任意のX:\ドライブ/パーティションに類似) に移動することです。ここで、3 つの新しいフォルダが表示されます: $EXTEND、[DELETED](7-Zip がファイル システムから削除されたファイルを添付して表示するために使用する疑似フォルダ)、[SYSTEM](すべての NTFS メタデータ ファイルを含む別の疑似フォルダ)。このトリックは、Windows 内のリムーバブル デバイス ( USBフラッシュ ドライブ、外付けハード ドライブ、SD カードなど)から使用できますが、アクティブ パーティションでこれを行うには、オフライン アクセス (つまりWinRE ) が必要です。
属性リスト、属性、ストリーム
MFT レコードに記述されている各ファイル (またはディレクトリ) には、ストリーム記述子 (属性とも呼ばれる) の線形リポジトリがあり、1 つ以上の MFT レコード (属性リストと呼ばれるものを含む) にまとめられ、各 MFT レコードの固定 1 KB サイズを埋めるための追加のパディングが含まれ、そのファイルに関連付けられている有効なストリームを完全に記述します。
各属性には、属性タイプ (ファイル$AttrDef内の属性定義にマッピングされる固定サイズの整数)、オプションの属性名 (たとえば、代替データ ストリームの名前として使用される)、およびバイト シーケンスで表される値があります。NTFS の場合、ファイルの標準データ、代替データ ストリーム、またはディレクトリのインデックス データが属性として保存されます。
$AttrDefによれば、一部の属性は常駐または非常駐のいずれかになります。ファイル データを含む$DATA属性はその一例です。属性が常駐の場合 (フラグで表されます)、その値は MFT レコードに直接保存されます。それ以外の場合は、データにクラスターが割り当てられ、データが属性内で実行されるとクラスターの位置情報が格納されます。
- MFT 内の各ファイルでは、属性タイプ、属性名によって識別される属性が一意である必要があります。また、NTFS ではこれらの属性に対していくつかの順序制約があります。
- 事前定義された null 属性タイプがあり、これは 1 つの MFT レコード内の属性リストの終了を示すために使用されます。これはレコード内の最後の属性として存在する必要があります (その後に使用可能な他のすべてのストレージ スペースは無視され、MFT 内のレコード サイズに一致するパディング バイトのみで構成されます)。
- 一部の属性タイプは必須であり、各 MFT レコードに存在する必要があります。ただし、null 属性タイプで示される未使用のレコードは除きます。
- これは、固定サイズのレコードとして保存され、タイムスタンプやその他の基本的な 1 ビット属性 ( DOS またはWindows 9xのFATによって管理される属性と互換性がある)を含む$STANDARD_INFORMATION属性の場合です。
- 一部の属性タイプには名前を付けることができず、匿名のままにする必要があります。
- これは、標準属性、または推奨される NTFS の「ファイル名」属性タイプ、または「短いファイル名」属性タイプ (DOS のようなアプリケーションとの互換性のため、以下を参照) の場合に当てはまります。ファイルに短いファイル名のみが含まれることも可能で、その場合は Windows エクスプローラーにリストされる推奨ファイル名になります。
- 属性リストに格納されているファイル名属性によって、階層ファイル システムを通じてファイルにすぐにアクセスできるようになるわけではありません。実際、すべてのファイル名は、同じボリューム上の少なくとも 1 つの別のディレクトリで個別にインデックス付けされている必要があります。そこには、このファイルの MFT レコード番号を参照する独自の MFT レコードと独自のセキュリティ記述子および属性が必要です。これにより、同じファイルまたはディレクトリを、同じボリューム上の複数のコンテナーから複数回「ハードリンク」することができ、ファイル名が異なる場合もあります。
- 通常ファイルのデフォルトのデータ ストリームは、 $DATAタイプのストリームですが匿名名が付けられており、ADS も同様ですが名前を付ける必要があります。
- 一方、ディレクトリのデフォルトのデータ ストリームは明確なタイプを持ちますが、匿名ではありません。インデックス形式を反映する属性名 (NTFS 3+ では" $I30 ") を持ちます。
特定のファイルのすべての属性は、Microsoftの「OEMサポートツール」の一部として無料で配布されているnfi.exe(「NTFSファイルセクター情報ユーティリティ」)を使用して表示できます。[101]
Windows システム コールは、代替データ ストリームを処理する場合があります。[5]オペレーティング システム、ユーティリティ、リモート ファイル システムによっては、ファイル転送でデータ ストリームが暗黙的に削除される場合があります。[5]ファイルをコピーまたは移動する安全な方法は、BackupRead および BackupWrite システム コールを使用することです。これにより、プログラムはストリームを列挙し、各ストリームを宛先ボリュームに書き込む必要があるかどうかを確認し、不要なストリームを意図的にスキップできます。[5]
居住者属性と非居住者属性
非常に小さな値が関連付けられている属性という非常に一般的なケースでストレージを最適化し、I/O オーバーヘッドを削減するために、NTFS は、MFT レコード スペースを使用してデータを含むクラスターをリストするのではなく、属性自体の中に値を配置することを優先します (属性のサイズが MFT レコードの最大サイズを超えない場合)。その場合、属性はデータを直接格納せず、ボリューム上の他の場所に格納されている実際のデータを指す割り当てマップ (データ ランの形式) のみを格納します。 [102]属性内から直接値にアクセスできる場合、その値は「常駐データ」と呼ばれます (コンピューター フォレンジックワーカーによる)。収まるデータの量はファイルの特性によって大きく異なりますが、ファイル名が長くなく ACL のない単一ストリーム ファイルでは 700 ~ 800 バイトが一般的です。
- 一部の属性 (優先ファイル名、基本ファイル属性など) は非常駐にできません。非常駐属性の場合、その割り当てマップは MFT レコード内に収まる必要があります。
- NTFS で暗号化されたデータ ストリーム、スパース データ ストリーム、または圧縮されたデータ ストリームは常駐させることはできません。
- 非常駐属性の割り当てマップの形式は、スパース データ ストレージをサポートする機能によって異なります。NTFS の現在の実装では、非常駐データ ストリームがスパースとしてマークされ変換されると、非スパース データに戻すことはできません。そのため、このデータが完全に切り捨てられ、スパース割り当てマップが完全に破棄されない限り、再び常駐にすることはできません。
- 非常駐属性が断片化されすぎて、その有効な割り当てマップが 1 つの MFT レコード内に完全に収まらない場合、NTFS は属性を複数のレコードに保存します。最初のレコードは基本レコードと呼ばれ、他のレコードは拡張レコードと呼ばれます。NTFS は、長い属性のさまざまな部分を MFT レコードにマッピングする情報を保存する特別な属性$ATTRIBUTE_LISTを作成します。つまり、割り当てマップが複数のレコードに分割される可能性があります。$ATTRIBUTE_LIST自体も非常駐にすることができますが、その割り当てマップは 1 つの MFT レコード内に収まる必要があります。
- ファイルの属性(ADS、拡張属性、セキュリティ記述子など)が多すぎて、すべてを MFT レコード内に収めることができない場合は、拡張レコードを使用して、基本 MFT レコードで使用されるものと同じ形式を使用して、1 つの MFT レコードのスペース制約なしで、他の属性を保存することもできます。
割り当てマップは、圧縮エンコードされたデータランの形式で保存されます。各データランは、属性値を格納する連続したクラスターのグループを表します。数GBのボリューム上のファイルの場合、各エントリは5〜7バイトとしてエンコードされるため、1KB のMFTレコードには、このようなデータランを約100個保存できます。ただし、$ATTRIBUTE_LISTにもサイズ制限があるため、NTFSボリュームに1つのファイルのフラグメントが100万個以上あると危険です。つまり、100万を超えるサイズのファイルにNTFS圧縮を使用することは一般的に良い考えではないということです。10GB [ 103 ]
NTFS ファイル システム ドライバーは、優先順位と優先順序付けルール、およびサイズ制約に基づいて、非常駐にできる一部の属性のデータをクラスターに再配置しようとすることがあります。また、クラスターに格納されているデータを MFT レコード内の属性に再配置しようとすることもあります。
常駐ファイルはクラスタ(「アロケーション ユニット」)を直接占有しないため、NTFS ボリュームにはクラスタの数よりも多くのファイルが含まれる可能性があります。たとえば、74.5 GBのパーティションNTFS形式、19,543,064のクラスター4 KB . システムファイル(64 MB のログ ファイル、2,442,888 バイトのビットマップ ファイル、および約 25 クラスターの固定オーバーヘッドにより、ファイルとインデックス用に 19,526,158 クラスターが空きます。クラスターごとに 4 つの MFT レコードがあるため、このボリュームには理論的にはほぼ 4 × 19,526,158 = 78,104,632 個の常駐ファイルを保持できます。
便宜的ロック
オプロック(oplock)を使用すると、クライアントは特定のファイルまたはストリームのバッファリング戦略を変更して、パフォーマンスを向上させ、ネットワークの使用を減らすことができます。[104]オプロックは、ファイルの特定のオープンストリームに適用され、別のストリームのオプロックには影響しません。
Oplocks を使用すると、バックグラウンドで透過的にファイルにアクセスできます。ネットワーク クライアントは、他のプロセスがデータにアクセスしていない場合はリモート サーバー上のファイルに情報を書き込まないようにしたり、他のプロセスがデータを書き込んでいない場合は先読みデータをバッファリングしたりできます。
Windows は 4 種類の oplock をサポートしています。
- レベル 2 (または共有) oplock: 複数のリーダー、ライターなし (つまり、読み取りキャッシュ)。
- レベル 1 (または排他的) oplock: 任意のバッファリング (つまり、読み取りおよび書き込みキャッシュ) による排他的アクセス。
- バッチ oplock (排他的): ストリームはサーバー上で開かれますが、クライアント マシン上では閉じられます (つまり、読み取り、書き込み、およびハンドルのキャッシュ)。
- フィルター oplock (排他的): アプリケーションとファイル システム フィルターは、他のユーザーが同じストリーム (読み取りおよび書き込みキャッシュなど) にアクセスしようとしたときに「バックアウト」できます (Windows 2000 以降)
Windows 7およびWindows Server 2008 R2では、クライアントごとのoplockキーによって、便宜的ロックが強化されました。[105]
時間
Windows NT およびその派生製品では、内部タイムスタンプをUTCとして保持し、表示用に適切な変換を行います。すべての NTFS タイムスタンプは UTC です。[引用が必要]
歴史的な理由により、NTFS をサポートしていない Windows のバージョンはすべて、内部的にローカル ゾーン タイムとして時間を保持しており、したがって、現在のバージョンの Windows でサポートされているすべてのファイル システム (NTFS 以外) も同様です。つまり、NTFS パーティションと非 NTFS パーティション間でファイルをコピーまたは移動する場合、OS はタイムスタンプをオンザフライで変換する必要があります。ただし、一部のファイルが夏時間(DST) の有効時に移動され、他のファイルが標準時間の有効時に移動された場合、変換に曖昧さが生じる可能性があります。その結果、特にローカル ゾーン タイムが変更された日の直後に、一部のファイルのタイムスタンプが 1 時間間違っていることに気付く場合があります。管轄区域によって DST の実装が異なるため、12 か月で最大 4 時間のタイムスタンプ エラーが発生する可能性があります。[106]
参照
- ファイルシステムの比較
- NTFSDOS
- ntfsサイズを変更する
- WinFS (キャンセルされた Microsoft ファイルシステム)
- ReFS、新しいMicrosoftファイルシステム
注記
- ^ abcdefghij 1バイト= 8ビット
1 KB = 1,024 バイト
1 MB = 1,048,576 バイト
1 GB = 1,073,741,824 バイト
1 TB = 1,099,511,627,776 バイト
1 PB = 1,125,899,906,842,624 バイト
1 EB = 1,152,921,504,606,846,976 バイト - ^ ファームウェアとオペレーティング システム ローダーのサイズが一致していれば、32 ビットにすることもできます。
- ^ Windows XP 以降、これらのファイルのリストを表示するのは非常に困難です。これらのファイルはルート ディレクトリのインデックスに存在しますが、Win32 インターフェイスによってフィルター処理されます。NT 4.0 では、コマンド ラインコマンドを指定する
dirと、ルート ディレクトリ内のメタファイルがリストされます。Windows 2000 では動作しなくなりましたが、動作しました。/adir /adir /a \$MFT
参考文献
- ^ ab Karresand, Martin; Axelsson, Stefan; Dyrkolbotn, Geir Olav (2019-07-01). 「NTFS クラスター割り当て動作を使用してユーザーデータの場所を見つける」. Digital Investigation . 29 : –51–S60. doi : 10.1016/j.diin.2019.04.018 . hdl : 11250/2631756 . ISSN 1742-2876. S2CID 199004263.
- ^ ab 「用語集」。[MS-EFSR]: 暗号化ファイル システム リモート (EFSRPC) プロトコル。Microsoft。2013 年 11 月 14 日。
- ^ 「NTFS の仕組み」。TechNet。Microsoft。2009年 10 月 8 日。2017 年12 月 2 日に閲覧。
- ^ 「B*Trees - NTFS ディレクトリ ツリー - 概念 - NTFS ドキュメント」。flatcap.org。2019年5 月 13 日のオリジナルからアーカイブ。2019 年 5 月 13 日取得。
- ^ abcdefg 「NTFS の仕組み」。Windows Server 2003 テクニカル リファレンス。2003 年 3 月 28 日。2011年 9 月 12 日に取得。
- ^ abcd 「付録 A: 製品の動作」。[MS-FSA]: ファイル システム アルゴリズム。Microsoft。2018 年 9 月 12 日。2018年 10 月 1 日に取得。NTFS
は、既定のクラスター サイズとして 4 KB を使用します。最大クラスター サイズは、Windows 10 v1703 オペレーティング システムおよび Windows Server 2016 以前では 64 KB、Windows 10 v1709 オペレーティング システムおよび Windows Server 2019 以降では 2 MB、最小クラスター サイズは 512 バイトです。
- ^ 「付録 A: 製品の動作」。[MS-FSA]: ファイル システム アルゴリズム。Microsoft。2013 年 11 月 14 日。2012年 9月 21 日に取得。
- ^ ab Russon, Richard; Fledel, Yuval. 「NTFS ドキュメント」(PDF)。2022 年 10 月 9 日のオリジナルからアーカイブ(PDF) 。2011 年 6 月 26 日閲覧。
- ^ 「SYSTEMTIME 構造体 (minwinbase.h)」。Microsoft。2021 年 10 月 5 日。2024 年1 月 7 日閲覧。
- ^ Rick Vanover (2011 年 9 月 14 日)。「Windows Server 8 のデータ重複除去」。2016 年 7 月 18 日時点のオリジナルよりアーカイブ。2011年 12 月 2 日閲覧。
- ^ Sammes, Tony; Jenkinson, Brian 編 (2007)、「The New Technology File System」、Forensic Computing、ロンドン: Springer、pp. 215–275、doi :10.1007/978-1-84628-732-9_6、ISBN 978-1-84628-732-9、 2024-08-14取得
- ^ Weiss, David (2022-08-01). 「NTFSとは何か、どのように機能するのか?」Datto . 2024-08-14閲覧。
- ^ 「新しいテクノロジーファイルシステム - 概要 | ScienceDirect Topics」www.sciencedirect.com 。 2024年8月14日閲覧。
- ^ ab カスター、ヘレン (1994)。Windows NT ファイル システムの内部。Microsoft Press。ISBN 978-1-55615-660-1。
- ^ 「NTFS3 — Linux カーネルのドキュメント」www.kernel.org . 2021年12月2日閲覧。
- ^ “ntfs-3g”. www.freebsd.org . 2021年12月2日閲覧。
- ^ Kozierok, Charles (2018年2月14日). 「NTFSの概要と歴史」. PCガイド. 2019年5月30日閲覧。
- ^ カスター、ヘレン (1994)。Windows NT ファイル システムの内部。Microsoft Press。p . vii。ISBN 978-1-55615-660-1。
- ^ 「NTFS ドライブでの起動失敗後の Windows NT の回復」。Microsoft。2006 年 11 月 1 日。
- ^ ab Russinovich, Mark (2006 年6月 30 日)。「Win2K NTFS の内部、パート 1」。MSDN。Microsoft。2008年 4 月 18日閲覧。
- ^ 「Windows NT 4.0 Service Pack 4 の新機能」。Microsoft.com。1999年 1 月 12 日。1999 年 1 月 17 日時点のオリジナルよりアーカイブ。2018年8 月 17 日閲覧。
- ^ 「NTFS 3.1 ファイル システムの新機能と特徴」。Microsoft。2007 年 12 月 1 日。2006 年 11 月 16 日時点のオリジナルよりアーカイブ。
- ^ 「NTFS の概要」。LSoft Technologies Inc.
- ^ Loveall, John (2006). 「Windows Vista および Windows Server 2008 のストレージ機能強化」(PowerPoint)。Microsoft。pp. 14–20 。2007 年 9 月 4 日閲覧。
- ^ 「2 TB を超えるハードディスクに対する Windows のサポート」 。Microsoft Learn。2013年 6 月 26 日。2024年 8 月 8 日閲覧。
- ^ 「NTFS、FAT、exFAT の既定のクラスター サイズ」。Microsoftサポート。2024 年 3 月 9 日のオリジナルからアーカイブ。
- ^ 「GPT からの起動」。Rodsbooks.com。2018年9 月 22 日閲覧。
- ^ 「NTFS vs FAT vs exFAT - NTFS.com」。www.ntfs.com 。 2021年1月19日閲覧。
- ^ ab cfsbloggers (2006 年 7 月 14 日)。「Windows XP とのデュアルブート時に Windows Vista の復元ポイントとその他の回復機能が受ける影響」。The Filing Cabinet。2006年 7 月 18 日のオリジナルからアーカイブ。2007 年 3 月 21 日取得。
- ^ 「FAT ディスクを NTFS に変換する方法」。Microsoft。2017 年 12 月 18 日。2019 年5 月 30 日閲覧。
- ^ 「FAQ: Convert.exe を使用してパーティションを NTFS ファイル システムに変換する方法」香港教育大学。2007 年 2 月 12 日。2023 年 12 月 6 日時点のオリジナルよりアーカイブ。2010年 12 月 26 日閲覧。
- ^ 「FreeBSD 3.2 リリースノート」。1999年5月17日。 2020年6月15日閲覧。
- ^ ab "mount_ntfs - OpenBSD マニュアルページ" . 2020 年 6 月 15 日閲覧。
- ^ 「NetBSD 1.5 を発表」。2000 年 12 月 6 日。2020 年 6 月 15 日閲覧。
- ^ “OpenBSD 4.9”. Openbsd.com . 2018年9月22日閲覧。
- ^ ab 「NTFS のクレジットと履歴」。Linux-NTFS プロジェクト。2021 年 9 月 24 日時点のオリジナルよりアーカイブ。2021 年 9 月 24 日閲覧。
- ^ 「カーネル開発」. lwn.net . 2002年5月2日. 2021年9月5日閲覧。
- ^ 「v2.5.11 のリリースノート」。2002 年 4 月 29 日。2021 年 9 月 5 日閲覧。
- ^ “2.6.15 changelog”. Linuxプロジェクト. 2006年1月3日. 2021年9月5日閲覧。
- ^ Anderson, Tim (2021-09-06). 「Linuxカーネル5.15に新しいNTFSサポートが追加され、GitHubは「役に立たないゴミ」をマージするとLinus Torvalds氏が語る」The Register 。 2021年9月7日閲覧。
- ^ 「OpenBSD がユーザーランドにファイルシステムを追加するための fuse(4) サポートを追加」OpenBSD Journal 2013-11-08 2013-11-08閲覧。
- ^ 「NTFS-3G 安定読み取り/書き込みドライバー」。2009 年 7 月 25 日。
- ^ 「Tuxera NTFS for Mac」。Tuxera。2011 年 8 月 30 日。2011年9 月 20 日閲覧。
- ^ 「Jan Kratochvil: Captive: GNU/Linux 向けの最初の無料の NTFS 読み取り/書き込みファイルシステム」 。2020年 6 月 15 日閲覧。
- ^ 「Tuxeraについて」 。 2020年6月15日閲覧。
- ^ “10.6: ネイティブ NTFS 読み取り/書き込みサポートを有効にする”. 2009年10月1日. 2021年9月5日時点のオリジナルよりアーカイブ。2021年9月5日閲覧。
- ^ 「Microsoft NTFS for Mac」。Paragon Software Group 。 2024年8月8日閲覧。
- ^ 「大容量データストレージソリューションのリーダー | Seagate US」。Seagate.com 。 2011年2月10日時点のオリジナルよりアーカイブ。
- ^ 「NetDrive 用 NTFS プラグイン」。ecsoft2.org 。2020年 9 月 9 日閲覧。
- ^ 「NetDrive for OS/2」。arcanoae.com 。 2020年9月9日閲覧。
- ^ 「Avira NTFS4DOS Personal」。2010年6月19日時点のオリジナルよりアーカイブ。 2009年7月25日閲覧。
- ^ 「Avira NTFS4DOS Personal 1.9 をダウンロード」。2013年11月10日時点のオリジナルよりアーカイブ。 2018年9月22日閲覧。
- ^ ab 「セキュリティ記述子と アクセス制御リストの仕組み」。TechNet。Microsoft。2015年9月4 日閲覧。
- ^ Morello, John (2007 年 2 月)。「Security Watch EFS の展開: パート 1」。Technet Magazine。Microsoft。2009年1月 25 日閲覧。
- ^ 「EFS の仕組み」。Windows 2000 リソース キット。Microsoft。2012年 7 月 18 日。2014年2 月 25 日に閲覧。
- ^ 「Windows 8 ボリュームの以前のバージョンの Windows との互換性に関する考慮事項」。2024 年 1 月 17 日。2024 年 8 月 8 日閲覧。
- ^ 「変更ジャーナル」。Microsoft Docs。2021年 1 月 7 日。2023年 8 月 12 日に閲覧。
- ^ 「変更ジャーナルの作成、変更、および削除 (Windows)」。Microsoft Docs。2021年 1 月 7 日。2023 年 8 月 12 日に閲覧。
- ^ 「第 29 章 - POSIX 互換性」。MS Windows NT Workstation 4.0 リソース ガイド。Microsoft。1995年。2013年10 月 21 日閲覧。
- ^ 「ハード リンクとジャンクション」。MSDN。Microsoft。2013年 10 月 12 日。2013 年10月21 日に閲覧。
- ^ 「MSDN – CreateHardLink 関数」 。2016年1 月 14 日閲覧。
- ^ 「Streams - Sysinternals」。Microsoft Docs。2021年3月23日。 2023年8月12日閲覧。
- ^ 「FileSystem Provider」。Microsoft。2012年8月9日。2015年1月23日時点のオリジナルよりアーカイブ。2015年1月23日閲覧。
- ^ Russinovich, Mark E. ; Solomon, David A.; Ionescu, Alex (2009). 「ファイル システム」。Windows Internals (第 5 版)。Microsoft Press。p. 921。ISBN 978-0-7356-2530-3複数のデータストリームを使用するWindowsのコンポーネントの1つは、
添付ファイル実行サービスです[...] ファイルがどのゾーンからダウンロードされたかに応じて[...] Windowsエクスプローラーはユーザーに警告する場合があります
- ^ Boyd, Christopher (2022年10月26日). 「不正な署名トリックによりMark of the Webを回避可能」Malwarebytes . 2023年5月15日閲覧。
- ^ DHB-MSFT (2023 年 2 月 28 日)。「Office ではインターネットからのマクロが既定でブロックされる - Office の展開」。learn.microsoft.com。2023年5 月 15 日閲覧。
- ^ https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/ms537183(v=vs.85)?redirectedfrom=MSDN
- ^ 「代替データストリームを利用するマルウェア?」AusCERT Web Log 2007年8月21日。2011年2月23日時点のオリジナルよりアーカイブ。
- ^ https://github.com/fafalone/ZoneStripper
- ^ 「ファイルの圧縮と解凍」。MSDN プラットフォーム SDK: ファイル システム。2005年 8 月 18 日閲覧。
- ^ 「NTFS および FAT ファイル システムの既定のクラスター サイズ」。Microsoft。2002 年 1 月 31 日。2012年 1 月 10 日に取得。
- ^ 「NTFS の仕組み」 2003 年 3 月 28 日. 2011 年 10 月 24 日閲覧。
- ^ Masiero, Manuel (2011-12-01). 「SSD でデータを圧縮すべきか?」Tom's Hardware . Bestofmedia Group . 2013-04-05閲覧。
- ^ ab Middleton, Dennis. 「Understanding NTFS Compression」. Ntdebugging Blog . Microsoft . 2011 年 6 月 29 日時点のオリジナルよりアーカイブ。2011 年 3 月 16 日閲覧。
- ^ 「ギャップの縮小: NTFS 圧縮ファイルの切り分け」2011 年 5 月 29 日閲覧。
- ^ 「ディスクの概念とトラブルシューティング」。Microsoft。2008 年 9 月 11 日。2012 年 3 月 26 日閲覧。
- ^ 「[MS-XCA]: Xpress圧縮アルゴリズム」。2023年1月31日。
- ^ 「wimlib: オープン ソースの Windows Imaging (WIM) ライブラリ - 圧縮アルゴリズム」。
- ^ 「コンパクト OS、単一インスタンス化、およびイメージの最適化」。Microsoft 。2019 年10 月 1 日閲覧。
- ^ abcd Raymond Chen (2019 年 6 月 18 日)。「WofCompressedData とは何ですか? WOF は Windows がダメだということを意味しますか?」Microsoft DevBlogs。
- ^ Biggers, Eric (2019 年 4 月 29 日). 「NTFS-3G プラグイン (「システム圧縮」ファイルを読み取るため)」. GitHub . 2019 年10 月 1 日閲覧。
- ^ 「Re: [ntfs-3g-devel] Windows 10の「システム圧縮」ファイルの実験的サポート」。SourceForge.net 。 2019年10月1日閲覧。
- ^ 「DISM の概要」。2021 年 12 月 15 日。
- ^ 「コンパクト」。2023年2月3日。
- ^ 「Windows イメージ ファイル ブート (WIMBoot) の概要」。2015 年 3 月 10 日。
- ^ 「スパース ファイル」。MSDN。Microsoft。2013年 10 月 12 日。2013年10月 21 日に閲覧。
- ^ Kandoth, Suresh B. (2009 年 3 月 4 日)。「スパース ファイル エラー: ファイルの断片化による 1450 または 665: 修正と回避策」。CSS SQL Server エンジニア。Microsoft。2013年 10 月 21 日時点のオリジナルからアーカイブ。2013 年10 月 21日閲覧。
- ^ 「スパース ファイルとディスク クォータ」。MSDNライブラリ。Microsoft。2013年 10 月 12 日。2013年10 月 21 日に閲覧。
- ^ 「Transactional NTFS」。MSDN。Microsoft。2007-02-21のオリジナルからアーカイブ。2007-02-02に取得。
- ^ 「Transactional NTFS (TxF)」。Microsoft Docs。Microsoft。2022年 7 月 20 日。2023 年8 月 12 日に閲覧。
- ^ 「外付けドライブの OneDrive フォルダーに同期されたコンテンツを開くことができません」 。Microsoftサポート。2021 年 4 月 3 日閲覧。
- ^ André, Jean-Pierre (2019年3月1日). 「NTFS-3G: ジャンクションポイント、シンボリックリンク、再解析ポイント」. jp-andre.pagesperso-orange.fr . 2022年8月28日時点のオリジナルよりアーカイブ。
- ^ 「第 18 章 – ファイル システムの選択」。MS Windows NT Workstation 4.0 リソース ガイド。Microsoft。2014年 2 月 20 日。2014年2 月 25 日に閲覧。
- ^ 「ファイル、パス、および名前空間の命名」。MSDN。Microsoft。命名規則。2014年2月25 日閲覧。
- ^ 「NTFS. パーティション ブート セクター」。Ntfs.com。2018年9月 22 日閲覧。
- ^ 「ブート セクター」。Technet.microsoft.com。2008年 9 月 11 日。表 1.13 NTFS ボリュームの BPB および拡張 BPB フィールド。2018 年9 月 22 日に取得。
- ^ 「マスター ファイル テーブル」。MSDN。2012年7 月 2 日。
- ^ 「フォレンジック:MFT ミラーとは?」。データはどこにありますか? 2009 年 6 月 5 日。2021年 7 月 30 日閲覧。
- ^ 「NTFS マスター ファイル テーブル (MFT)」。Ntfs.com。2018年9 月 22 日閲覧。
- ^ Schwarz, Thomas. 「COEN 252 コンピューターフォレンジック NTFS」。ザグレブ大学組織情報学部。2021年2月27日時点のオリジナルよりアーカイブ。 2019年5月30日閲覧。
- ^ ab 「OEM サポート ツール フェーズ 3 サービス リリース 2 の可用性」。Microsoft Corporation。2007 年 2 月 21 日。2015 年 2 月 23 日にオリジナルからアーカイブ。2010年 6 月 16 日に取得。Windows
NT ファイル システム (NTFS) ファイル セクター情報ユーティリティ... NTFS ボリュームに関する情報をダンプするために使用されるツール
- ^ 「NTFS ファイル増加の 4 つの段階」。2018 年 9 月 23 日時点のオリジナルよりアーカイブ。2018年9 月 22 日閲覧。
- ^ 「NTFS ボリューム内の断片化が激しいファイルは、一定のサイズを超えて拡張できない場合があります」。2021 年 5 月 6 日時点のオリジナルよりアーカイブ。2021 年 5 月 19 日閲覧。
- ^ 「Windows 環境での Oplocks の機能: 概要」。2010 年 8 月 23 日時点のオリジナルよりアーカイブ。2018 年 12 月 19 日に取得。
- ^ 「NTFS の新機能」。Technet.microsoft.com。2012年 7 月 2 日。2018 年9 月 22 日に閲覧。
- ^ Gilligan, Jonathan (2001 年 5 月 28 日)。「夏時間のバグを克服し、正しいファイル変更時刻を取得する」。The Code Project。
さらに読む
- Bolosky, William J.、Corbin, Scott、Goebel, David、Douceur, John R. (2000 年 1 月)。「Windows 2000 のシングル インスタンス ストレージ」。第 4 回 USENIX Windows システム シンポジウムの議事録。
- カスター、ヘレン (1994)。Windows NT ファイル システムの内部。Microsoft Press。ISBN 978-1-55615-660-1。
- Nagar, Rajeev (1997)。Windows NTファイル システムの内部: 開発者ガイド。O'Reilly。ISBN 978-1-56592-249-5。
- 「 NTFSテクニカル リファレンス」。Microsoft TechNet。Microsoft。2003年3 月 28 日。
外部リンク
- NTFS3
- NTFS3 ソースコード
