ntfs-3g를 사용하여 Windows 파일 시스템 대소문자 의미를 에뮬레이트할 수 있습니까?

ntfs-3g를 사용하여 Windows 파일 시스템 대소문자 의미를 에뮬레이트할 수 있습니까?

Windows 시스템의 NTFS의 경우 "ABC" 디렉터리를 생성한 다음 "abc" 디렉터리를 생성하려고 시도하면 Windows에서는 두 디렉터리가 동일한 이름을 가지고 있다고 생각하기 때문에 거부됩니다.

이제 Linux에서는 표준 ntfs-3g 파일 시스템에서는 이런 일이 발생하지 않습니다(NTFS는 기본적으로 둘 다 허용하지만 Windows는 허용하지 않음).

나는 이로 인해 -t lowntfs-3g -o ignore_case오류가 발생한 것을 발견했지만 모든 것을 소문자로 강제하여 그렇게 했습니다. mkdir ABC밝혀지다 abc.

Windows 접근 방식을 따르는 Linux에서 NTFS를 사용할 수 있는 방법이 있습니까? 표시 목적으로 대소문자를 유지하지만 작업 시 대소문자를 구분하지 않습니까?

답변1

Windows 접근 방식을 따르는 Linux에서 NTFS를 사용할 수 있는 방법이 있습니까? 표시 목적으로 대소문자를 유지하지만 작업 시 대소문자를 구분하지 않습니까?

표시 목적시스템에 알려지지 않은 경우 파일 시스템에서 디렉터리 항목을 읽습니다. 그러니 사건을 지키면서도 무시하는 것은 불가능하다동시에.

openat()/fstat()이는 파일 시스템 구현이 ls정보를 읽는지(예: 경유로) 읽는지 알 수 없기 때문입니다 cat.

비록-t lowntfs-3g -o ignore_case전시하다소문자인 경우 원래 대소문자가 유지됩니다. 두 가지 설치 세션을 통해 이를 확인할 수 있습니다.

파일 시스템 생성:

# dd if=/dev/zero of=/tmp/ntfs bs=1M count=100
# mkfs.ntfs -F /tmp/ntfs

이제ignore_case(및 소문자)를 사용하면 다음이 생성됩니다 AbC.

# mount.lowntfs-3g -o ignore_case /tmp/ntfs /mnt
# mkdir /mnt/AbC
# ls /mnt
abc
# umount /mnt

그런 다음 대소문자 변환 없이 동일한 파일 시스템을 제거하고 다시 설치합니다.

# mount.ntfs  /tmp/ntfs /mnt
# ls /mnt
AbC
# umount /mnt

그러나 달성하려는 것은 가능합니다. 내가 보기에 ntfs-3g현재 구현에서는 그렇지 않습니다. 이 동작을 수행하려면 사용자 정의 또는 파일 탐색기를 사용할 수 있습니다 ls(결국 Windows에서 수행함). 예를 들어, 사전 로드 readdir()도 작동할 수 있을 것 같습니다.

관련 정보