어떻게 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.