38

У меня есть диск Samba, который установлен на моем локальном компьютере с Windows.

У меня есть диск "/mnt/c" в WLS ("Windows 10 bash"), но нет "/mnt/z".

Есть ли способ как-то получить к нему доступ? Могу ли я перемонтировать его в WLS?

4 ответа4

61

по ссылке блеатер выложил

Монтаж DrvFs

Чтобы смонтировать диск Windows с помощью DrvFs, вы можете использовать обычную команду монтирования Linux. Например, чтобы подключить съемный диск D: как каталог /mnt /d, выполните следующие команды:

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

Теперь вы сможете получить доступ к файлам вашего диска D: в /mnt /d. Если вы хотите отключить диск, например, чтобы вы могли безопасно удалить его, выполните следующую команду:

$ sudo umount /mnt/d

Монтаж сетевых локаций

Если вы хотите подключить сетевое расположение, вы, конечно, можете создать подключенный сетевой диск в Windows и смонтировать его, как указано выше. Однако их также можно монтировать напрямую, используя путь UNC:

$ sudo mkdir /mnt/share
$ sudo mount -t drvfs '\\server\share' /mnt/share

Обратите внимание на одинарные кавычки вокруг пути UNC; они необходимы, чтобы избежать необходимости избегать обратной косой черты. Если вы не окружаете путь UNC одинарными кавычками, вам необходимо избежать обратной косой черты, удвоив их (например, \\\\server\\share).

WSL не имеет никакого способа указать, какие учетные данные использовать для подключения к сетевому ресурсу. Если вам нужно использовать разные учетные данные для подключения к серверу, укажите их в Windows, перейдя к общему ресурсу в проводнике, используя диспетчер учетных данных Windows или команду net use. Команда net use может быть вызвана изнутри WSL (используя net.exe) через interop. Введите net.exe help use для получения дополнительной информации о том, как использовать эту команду.

21

[Обновление - по- видимому, эта функция доступна в сборке 16176. Я еще не пробовал.]

Нет, хотя может быть какой-то трюк, который я не обнаружил. Подсистема Windows для Linux не монтирует сетевые диски. Сотрудник Microsoft говорит здесь (в комментарии):

В настоящее время мы только «монтируем» фиксированные диски. В настоящее время USB/ съемные / сетевые диски не обрабатываются. Эта возможность находится в нашем бэклоге, но в ближайшее время ее нет.

Так что не задерживай дыхание.

Я попытался обойти это, используя символическую ссылку, например так:

c:> mklink /d c:\some\directory \\some_server\some_share

Ссылка прекрасно работает в "нормальной" Windows (cmd.exe, PowerShell, файловый менеджер и т.д.), Но невидима для WSL:

$ ls -ld /mnt/c/some/directory
/mnt/c/some/directory not found

Для моего собственного использования это ограничение - ограничитель шоу. У меня есть вещи на сетевых дисках, которые я не хочу переносить. Есть альтернативы; Я использую Cygwin.

0

см. https://github.com/Microsoft/WSL/issues/2999#issuecomment-455835951

Вот способ монтировать GFS в WSL, основанный на получении `sshfs`, работающем на WSL или поиске альтернативы . Хитрость заключается в том, чтобы использовать https://www.nsoftware.com/sftp/netdrive/ для ssh в GFS из Windows и конвертировать его к файловой системе, которая может быть смонтирована под WSL.

  1. Установите OpenSSH Server в Win10 Настройки Win10 -> Приложения -> Управление дополнительными функциями -> Добавить функцию -> Перезапустите сервер OpenSSH, если необходимо, откройте Службы -> OpenSSH -> Свойства -> Тип запуска -> Автоматически (с задержкой)

  2. Установите и запустите SFTPNetDrive, щелкните правой кнопкой мыши значок в скрытых значках -> Главное окно (или, возможно, уже открыто) -> Профиль -> новый профиль (сервер: localhost, пользователь: * pwd: * Буква диска: F (или другое) Дополнительно - > (Протокол -> снять проверку; указанная папка: G:\))

  3. в Баш (wsl): sudo mkdir /mnt /f; sudo mount -t drvfs F: /mnt /f

Я не уверен, насколько он стабилен, но я смог открыть файлы в WSL.

0

Есть (как минимум) два способа использования Bash в Windows:

  1. Bash, поставляемый с WLS (при установке Linux на Windows 10 из Магазина Windows или других источников)
  2. Git-Bash на Windows

Git-Bash имеет доступ к сетевым папкам (установите git-bash> перейдите в сетевую папку> щелкните правой кнопкой мыши> "Git Bash Here"> запустите pwd чтобы увидеть путь).

Если вам нужно использовать версию bash для WLS, вы можете вызвать Git-Bash из bash WLS следующим образом:

WLS_Bash_Shell:$ /mnt/c/Program\ Files/Git/bin/bash.exe ScriptThatUsesNetworkFolders.sh

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