#追記(2024/09/07)
Linux で mount(1) のマウントオプションを微調整することで安全に NTFS を使おうというのがこの記事の趣旨だったのですが、この記事のとおりにマウントしてデータを書き込んだ場合でもなんかデータが壊れるということが手元で起こってしまったので、 Linux で NTFS の読み書きをするのはやめたほうが良さそうです。代わりに、いまは WSL 経由でコピーする方法を使っています。 WSL では ext4 のディスクをマウントしたりすることもできるので便利です。こちらは今のところ壊れていません。
#元の記事
Linux で NTFS のディスクをマウントする際には、以下のようにするのがよいです:
mount -t ntfs3 -o windows_names /dev/XXXX /mnt/YYYY
実験環境は Ubuntu 24.04 LTS です。
#-t ntfs3
って?
Linux 5.15 からカーネルに NTFS3 のサポートが入っています。 FUSE による実装である ntfs-3g よりもこちらを使うほうがパフォーマンスが出るらしいです。
正直これはこの記事の主題ではなくて、本命は次です。
#-o windows_names
って?
Ubuntu に入っている Nautilus の GUI から NTFS のディスクをマウントすると
Windows では禁止されている名前でもファイル・ディレクトリの作成が可能になります。例えば :
が含まれるファイル名や con
が入ったディレクトリなどが平気で作れます。しかし、そのような不正なファイル・ディレクトリが入った NTFS ディスクを Windows マシンに接続すると、ディスクに問題があるということでスキャン・修理され、その結果ファイルが消えます。
-o windows_names
マウントオプションをつけてディスクをマウントすることで、
Windows 上で不正な名前であればファイル・ディレクトリ作成時に怒ってくれるようになります。ということでぜひつけましょう。
#ちなみに
Windows で使うのでなければ -o windows_names
をつけなくても正しく動きそうなものですが、手元で何度か試した限りだと、Ubuntu でマウントし直した際に Nautilus からマウントできなくなったりもしたので、正直よくわかりません。素直に -o windows_names
を使っておくか、
NTFS のディスクは Ubuntu からは読み取りだけにしておくのが無難そうです。