- SSHFS на Windows 10 для монтирования папки из Linux Debian 10
- Разработка и деплой на rsync
- Я знаю про Docker 🙂
- Проблема на самом деле в PhpStorm
- Разработка на разных компах, в разных сетях
- Монтирование папки из Debian все бы решило
- Вариант с Samba
- Монтирование папки из Linux (Debian) в Windows по SFTP
- Нестандартные порты SSH при монтировании
- Mount a Linux disk in WSL 2 (preview)
- Prerequisites
- Mounting an unpartitioned disk
- Mounting a partitioned disk
- Identifying the filesystem type
- Mount the selected partitions
- Access the disk content
- Unmount the disk
- Mount a VHD in WSL
- Command line reference
- Mounting a specific filesystem
- Mounting a specific partition
- Specifying mount options
- Attaching the disk without mounting it
- Detaching a disk
- Limitations
- Подключение диска Linux в WSL 2 (Предварительная версия)
- Предварительные требования
- Подключение несекционированного диска
- Подключение секционированного диска
- Определение типа файловой системы
- Подключить выбранные секции
- Доступ к содержимому диска
- Отключение диска.
- Подключение виртуального жесткого диска в WSL
- Справочник по командной строке
- Подключение определенной файловой системы
- Подключение определенного раздела
- Указание параметров подключения
- Подключение диска без подключения
- Отсоединение диска
- Ограничения
SSHFS на Windows 10 для монтирования папки из Linux Debian 10
Сегодня расскажу как смонтировать папку (например, с сайтами) из Debian в Windows 10 по SSH (SFTP) с удобным включением/выключением. Под нужным пользователем (www-data) с нужными правами.
Ниже длинное вступление о том как и зачем мне это нужно . Его можно промотать.
Те кто читал мои посты в блоге и видел видосики на канале знают что в основном я занимаюсь разработкой своих сайтов на WordPress, Yii, Laravel. Основной инструмент — PhpStorm. Боевые проекты хостятся на разных вдсках в основном это FastVPS и RuWEB. Везде Debian + Nginx и везде более менее стандартный конфиг (с поправкой на версии и нагрузку кажого из проектов). Всего порядка десяка вдсок.
Разработка и бэкапы на локальной машине под Windows 10 , где крутится усредненный аналог боевой конфиги в VirtualBox . Т.е. дев сервер сейчас это Debian 10 + Nginx 1.15.
Разработка и деплой на rsync
Со всех вдсок sh скрипт с помощью
Я знаю про Docker 🙂
Эта схема не тренд, а мой личный велосипед. Логичнее было все это хозяйство контейнезировать и деплоить через гит. Однако некоторые проекты контейнезировать без потерь крайне сложно, а городить разные инфраструктуры при работе в одни руки не эффективно. Мой велосипед вполне успешно работает уже много лет, но есть одна проблема, над которой я бьюсь столько же лет сколько велосипед существует.
Проблема на самом деле в PhpStorm
В PhpStorm когда вы создаете проект из ранее созданных файлов ( Create New Project from Existing Files ) у вас есть по сути два выбора — файлы проекта расположены локально или удаленно. Если создать проект из удаленных файлов, то PhpStorm будет скачивать их все на локальный диск для индексации. А при изменении закачивать их обратно на удаленный сервер (например по SFTP). Это не проблема, когда разработка идет на одном компьютере.
Разработка на разных компах, в разных сетях
Однако я работаю сразу на 3х — стационарный десктоп под Windows 10, два ноутбука. Один ноут используется дома (нравится мне менять места и позы во время работы), второй используется реже — вне дома. И в этом случае возникает сложность синхронизации локальных проектов одного и того же удаленного проекта. Особенно если это проекты с множеством мелких файлов. Например Laravel c Laravel Mix. Короче жуткая головная боль.
Монтирование папки из Debian все бы решило
Куда проще если бы можно было подмонтировать удаленную папку сайта и создавать проект в PhpStorm как с локальными файлами. В Ubuntu это делается элементарно, а вот под виндой все на порядок сложнее.
Вариант с Samba
В принципе дома у меня работала схема с Samba сервером на дев виртуалке под юзером www-data. Но если работать с дев сервером с улицы (через проброс портов через роутер) и если домашний ip динамический, то возникает несколько сложностей — нужно каждый раз менять ip, пробрасывать порт в роутере ещё и на самбу (лишняя уязвимость), перемонтировать диски. Короче хотелось так чтобы как в Ubuntu. И выход нашелся.
Монтирование папки из Linux (Debian) в Windows по SFTP
Для монтирования папки из Linux в Window 10 по SFTP я использую связку billziss-gh/winfsp + billziss-gh/sshfs-win . WinFSP — это порт https://github.com/libfuse/sshfs под винду. А sshfs — это как раз та сетевая файловая система что используется в Ubuntu для монтирования по SFTP. Как я и хотел.
Итак ставим сначала WinFSP, затем SSHFS-Win. Сразу после перезагрузки диски папки можно будет легко монтировать прямо из проводника Windows 10. См. картинку.
Монтирование папки через проводник в SSHFS-Win
Однако в моем случае это не решило проблему.
Нестандартные порты SSH при монтировании
При монтировании папки через проводник вы можете указать путь до папки на сервере, но не можете указать порт SSH, если ssh висит не на 22. Это можно сделать в командной строке
Источник
Mount a Linux disk in WSL 2 (preview)
If you want to access a Linux disk format that isn’t supported by Windows, you can use WSL 2 to mount your disk and access its content. This tutorial will cover the steps to identify the disk and partition to attach to WSL2, how to mount them, and how to access them.
Administrator access is required to attach a disk to WSL 2. The WSL 2 mount command does not support mounting a disk (or partitions that belong to the disk) that is currently in use. wsl —mount always attaches the entire disk even if only a partition is requested. You can’t mount the Windows installation disk.
Prerequisites
You will need to be on Windows 11 Build 22000 or higher to access this feature. You can join the Windows Insiders Program to get the latest preview builds.
Mounting an unpartitioned disk
In this simplest case, if you have a disk that doesn’t have any partitions, you can mount it directly using the wsl —mount command. First you need to identify the disk.
Identify the disk — To list the available disks in Windows, run:
The disks paths are available under the ‘DeviceID’ columns. Usually under the \\.\PHYSICALDRIVE* format.
Mount the disk — Using PowerShell, you can mount the disk using the Disk path discovered above, run:
Mounting a partitioned disk
If you have a disk that you aren’t sure what file format it is in, or what partitions it has, you can follow the steps below to mount it.
Identify the disk — To list the available disks in Windows, run:
The disks paths are listed after ‘DeviceID’, usually in the \\.\PHYSICALDRIVE* format.
List and select the partitions to mount in WSL 2 — Once the disk is identified, run:
This will make the disk available in WSL 2. (In the case of our example, the is \\.\PHYSICALDRIVE* .
Once attached, the partition can be listed by running the following command inside WSL 2:
This will display the available block devices and their partitions.
Inside Linux, a block device is identified as /dev/
. For example, /dev/sdb3, is the partition number 3 of disk sdb .
Identifying the filesystem type
If you don’t know the type of filesystem of a disk or partition, you can use this command:
This will output the detected filesystem type (under the TYPE=» » format).
Mount the selected partitions
Once you have identified the partitions you want to mount, run this command on each partition:
If you wish to mount the entire disk as a single volume (i.e. if the disk isn’t partitioned), —partition can be omitted.
If omitted, the default filesystem type is «ext4».
Access the disk content
Once mounted, the disk can be accessed under the path pointed to by the config value: automount.root . The default value is /mnt/wsl .
From Windows, the disk can be accessed from File Explorer by navigating to: \\wsl$\\ \\ (pick any Linux distribution).
Unmount the disk
If you want to unmount and detach the disk from WSL 2, run:
Mount a VHD in WSL
You can also mount virtual hard disk files (VHD) into WSL using wsl —mount . To do this, you first need to mount the VHD into Windows using the Mount-VHD command in Windows. Be sure to run this command with administrator privileges. Below is an example where we use this command, and also output the disk path. Be sure to replace
with your actual VHD path.
You can use the output above to obtain the disk path for this VHD and mount that into WSL following the instructions in the previous section.
You can also use this technique to mount and interact with the virtual hard disks of other WSL distros, as each WSL 2 distro is stored via a virtual hard disk file called: ext4.vhdx . By default the VHDs for WSL 2 distros are stored in this path: C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName] , please exercise caution accessing these system files, this is a power user workflow. Make sure to run wsl —shutdown before interacting with this disk to ensure the disk is not in use.
Command line reference
Mounting a specific filesystem
By default, WSL 2 will attempt to mount the device as ext4. To specify another filesystem, run:
For example, to mount a disk as fat, run:
To list the available filesystems in WSL2, run: cat /proc/filesystems
When a disk has been mounted via WSL2 (Linux file system), it is no longer available to mount via an ext4 driver on the Windows file system.
Mounting a specific partition
By default, WSL 2 attempts to mount the entire disk. To mount a specific partition, run:
This only works if the disk is either MBR (Master Boot Record) or GPT (GUID Partition Table). Read about partition styles — MBR and GPT.
Specifying mount options
To specify mount options, run:
Only filesystem specific options are supported at this time. Generic options such as ro, rw, noatime, . are not supported.
Attaching the disk without mounting it
If the disk scheme isn’t supported by any of the above options, you can attach the disk to WSL 2 without mounting it by running:
This will make the block device available inside WSL 2 so it can be mounted manually from there. Use lsblk to list the available block devices inside WSL 2.
Detaching a disk
To detach a disk from WSL 2, run:
If Diskpath is omitted, all attached disks are unmounted and detached.
If one disk fails to unmount, WSL 2 can be forced to exit by running wsl —shutdown , which will detach the disk.
Limitations
At this time, only entire disks can be attached to WSL 2, meaning that it’s not possible to attach only a partition. Concretely, this means that it’s not possible to use wsl —mount to read a partition on the boot device, because that device can’t be detached from Windows.
USB flash drives and SD cards are not supported at this time and will fail to attach to WSL 2. USB disks are supported though.
Only filesystems that are natively supported in the kernel can be mounted by wsl —mount . This means that it’s not possible to use installed filesystem drivers (such as ntfs-3g for example) by calling wsl —mount .
Источник
Подключение диска Linux в WSL 2 (Предварительная версия)
если вы хотите получить доступ к формату диска Linux, который не поддерживается Windows, можно использовать WSL 2 для подключения диска и доступа к его содержимому. В этом учебнике рассматриваются шаги по определению диска и раздела для подключения к WSL2, их подключению и доступу.
Для подключения диска к WSL 2 требуется административный доступ. Команда WSL 2 mount не поддерживает подключение диска (или разделов, принадлежащих диску), которые в настоящее время используются. wsl —mount всегда присоединяет весь диск, даже если запрошен только раздел. невозможно подключить установочный диск Windows.
Предварительные требования
чтобы получить доступ к этой функции, необходимо включить Windows 11 сборки 22000 или более поздней версии. вы можете присоединиться к программе «предварительные оценки» Windows , чтобы получить последние предварительные сборки.
Подключение несекционированного диска
В этом простом случае, если у вас есть диск, на котором нет разделов, его можно подключить напрямую с помощью wsl —mount команды. Сначала необходимо опознать диск.
найдите диск , чтобы вывести список доступных дисков в Windows выполните команду:
Пути к дискам доступны в столбцах «DeviceID». Обычно под \\.\PHYSICALDRIVE* форматом.
Подключение диска . с помощью PowerShell можно подключить диск, используя обнаруженный выше путь к диску, выполнить:
Подключение секционированного диска
Если у вас есть диск, в котором нет уверенности в том, в каком формате находится файл, или какие разделы он содержит, можно выполнить следующие действия, чтобы подключить его.
найдите диск , чтобы вывести список доступных дисков в Windows выполните команду:
Пути к дискам указываются после «DeviceID» (обычно в \\.\PHYSICALDRIVE* формате).
Выведите список и выберите секции для подключения в WSL 2 . После идентификации диска запустите:
Это сделает диск доступным в WSL 2. (В нашем примере — \\.\PHYSICALDRIVE* .
После подключения раздел можно вывести в список, выполнив следующую команду в WSL 2:
Будут отображены доступные блочные устройства и их разделы.
В Linux блочное устройство определяется как /dev/
. Например,/dev/sdb3 — это раздел номер 3 диска sdb .
Выходные данные примера:
Определение типа файловой системы
Если вы не знакомы с типом файловой системы диска или раздела, можно использовать следующую команду:
Будет выведен обнаруженный тип файловой системы (в TYPE=» » формате).
Подключить выбранные секции
Определив разделы, которые необходимо подключить, выполните следующую команду в каждом разделе:
Если вы хотите подключить весь диск как один том (т. е. Если диск не секционируется), —partition можно опустить.
Если этот параметр опущен, то типом файловой системы по умолчанию будет «ext4».
Доступ к содержимому диска
После подключения доступ к диску можно получить по пути, на который указывает значение конфигурации: automount.root . Значение по умолчанию — /mnt/wsl .
с Windows доступ к диску можно получить из проводника, перейдя к: \\wsl$\\ \\ (выберите любой дистрибутив Linux).
Отключение диска.
Если необходимо отключить диск от WSL 2 и отсоединить его от него, выполните команду:
Подключение виртуального жесткого диска в WSL
Вы также можете подключить файлы виртуального жесткого диска (VHD) к WSL с помощью wsl —mount . для этого сначала необходимо подключить виртуальный жесткий диск к Windows с помощью Mount-VHD команды в Windows. Не забудьте выполнить эту команду с правами администратора. Ниже приведен пример, в котором мы используем эту команду, а также выводится путь к диску. Обязательно замените
фактический путь VHD.
Вы можете использовать приведенные выше выходные данные, чтобы получить путь к диску для этого виртуального жесткого диска и подключить его к WSL, следуя инструкциям из предыдущего раздела.
Эту методику также можно использовать для подключения и взаимодействия с виртуальными жесткими дисками других WSL дистрибутивов, так как каждый WSL 2 дистрибутив хранится с помощью файла виртуального жесткого диска с именем: ext4.vhdx . По умолчанию виртуальные жесткие диски для WSL 2 дистрибутивов хранятся по этому пути: C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName] , будьте внимательны при доступе к этим системным файлам, это рабочий процесс Power User. wsl —shutdown Прежде чем использовать этот диск, убедитесь, что он не используется.
Справочник по командной строке
Подключение определенной файловой системы
По умолчанию WSL 2 будет пытаться подключить устройство как ext4. Чтобы указать другую файловую систему, выполните команду:
Например, чтобы подключить диск в файловой системе FAT, выполните команду:
Чтобы получить список доступных файловых систем в WSL2, выполните команду: cat /proc/filesystems
если диск подключен через WSL2 (файловая система Linux), он больше не доступен для подключения через драйвер ext4 в Windowsной файловой системе.
Подключение определенного раздела
По умолчанию WSL 2 пытается подключить весь диск. Чтобы подключить конкретный раздел, выполните команду:
Это работает только в том случае, если диск является основной загрузочной записью (MBR) или GPT (таблица разделов GUID). Узнайте о стилях разделов — MBR и GPT.
Указание параметров подключения
Чтобы указать параметры подключения, выполните:
В настоящее время поддерживаются только параметры файловой системы. Универсальные параметры, такие как ro, rw, noatime, . , не поддерживаются.
Подключение диска без подключения
Если схема диска не поддерживается ни одним из указанных выше параметров, можно подключить диск к WSL 2 без подключения к нему, выполнив:
Это сделает блочное устройство доступным в WSL 2, чтобы его можно было подключить вручную. Используйте lsblk для перечисления доступных блочных устройств в WSL 2.
Отсоединение диска
Чтобы отсоединить диск от WSL 2, выполните команду:
Если Diskpath параметр не указан, все подключенные диски отключаются и отсоединяются.
Если не удается отключить один диск, WSL 2 можно принудительно завершить, выполнив команду wsl —shutdown , которая отключит диск.
Ограничения
В настоящее время к WSL 2 можно подключить только целые диски. Это означает, что невозможно присоединить только один раздел. В частности, это означает, что невозможно использовать wsl —mount для чтения раздела на загрузочном устройстве, так как это устройство не может быть отсоединено от Windows.
Флэш-накопители USB и SD-карты в настоящее время не поддерживаются и не могут быть подключены к WSL 2. Хотя диски USB поддерживаются.
Только системные системы, которые изначально поддерживаются в ядре, могут быть подключены wsl —mount . Это означает, что невозможно использовать установленные драйверы FileSystem (например, NTFS-3G), вызвав wsl —mount .
Источник