어떻게 VM웨어 윈도우 게스트를 찾아 리눅스 호스트 공유 폴더에 대소 문자를 구분하지 않는 파일을 작성합니까?


0

vmware windows guest가 대소 문자를 구분하지 않는 파일과 폴더를 찾도록하고 대소 문자를 구분하는 파일 시스템 인 Linux 호스트 공유 폴더에 대소 문자를 구분하지 않는 파일과 폴더를 안정적인 방법으로 작성하는 방법은 무엇입니까?

나는 윈도우 호스트에 글을 써야하는 곳인 VM웨어의 공유 폴더 인 VM웨어에 설치했다.

Linux 호스트에 새로운 대소 문자를 구분하지 않는 파일 시스템을 설치하고 싶지 않습니다.

필자의 리눅스 호스트에 영구적 인 설정을하고 싶지 않다.

VM웨어는 "해야합니까?" 이 처리 할 수 ​​있지만 ... 그리고 나는 바람직하지 않는 VM웨어 또는 Windows에 의존하는 신뢰할 수있는 해결 방법이 필요 ... 문제는 : Windows 게스트에서 응용 프로그램, 리눅스 호스트 공유 폴더에있는 파일을 찾아하지 않습니다 찾을 수는 있지만 ( "대소 문자를 구분하지 않는 방식으로")이 동일한 응용 프로그램이 파일을 공유 폴더에 복사하려고하면 "파일이 이미 있습니다"라는 오류 메시지와 함께 덮어 쓰지 못합니다 ...

고마워!


편향된 관점에서 볼 때, 대소 문자를 구분하지 않는 파일 경로에는 결함이 있고 그 문제는 습관이라고 지적 할 수 있습니다. 어쨌든 응용 프로그램에서 덮어 쓸 수있는 옵션을 제공하거나 대소 문자를 구분하지 않는 경로를 사용해야합니다. 따라서 귀하의 옵션은 더 나은 응용 프로그램을 사용 / 작성하거나 응용 프로그램에서 사용되는 파일 액세스 라이브러리의 공급 업체에 불만을 제기하고 기능 요청을합니다. 또는 대소 문자를 구분하여 파일 경로의 아름다움을 포용하고 전체 세계관을 변경할 수도 있습니다.
Ярослав Рахматуллин

거기에 많은 좋은 소프트웨어가 Windows 방식에 묶여있다 : (. 기능 요청은 스케줄러 ㅎ, 내가 지금 그것을 원한다 :). 나는 대소 문자를 구별하고 있습니다. 그래서 대소 문자를 구별하지 않는 파일 시스템으로 포맷을 피할 수있는 해결책을 원합니다! 영형/
Aquarius Power

답변:


0

많은 요구 사항을 나열했으며 일부는 상호 배타적 인 것으로 보입니다. 그래서 나는 나의 해결책이 그들 모두를 만날 것이라고 주장하지는 않는다.

당신의 리눅스 호스트에 samba 서버를 설치 한 다음 게스트 Windows 시스템에서 "대소 문자를 구분하지 않는"공유를 위해 적절히 구성된 것으로 생각한 적이 있습니까?


문제는 네트워크화 된 삼바 공유를 통한 연결입니다. VM웨어 공유 폴더는 호스트 OS에서 직접 마운트 지점입니다. 그리고 나는 오직 하나의 서브 폴더가 대소 문자를 구별 할 필요가있다. 모든 나머지는 민감하게 남아 있어야한다. 하지만 여전히 삼바가 가장 신뢰할 수있는 방법 일 수 있다고 생각합니다. (또한 ciopfs가 있지만 민감한 폴더의 파일은 소문자로 작성해야합니다. 삼바보다 훨씬 빠를 수 있다고 생각합니다.)
Aquarius Power

0

마침내 필자는 정보가 흩어져있는 부분을 하나씩 만들었고 몇 가지 테스트가 끝나면 기본적으로 할 일은 다음과 같습니다.

net usershare add YourShareName /FullLocalPath/.ToBeShared "Description" everyone:F guest_ok=n
net usershare info --long #confirm it worked
mkdir -v ToBeShared
chmod 0777 ToBeShared #this step seems necessary, needs confirmation
sudo mount -t smbfs localhost:/YourShareName ToBeShared -o username=$USER,nocase
  • "YourShareName"은 네트워크를 통해 볼 수있는 이름입니다.
  • ".ToBeShared"는 직접 액세스해서는 안되는 폴더이므로 숨길 수 있습니다.
  • "ToBeShared"는 ".ToBeShared"가 samba를 통해 마운트 될 폴더입니다!
  • "guest_ok = n"은 원치 않는 액세스를 차단합니다.
  • "username = $ USER"는 네트워크를 통해서만 액세스 할 수 있도록합니다.
  • "nocase"는 삼바가 대소 문자를 구분하지 않도록합니다!

끝내고 나면 다음을 사용 중지합니다.

sudo umount -v ToBeShared

실패 할 경우 범인을 찾는다.

fuser -m ToBeShared

범인을 찾을 수 없다면 :(

sudo umount -l -v ToBeShared

마지막으로 공유를 사용 중지합니다.

net usershare delete YourShareName

그래서 기본적으로이 작업은 "가짜 공유"로 작동합니다. 왜냐하면 네트워크 YourShareName (무시할 수 있음)을 통하지 않고 vmware로 ToBeShared의 파일에 액세스하기 때문입니다. 단점은 약간 더 느리지 만 적어도 리눅스 응용 프로그램에 액세스하는 Windows 응용 프로그램을 중단하지 마십시오!

더 좋은 방법이 있고 삼바보다 빨리 작동 할 수 있다면, 알고 싶습니다.


0

당신은 퓨즈가있는 ciopfs 파일 시스템 주어진 폴더를 두 번째 위치에 마운트합니다. 두 번째 위치를 통해 액세스 할 때 파일 이름은 대소 문자를 구분하지 않습니다.

다음은 웹 페이지에서 사용한 예제입니다.

mkdir -p ~/tmp/ciopfs/{.data,case-insensitive}
ciopfs ~/tmp/ciopfs/.data ~/tmp/ciopfs/case-insensitive
cd ~/tmp/ciopfs
mkdir -p case-insensitive/DeMo/SubFolder
echo demo >> case-insensitive/DEMO/subFolder/MyFile

이 예제는 모든 파일을 ~/tmp/ciopfs/.data 나타나다 ~/tmp/ciopfs/case-insensitive. 마지막 두 명령은 파일 내부의 파일 이름을 보여줍니다. case-insensitive 폴더는 대소 문자를 구분하지 않습니다.

이를 사용하여 데이터 폴더를 다른 위치에 마운트하고 해당 위치를 VM과 공유 할 수 있습니다. 대 / 소문자를 구분하지 않는 폴더를 공유하므로 VM을 통한 액세스는 대 / 소문자를 구분하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.