blog.anqou.net
rss
author
tags

Linux で NTFS のディスクをマウントする

#追記(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 からは読み取りだけにしておくのが無難そうです。