NTFS
NTFS (New Technology File System) は、Windows および Windows ベースのオペレーティングシステムのための、Microsoft によるプロプライエタリなディスクファイルシステムです。
Linux の使用時に NTFS サポートを実現する主要な方法は、2 通りあります。Linux カーネル 5.15 は、圧縮機能も含む NTFS ファイルシステムの完全なサポートを備えた、新しいドライバ NTFSv3 を提供しています。NTFS-3G という FUSE ファイルシステムドライバもあります - 低速ですが、より安定していて、長くテストされてきた方法です。
インストール
カーネル
Linux カーネル 5.15 より前は、主流だった古い NTFS カーネルドライバは NTFS のうち非常に限られた機能のみをサポートしていました。カーネルコンフィグの情報では、サポートを「部分的だが安全」としています。古いドライバは既存のファイルを上書きすることはできましたが、ファイルやディレクトリの作成、削除、名前の変更を行うことができません。Linux 5.15 現在、古い NTFS コードは、 "NTFSv3" と呼ばれる新しい Paragon のカーネル内 NTFS ドライバによって置き換えられました。このドライバのほうがより多機能で、完全な読み書きと圧縮機能をサポートしています。
5.15 より前のカーネルを実行しているシステムで NTFS を使用する場合は FUSE を利用した NTFS-3G 実装を有効化するのがよいでしょう。
ネイティブサポート
Linux 5.15 以降、新しい NTFSv3 ドライバを使用するには次のカーネルオプションを有効化する必要があります:
File systems ---> DOS/FAT/NT Filesystems ---> <*> NTFS Read-Write file system support <*> activate support of external compressions lzx/xpress
NTFS-3G (FUSE 実装)
5.15 より前の Linux で、FUSE 上での NTFS 読み書きを可能にするには、次のカーネルオプションを有効化する必要があります:
File systems ---> <*> FUSE (Filesystem in Userspace) support
sys-fs/ntfs3g パッケージも必要です (下の emerge の節を参照してください)。
emerge
NTFS-3G
このパッケージは NTFS-3G を使用する場合にのみ必要です。ネイティブサポートを使用する場合には必要ありません!
NTFS-3G は FUSE ベースのファイルシステムなので、ユーザ空間ユーティリティが必要です。これは現時点で、メイン Gentoo リポジトリで利用可能な唯一の FUSE ベース実装です。suid
USE フラグが有効化されていることを確認してください。さもないと、"read only filesystem" エラーが発生することがあります。
USE flags for sys-fs/ntfs3g Open source read-write NTFS driver that runs under FUSE
acl
|
Add support for Access Control Lists |
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
fuse
|
Enable ntfs-3g FUSE driver |
mount-ntfs
|
Install mount.ntfs symlink |
ntfsdecrypt
|
Build and install the ntfsdecrypt application. |
ntfsprogs
|
Enable ntfsprogs |
static-libs
|
Build static versions of dynamic libraries as well |
suid
|
Enable setuid root program(s) |
xattr
|
Add support for extended attributes (filesystem-stored metadata) |
USE フラグを再確認し、必要に応じて修正を加えたら、FUSE ユーザ空間ツールをインストールしてください。これにより NTFS ファイルシステムの操作が可能になるでしょう:
root #
emerge --ask sys-fs/ntfs3g
使い方
作成
mkfs.ntfs コマンドはフォーマットするよう指示されたパーティションの内容を不可逆的に破壊します。このコマンドを実行する前に、正しいパーティションを選択しているか必ず確認してください!
NTFS ファイルシステムを /dev/sda1 パーティション上に作成するには (ntfsprogs
USE フラグが必要です):
root #
mkfs.ntfs /dev/sdyX
/dev/sdyX は実際にフォーマットするパーティションに置き換えてください。
マウント
NTFS ファイルシステムをマウントする方法は複数あります:
- mount - 手動マウント。
- fstab - 起動時の自動マウント。
- removable media - 必要に応じた自動マウント。
- AutoFS - アクセス時の自動マウント。
ネイティブサポート
ネイティブドライバ NTFS3 (カーネル 5.15) を使用して:
root #
mount -t ntfs3 /dev/device /path/to/mountpoint
mount /dev/device /path/to/mountpoint では、
ntfs3
ドライバがロードされている場合でも実行に失敗するかもしれません。-t ntfs3
付きでコマンドを実行するようにしてください。FUSE (NTFS-3G)
ntfs3g パッケージが提供する、読み書き可能なドライバを使用して:
root #
mount -t ntfs-3g /dev/device /path/to/mountpoint
トラブルシューティング
NTFS-3G
Windows がハイバネートした後の NTFS パーティションを強制的にマウントする
Windows によって管理されている NTFS ファイルシステムは、システム起動時間を節約するために、完全にシャットダウンされるのではなくハイバネートされることがあります。これが発生していると、hiberfil.sys ファイルを削除しない限り、その NTFS パーティションをマウントすることはできないでしょう。ハイバネートされたパーティションを強制的にマウントするためには、次のコマンドを使用することができます。これを行うと hiberfile が削除されるので、ファイル内のすべてのデータは失われます。Windows が動作を再開するためには、クリーンブートする必要があるでしょう。
root #
mount -t ntfs-3g -o remove_hiberfile /path/to/device /path/to/mountpoint
Windows システム側では、Windows の不完全なシャットダウンが発生するのを防ぐために、管理者コマンドプロンプトから powercfg /h off を実行することができます。これはハイバネーションを無効化し、おそらく Windows をブートするときのブート時間が増加するでしょうが、ドライブが完全にアンマウントされるメリットがあります。
Windows 10 システムで、ハイバネーションを防止するための管理者権限が取得できない場合、次の回避策を試してみてください:
- Windows をブートし、Windows ログイン画面を表示します。
- 電源ボタン (右下隅) をクリックして、shift キーを押しながら再起動をクリックします。
- 詳細オプションを選択し、UEFI ファームウェアの設定を選択して再起動します。
- UEFI ファームウェアに入ったら、Linux のための適切なブートエントリを選択します。
ntfsfix
NTFS でフォーマットされたパーティションを、Linux システムから修復する必要がある場合があるかもしれません。ntfsfix はこの作業を行うためのツールです:
root #
ntfsfix /dev/nvme0n1p3
Mounting volume... $MFTMirr does not match $MFT (record 3). FAILED Attempting to correct errors... Processing $MFT and $MFTMirr... Reading $MFT... OK Reading $MFTMirr... OK Comparing $MFTMirr to $MFT... FAILED Correcting differences in $MFTMirr record 3...OK Processing of $MFT and $MFTMirr completed successfully. Setting required flags on partition... OK Going to empty the journal ($LogFile)... OK Checking the alternate boot sector... OK NTFS volume version is 3.1. NTFS partition /dev/nvme0n1p3 was processed successfully.
関連項目
- FAT — 当初は MS-DOS (および後の NT 以前の Microsoft Windows) で使用するために作られたファイルシステム。
- Dislocker — FUSE-based filesystem driver capable of reading NTFS BitLocker encrypted partitions.
- UEFI Dual boot with Windows 7/8 — describes how to dual boot Microsoft Windows on a UEFI computer.
外部資料
- NTFS at Microsoft's TechNet
- Linux kernel NTFS filesystem documentation
- Linux kernel NTFS3 filesystem documentation