NTFS では使えない文字がある:の嘘。Windows と Linux のデュアルブート

この記事にはいろいろご意見があるかもしれませんね。


openSUSE でスクリーンショットを取って ntfs パーティションに保存したときに気がついたのですが、Windows では「使ってはいけない文字」を NTFSフォーマットは受け付けて書き込むことができるわけです。

たとえば、スクリーンショットを取って、":" なんかが入っているファイルを ntfs-3g は平気で書き込んでくれます。これを Windows に切り替えて Gimp2 で開くとこんな感じになります。

NTFS では使えない文字がある:の嘘。Windows と Linux のデュアルブート_a0056607_19551123.jpg


もちろんフォトビューワでも読めないし、 Explorer から削除も受け付けません。

つまり NTFS は「ほとんどどんな条件のファイルでも受け付ける」のですが Windows (あるいはアプリケーション)はそれを許さないということです。

よくある話ですが NTFS は256「文字」までという制限がありますが、この数字が「バイト」なのか「2バイト」なのかはよくわかりません。ただ、Windows 2000 ころまでは Bytes だったような気がします。

やったことないので確信は持てないのですが

C:\1\2\3\...............\250(位)までディレクトリを掘って、 ...\250 に1万個くらいファイルをぎりぎりの長さで作ります。その後 C:\1 を "C:\すんご長いフォルダ名だよーxxxxxxxxxxxxxx--wwww"みたいにリネームしたとき、どういう動きをするんでしょうね。

怖くてやっていませんけど。

ファイル名とパスの最大長の色々

--
こういった問題はいつもファイルサーバのマイグレーション作業にはつき物です。私の得意な Novell NSS のマイグレーションではたまに 「256 文字」の制限に引っかかるファイルがあるのですが、いったいこのようなファイルはどのように作られたのでしょうね、不思議です。こういうファイル名がマルチOS対応のファイルサーバーの共有フォルダなんかにあると Windows のバージョンによっては、Search するだけで、おなじみのブルースクリーンが出てきたりします。

(たいていIEの「全部保存」では許されるみたいです。素敵な長いファイル名を作ってくれます。多分「ファイル制限」を無視したバグでしょう)

つまりはファイルシステムの制限ではなく、OSの仕様による制限なんですね。

おそらく、 Linux から ntfs-3g を使えば 「256 文字」以上の素敵なディレクトリも作ってくれるかもしれません。 Novell NSS ではこういったファイル名の長さに制限がないため、 厳密なファイル名規則を守る Windows のエクスプローラーからファイルをバックアップすると「アクセスできない」ファイルが山のように生まれます。もっともそれが Windows のアプリケーションで作られたファイルだからクセが悪い。それも純正 Microsoft 純正Office だのIEで「できちゃったファイル」だから、エンドユーザへの説明に困ります。

それから、数万のファイルがあるフォルダの属性を変えたとき、「ほとんど固まる」状況も何とかしてほしい。



あと、いろいろ調べたんだけど、 NTFS だけは「デフラグ」というウラ業務が必須らしいですね。初めて知った私は馬鹿です。そういた Novell NSS, MAC, Linux もデフラグの機能ないしなあ。

デフラグの必要がある NTFS 上でデフラグが必要な Hyper-V の仮想イメージを動かしている皆様のご努力には頭が上がりません。これ毎日の管理者の仕事ですからね。C:ドライブなら、システムの再起動が必要だし。

一番いいのは Windows が EXT3 とか ZFS なんかを動かしてくれることなんですけど。

夢ですかね。

サーバ移行のコツ - Windows のファイル名の謎

ファイル名の問題:開けない共有のフォルダ、ファイル



islandcenter.jp

by islandcenter | 2012-07-24 20:39 | Windows | Comments(0)