Windows 7에서 대소문자를 구분하는 파일 시스템으로 가상 디스크를 만드는 방법은 무엇입니까?

Windows 7에서 대소문자를 구분하는 파일 시스템으로 가상 디스크를 만드는 방법은 무엇입니까?

정확히 어떤 파일 시스템이 될지는 상관하지 않습니다. 대소문자를 구분하여 작동하려면 파일 경로만 있으면 됩니다.

대소문자 구분이 설정된 Linux 상자의 삼바 공유와 유사한 동작일 수 있습니다. 디스크를 로컬에 저장해야 한다는 점만 제외하면 완벽할 것입니다.

이에 대한 드라이버/도구가 있습니까?

나는 이미 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://support.microsoft.com/kb/100108

링크

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

답변3

유일한 방법은 가상화된 Linux를 설치하고 VM의 드라이브를 Windows에 공유하는 것 같습니다.

나는 동일한 솔루션을 찾기 위해 인터넷을 둘러보았습니다. 주로 대소문자만 다른 파일이 있는 Linux 시스템에서 GIT 저장소를 체크아웃하기 위한 것입니다(그 파일이 왜 거기 있는지는 설명하지 마십시오. 이는 내 통제 범위를 벗어납니다). 그러나 자체 하위 시스템을 작성하거나 Interix(현재 Unix 서비스) 하위 시스템에 깊이 통합하는 것 외에는 비교적 간단한 방법이 없는 것 같습니다.

관련 정보