Windows 7 で大文字と小文字を区別するファイルシステムを持つ仮想ディスクを作成するにはどうすればよいですか?

Windows 7 で大文字と小文字を区別するファイルシステムを持つ仮想ディスクを作成するにはどうすればよいですか?

正確にどのファイルシステムになるかは気にしません。ファイル パスが大文字と小文字を区別して動作することだけが必要です。

おそらく、大文字と小文字の区別が有効になっている Linux ボックス上の samba 共有と同様の動作です。ディスクをローカルに保存する必要があることを除けば、これは完璧です。

そのためのドライバーやツールはありますか?

私はすでにWindows用のext2ドライバをいくつか試しましたが、この目的には機能しませんでした:( (http://www.fs-driver.org/そしてhttp://www.fs-driver.org/

答え1

簡単に答えると「いいえ」です。長い答えは...

NTFS はファイル名を大文字と小文字を区別して保存します (NTFS では README.txt と readme.txt を同じディレクトリに置くことができます)。また、Windows ファイル マネージャーでも、NtOpenFile / NtCreateFile システム コールを介してファイル名に対する大文字と小文字を区別する要求を内部的に管理できます。

残念なことに、Win32 関数 CreateFile (fopen を含むあらゆる場所で使用) は、OBJ_CASE_INSENSITIVE フラグを使用して内部的に NtCreateFile を呼び出します。つまり、CreateFile を使用するすべてのアプリケーションは、大文字と小文字を区別するファイルシステムを大文字と小文字を区別せずに認識することになります。実際には、ファイルシステムが実際に内部で大文字と小文字を区別しているかどうかに関係なく、すべてのアプリケーションはファイルシステムを大文字と小文字を区別せずに認識することになります。

大文字と小文字の区別を実質的に強制する唯一の方法は、着信システムコール要求から OBJ_CASE_INSENSITIVE フラグを削除するフィルター ドライバーを作成し、NTFS、EXT2、またはその他の内部ファイル システムがデフォルトの大文字と小文字を区別する方法で動作できるようにすることです。

答え2

Windows 内からこれを実行することは可能ですが、C を記述できる必要があります。

NTFSは実際には大文字と小文字を区別して名前を保存します(POSIX サブシステムをサポートするため)。ただし、NTFS 自体は、実際には大文字と小文字を区別する機能をサポートしていません。NT はもともと UNIX の直接の競合製品として作成されたことを考えると、これは驚くことではありません。

マイクロソフトサポートサイト

リンク

http://www.netbsd.org/docs/pkgsrc/platforms.html#interix

答え3

唯一の方法は、仮想化された Linux をインストールし、VM のドライブを Windows と共有することのようです。

私もインターネットで同じ解決策を探していましたが、主に、大文字と小文字だけが異なるファイルを持つ Linux システムから GIT リポジトリをチェックアウトするためです (なぜそれらが存在するのかを説教しないでください。それは私の手に負えないことです)。しかし、独自のサブシステムを作成するか、Interix (現在の Unix サービス) サブシステムに深く統合する以外に、これを実行する比較的簡単な方法はないようです。

関連情報