Linux 7.0 と 7.1 における NTFS ドライバー変更の整理

Linux 7.1 では、新しい任意のカーネル内 NTFS 読み書きドライバーが追加されます。これは ntfs-3g や ntfs3 を直接置き換えるものではなく、併存する選択肢です。

Linux 7.0 の公開後、7.1 は次の機能マージ期間に入りました。そこで注目される変更の一つが、新しい NTFS カーネルドライバーです。

ここでいう「新しい」は、Linux が初めて NTFS に対応するという意味ではありません。また、ntfs3 が置き換えられるという意味でもありません。より正確には、Linux 7.1 に新しい任意のカーネル内 NTFS 読み書きドライバーが追加されます。これは昔からあるカーネル内 ntfs ドライバーを整理し直し、より完全な書き込み機能を補ったものです。

まず結論

Linux での NTFS 対応は、現在おもに三つのルートがあります。

方式 場所 読み書き 向いている場面
ntfs-3g ユーザー空間 FUSE 読み書き 安定性優先。長く使われてきたディストリビューション標準
ntfs3 カーネル空間 読み書き より直接的なカーネル統合と性能を求める場合
ntfs カーネル空間 読み書き Linux 7.1 で追加される任意の実装

今回の変更は強制移行ではなく、選択肢が一つ増えるという話です。普通のユーザーは、当面ディストリビューションの標準設定に従えば十分です。

7.0 と 7.1 の関係

Linux 7.0 は、カーネルのバージョンが 7.x 系列に入ったことを示します。7.0 で NTFS 対応が突然書き換えられたわけではありません。NTFS に関する新しい変更は、7.1 の機能マージ段階で入ります。

NTFS は Linux デスクトップユーザーにとって避けて通れないファイルシステムです。デュアルブート、外付けドライブ、USB メモリ、Windows データディスクでよく使われます。問題は、NTFS の書き込み経路が複雑なことです。ファイルシステムドライバーにバグがあると、ユーザーデータへ直接影響します。そのため、カーネルコミュニティは NTFS ドライバーの変更に慎重です。

ntfs-3gntfs3、新 ntfs

ntfs-3g はユーザー空間の FUSE ドライバーで、Linux 上の NTFS 読み書きを長く担ってきました。常に最速とは限りませんが、成熟しており、互換性が高く、情報も豊富です。

ntfs3 は Paragon Software が提供し、Linux メインラインに入ったカーネル内 NTFS ドライバーです。経路が短く、VFS との統合も直接的で、理論上の性能も高くなります。ただし、ファイルシステムドライバーには高い保守品質が求められるため、ntfs3 のマージ後も保守ペースやコード品質について議論がありました。

Linux 7.1 で追加される ntfs ドライバーは、Namjae Jeon が保守しています。ゼロから作られたものではなく、古いカーネル ntfs ドライバーを現代化し、読み書き能力を補った別の任意実装です。ntfs3 と併存します。

三者の関係は次のように考えると分かりやすいです。

  1. ntfs-3g:保守的で成熟したユーザー空間実装。
  2. ntfs3:すでにメインラインにあるカーネル内実装。
  3. ntfs:7.1 で追加されるカーネル内実装。安定性は今後の観察が必要。

どれを使うべきか

日常利用で急いで切り替える必要はありません。保守的には次の順番が無難です。

  1. 重要なデータでは、ディストリビューション標準の方式を使う。多くの場合は ntfs-3g、または検証済みの ntfs3
  2. 性能が必要な場合は ntfs3 を試す。
  3. 新しい ntfs ドライバーは、まずテスト用ディスク、一時データ、復旧可能なデータで試す。
  4. 重要な NTFS パーティションへ書き込む前にバックアップする。

ntfs3 を手動で使う場合の一般的なマウント例です。

1
sudo mount -t ntfs3 /dev/sdX1 /mnt/ntfs

一時的に読み取りだけしたい場合は、読み取り専用でマウントできます。

1
sudo mount -o ro /dev/sdX1 /mnt/ntfs

現在どのドライバーでマウントされているかは、次のように確認できます。

1
2
findmnt -T /mnt/ntfs
mount | grep ntfs

デュアルブート環境での注意

NTFS パーティションが Windows のシステムディスク由来の場合、書き込む前に Windows が完全にシャットダウンされていることを確認してください。高速スタートアップや休止状態は NTFS ボリュームを未完了の状態に残すため、Linux から書き込むと整合性問題が起きることがあります。

確認したい項目は次の通りです。

  1. Windows の高速スタートアップを無効にする。
  2. パーティションが hibernation 状態でないことを確認する。
  3. BitLocker などの暗号化がアクセスを妨げていないことを確認する。
  4. 外付けドライブは Windows で正しく取り外す。

これは ntfs-3gntfs3、新しい ntfs のどれを使う場合でも同じです。

なぜ複数の NTFS ドライバーが必要なのか

同じファイルシステムに複数の実装が存在することは、Linux では珍しくありません。古い実装、新しい実装、ベンダー実装、コミュニティ実装がしばらく併存し、保守状況と実利用のフィードバックによって主流が決まっていきます。

NTFS では特に保守的な扱いが必要です。

  1. ユーザーデータへのリスクが高い。
  2. 互換性の場面が複雑。
  3. 実装ごとに性能と安定性の取捨選択が異なる。
  4. ディストリビューションが標準設定を検証する時間が必要。

そのため、Linux 7.1 の新 ntfs ドライバーは、ntfs-3gntfs3 をすぐ不要にするものではありません。カーネルコミュニティに、もう一つ保守可能な選択肢を与えるものです。

まとめ

Linux 7.1 で追加される ntfs ドライバーは、任意で使えるカーネル内 NTFS 読み書き実装です。ntfs-3gntfs3 と併存し、どちらかを直接置き換えるものではありません。

普通のユーザーは、引き続きディストリビューション標準の方式を使えば十分です。性能や新しいファイルシステム実装を試したい場合は、ntfs3 と新 ntfs の今後の安定性を見ながら、重要データでは必ずバックアップを取ってから切り替えるのが安全です。

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。