Как заставить гостевую Windows vmware искать нечувствительные к регистру файлы и папки и надежно записывать нечувствительные к регистру файлы и папки в общей папке хоста Linux, которая является чувствительной к регистру файловой системой?

У меня есть настройка в vmware, общей папке на хосте Linux, где гостевые окна должны писать.

Я не хочу устанавливать новую нечувствительную к регистру файловую систему на хосте Linux.

Я не хочу устанавливать постоянные конфигурации на моем хосте Linux.

Vmware "должен?"справиться с этим, но это не так ... и мне нужен надежный обходной путь, который предпочтительно не зависит от vmware или windows ... проблема в том, что приложение из гостевой системы Windows ищет файл в общей папке хоста linux и делает не найти его (но он там, "без учета регистра"), поэтому, когда это же приложение пытается скопировать файл в общую папку, происходит сбой с ошибкой, говорящей "файл уже есть", что не позволяет ему быть переписывается ...

Спасибо!

3 ответа3

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 "будет монтироваться через самбу!
  • "guest_ok = n" предотвращает нежелательный доступ.
  • "username = $ USER" убедитесь, что только у вас есть доступ к нему через сеть.
  • "nocase" заставляет самбу работать без учета регистра!

После окончания работы с ним отключите:

sudo umount -v ToBeShared

если не получится, поищите виновника

fuser -m ToBeShared

если вы не можете найти виновника :(

sudo umount -l -v ToBeShared

и, наконец, отключить обмен

net usershare delete YourShareName

Так что в основном это работает как "фальшивый обмен", потому что вы будете обращаться к файлам в ToBeShared с помощью vmware, а не через сеть YourShareName (которую вы можете игнорировать ...). Недостатком является то, что он несколько медленнее, но, по крайней мере, не нарушайте приложения Windows, обращающиеся к файловой системе Linux!

Если есть лучший способ, и / или который может работать быстрее, чем самба, я хотел бы знать, спасибо!

0

Вы перечислили много требований, и некоторые из них кажутся взаимоисключающими. Поэтому я не утверждаю, что мое решение будет соответствовать всем им.

Задумывались ли вы об установке сервера samba на хосте Linux и последующем подключении к правильно настроенному ресурсу «без учета регистра» из гостевой системы Windows?

0

Вы можете использовать файловую систему ciopfs с FUSE для монтирования данной папки во втором месте. При доступе через второе местоположение имена файлов не чувствительны к регистру.

Вот их пример использования с их веб-страницы:

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 больше не чувствительны к регистру.

Вы можете использовать это, чтобы смонтировать папку данных в другом месте и поделиться этим местоположением с виртуальной машиной. Поскольку вы будете использовать общую папку без учета регистра, доступ через виртуальную машину больше не будет чувствительным к регистру.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .