Работа в файловых системах Windows и Linux
При работе с файловыми системами Windows и Linux следует учитывать ряд моментов. В этом пошаговом руководстве рассматриваются некоторые из них, а также приводятся примеры поддержки взаимодействия для смешанного использования команд на основе Windows и Linux.
Хранение файлов и производительность в файловых системах
Мы не рекомендуем работать с разными операционными системами, если на это нет особой причины. Для ускорения производительности сохраняйте файлы в файловой системе WSL, если используете командную строку Linux (Ubuntu, OpenSUSE и т. д.). Если вы работаете в командной строке Windows (PowerShell, командной строке), сохраняйте файлы в файловой системе Windows.
Например, при хранении файлов проекта WSL:
- Используйте корневой каталог файловой системы Linux: \\wsl$\Ubuntu\home\\Project
- Используйте корневой каталог файловой системы Windows: /mnt/c/Users//Project$ или C:\Users\\Project .
Если вы видите /mnt/ в пути к файлу в командной строке WSL, это означает, что вы работаете с подключенного диска. Поэтому диск C:/ ( C:\Users\\Project ) в файловой системе Windows при подключении в командной строке WSL будет выглядеть следующим образом: /mnt/c/Users//Project$ . Файлы проекта можно хранить на подключенном диске, но производительность может повыситься, если вы будете хранить их непосредственно на диске \\wsl$ .
Просмотр текущего каталога в проводнике Windows
Вы можете просмотреть каталог, в котором хранятся файлы, открыв проводник Windows из командной строки:
explorer.exe .
Также можно использовать команду powershell.exe /c start . . Обязательно добавьте точку в конце команды, чтобы открыть текущий каталог.
Чтобы просмотреть все доступные дистрибутивы Linux и их корневые файловые системы в Windows проводнике, введите \\wsl$ в адресной строке.

Учет регистра в именах файлов и каталогов
Чувствительность к регистру определяет, обрабатываются ли прописные (FOO.txt) и строчные буквы (foo.txt) как уникальные (с учетом регистра) или эквивалентные (без учета регистра) в имени файла или каталога. В файловых системах Windows и Linux чувствительность к регистру разная: в Windows он учитывается, а в Linux — нет. Дополнительные сведения о том, как настроить чувствительность к регистру, особенно при подключении дисков с помощью WSL, см. в статье Настройка чувствительности к регистру.
Взаимодействие между командами Windows и Linux
Средства и команды Windows и Linux в WSL могут использоваться взаимозаменяемо.
- Запустить средства Windows (например, notepad.exe) из командной строки Linux (например, Ubuntu).
- Запустить средства Linux (например, grep) из командной строки Windows (например, PowerShell).
- Совместное использование переменных среды между Linux и Windows. (сборка 17063+)
Запуск инструментов Linux из командной строки Windows
Запускайте двоичные файлы Linux из командной строки Windows (CMD или PowerShell), используя wsl (или wsl.exe ).
C:\temp> wsl ls -la
Двоичные файлы вызываются следующим образом.
- Используется тот же рабочий каталог, что и для текущей командной строки или сеанса PowerShell.
- Файл выполняется от имени пользователя WSL по умолчанию.
- Требуются те же права администратора Windows, что и у вызывающего процесса и терминала.
Команда Linux после wsl (или wsl.exe ) обрабатывается как любая команда, выполняемая в WSL. Можно выполнять sudo, конвейерную передачу и перенаправление файлов.
Пример использования sudo для обновления дистрибутива Linux по умолчанию:
C:\temp> wsl sudo apt-get update
Имя пользователя дистрибутива Linux по умолчанию будет указано после выполнения этой команды, и вам будет предложено указать пароль. После правильного ввода пароля дистрибутив скачает обновления.
Смешивание команд Linux и Windows
Ниже приведено несколько примеров смешиваний команд Linux и Windows с помощью PowerShell.
Чтобы выполнить команду Linux ls -la для вывода списка файлов и команду PowerShell findstr для фильтрации результатов слов, содержащих git, объедините команды:
wsl ls -la | findstr "git"
Чтобы выполнить команду PowerShell dir для вывода списка файлов и команду Linux grep для фильтрации результатов слов, содержащих git, объедините команды:
C:\temp> dir | wsl grep git
Чтобы использовать команду Linux ls -la для вывода списка файлов и команду PowerShell > out.txt для вывода этого списка в текстовый файл с именем out.txt, объедините команды:
C:\temp> wsl ls -la > out.txt
Команды, передаваемые в wsl.exe , перенаправляются в процесс WSL без изменения. Пути к файлам должны быть указаны в формате WSL.
Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Linux /proc/cpuinfo с помощью PowerShell, сделайте следующее:
C:\temp> wsl ls -la /proc/cpuinfo
Чтобы выполнить команду Linux ls -la для вывода списка файлов в пути файловой системы Windows C:\Program Files с помощью PowerShell, сделайте следующее:
C:\temp> wsl ls -la "/mnt/c/Program Files"
Запуск инструментов Windows из Linux
WSL может запускать средства Windows непосредственно из командной строки WSL с помощью [tool-name].exe . Например, notepad.exe .
Приложения, выполняемые таким образом, обладают следующими свойствами.
- Рабочим каталогом остается каталог командной строки WSL (в большинстве случаев; исключения описаны ниже).
- Они имеют те же разрешения, что и процесс WSL.
- Они выполняются от имени активного пользователя Windows.
- Они отображаются в диспетчере задач Windows так, как если бы они выполнялись непосредственно из командной строки.
Исполняемые файлы Windows, выполняемые в WSL, обрабатываются аналогично собственным исполняемым файлам Linux — конвейерной передаче, перенаправлению и даже фоновому режиму работы.
Чтобы запустить средство Windows ipconfig.exe , использовать средство Linux grep для фильтрации результатов IPv4, а также средство Linux cut для удаления полей столбцов из дистрибутива Linux (например, Ubuntu), введите:
ipconfig.exe | grep IPv4 | cut -d: -f2
Давайте рассмотрим пример сочетания команд Windows и Linux. Откройте дистрибутив Linux (например, Ubuntu) и создайте текстовый файл: touch foo.txt . Теперь используйте команду Linux ls -la , чтобы отобразить список файлов прямого доступа и сведения об их создании, а также средство Windows PowerShell findstr.exe , чтобы отфильтровать результаты и отобразить только файл foo.txt :
ls -la | findstr.exe foo.txt
Средства Windows должны иметь расширение файла, его регистр символов должен совпадать с регистром в имени файла и эти файлы должны быть исполняемыми. Неисполняемые файлы, в том числе сценарии пакетного выполнения и собственные команды командной строки, такие как dir , можно выполнять с помощью команды cmd.exe /C .
Например, отобразите список содержимого каталога C:\ файловой системы Windows, введя:
cmd.exe /C dir
Или выполните команду ping , чтобы отправить запрос проверки связи на веб-сайт microsoft.com:
ping.exe www.microsoft.com
Параметры передаются в двоичный файл Windows без изменений. Например, следующая команда откроет C:\temp\foo.txt в notepad.exe .
notepad.exe "C:\temp\foo.txt"
Этот способ также будет работать:
notepad.exe C:\\temp\\foo.txt
Совместное использование переменных среды между Windows и WSL с помощью WSLENV
Решение WSL и Windows совместно используют WSLENV — специальную переменную среды, созданную для взаимодействия Windows и дистрибутивов Linux, запущенных в WSL.
Свойства переменной WSLENV :
- она используется совместно и существует в средах Windows и WSL;
- это список переменных среды, которые совместно используют Windows и WSL;
- она позволяет форматировать список переменных среды для корректного использования в Windows и WSL.
- она может использоваться в потоке между WSL и Win32.
До выпуска сборки 17063 единственной переменной среды Windows,, к которой могла получить доступ WSL, была PATH (это позволяло запускать исполняемые файлы Win32 из WSL). Начиная со сборки 17063, WSLENV поддерживается. WSLENV учитывает регистр.
Флаги WSLENV
В WSLENV доступны четыре флага, влияющие на способ преобразования переменной среды.
- /p преобразовывает пути WSL и Linux в пути Win32 и наоборот;
- /l указывает, что переменная среды представляет собой список путей;
- /u указывает, что эту переменную среды следует добавлять только при запуске WSL из Win32;
- /w указывает, что эту переменную среды следует добавлять только при запуске Win32 из WSL.
При необходимости флаги можно комбинировать.
Узнайте больше о WSLENV, ознакомившись с часто задаваемыми вопросами и примерами установки значения WSLENV для объединения других предварительно определенных переменных среды с суффиксом в виде косой чертой и флагами для указания способа перевода значения и передачи переменных скрипту. В этой статье также показано, как настроить среду разработки с помощью языка программирования Go для совместного использования GOPATH с WSL и Win32.
Отключение взаимодействия
Пользователи могут отключить возможность запуска средств Windows для отдельного сеанса WSL, выполнив следующую команду в качестве привилегированного пользователя.
echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop
Чтобы повторно включить возможность запуска двоичных файлов Windows, закройте все сеансы WSL и повторно запустите bash.exe или выполните следующую команду от имени привилегированного пользователя.
echo 1 > /proc/sys/fs/binfmt_misc/WSLInterop
Отключение взаимодействия не будет сохраняться между сеансами WSL, оно снова будет включено при запуске нового сеанса.
Как открыть диск Linux на Windows
Операционная система Linux использует свои собственные файловые системы. В отличие от Windows, для которой привычными файловыми системами являются NTFS, FAT32 и exFAT, в Linux популярны такие файловые системы как ext4, ext3 и ext2.
Если вы подключите диск Linux к Windows, либо если у вас в качестве второй системы установлена Linux, то Windows просто не сможет открыть содержимое дисков ext4, ext3 и ext2. Можно установить дополнительные драйверы для EXT, но есть намного более простой способ.
Если вам нужно из Windows просмотреть или скопировать файлы с дисков Linux, то эта инструкция вам поможет.
Начните с установки программы 7-Zip, как это сделать подробно описано в статье «Бесплатная альтернатива WinRAR».
Простой способ открыть диски Linux (ext4, ext3 и ext2) в Windows
Откройте 7-Zip, для этого в общесистемный поиск введите «7-Zip» и запустите программу.
Теперь с помощью иконки «Вверх» перейдите в самый верх иерархии файловой системы, пока не увидите символ «\\.».
Кликните на «\\.» и вы попадёте в список физических дисков.
Чтобы понять, какой из дисков вам нужен, ориентируйтесь по их размеру или просто перейдите в каждый из них, чтобы найти диск Linux.
Пример диска Linux, состоящего из двух разделов: 0.img — это загрузочный раздел, и 1.img — это основной раздел с данными.
Пример содержимого раздела 0.img — в нём необходимые для загрузки файлы, а именно UEFI.
При входе в раздел требуется определённое время. Раздел в 100 ГБ потребовал около минуты для анализа данных и составления списка файлов, раздел в 1 ТБ потребовал менее трёх минут для анализа.
Когда «распаковка» будет закончена, будет показан список файлов корневой файловой системы.
Переход по файлам и даже запуск файлов, в том числе больших, выполняется без задержки.
Можно переходить в любые папки и открывать любые файлы — ограничения файловых разрешений и прав доступа Linux не работают.
Можно просматривать абсолютно любые файлы, даже те, на которые обычно у пользователей никогда нет прав доступа.
Программа 7-Zip позволяет открыть разделы Linux прямо из Windows без установки дополнительных драйверов. Можно просматривать, сохранять файлы и папки, но нельзя вносить изменения в файловую систему. То есть вы ничего не испортите на дисках Linux.
Смотрите также другой вариант как скопировать в файлы с Linux диска в статье «Как из Windows просмотреть содержимое диска Linux и скопировать с него файлы».
Связанные статьи:
- Как получить доступ к разделам Linux из Windows (90.2%)
- Какую файловую систему использовать для USB-накопителя? (88.6%)
- Что такое файловая система и почему их так много? (88.6%)
- Простой способ просмотреть содержимое EFI, Microsoft Reserved Partition и любых других скрытых разделов (61.6%)
- Бесплатная альтернатива WinRAR (59.9%)
- Как обновить или заменить оперативную память вашего ПК (RANDOM — 50%)
Доступ к Linux-разделам из-под Windows
Оригинал: Windows Migration: Accessing Linux Partitions From Windows
Автор: Antonis Komis (agmg)
Дата публикации: май 2013 г.
Перевод: Семененко В.
Дата перевода: июнь 2013 г.
Двойная загрузка операционных систем является очень распространенным сценарием среди пользователей Windows, которые решили попробовать систему Linux. Они поступают так потому, что еще не чувствуют себя достаточно уверенно, чтобы полностью оставить Windows и перейти на Linux. Или же потому, что этим пользователям необходимы некоторые программы и игры, которые невозможно запустить под Linux. Но в обоих случаях, когда пользователь работает между двумя операционными системами, существует потребность во взаимодействии между обеими системами. В операционной системе Linux есть изначальная поддержка «родных» файловых систем Windows (NTFS, FAT). Это означает, что работая под системой Linux, можно иметь доступ к Windows-разделам. С системой Windows дело обстоит с точностью до наоборот. Чтобы получить доступ к Linux-разделам из-под Windows, необходимо установить сторонние программы, специально созданные для этой цели.
В этой статье дан обзор нескольких таких программ, которые позволяют открыть Linux-разделы, работая в операционной системе Windows. Все рассматриваемые программы имеют поддержку файловой системы ext4, которая является таковой по умолчанию для всех дистрибутивов Linux. Также подобные программы могут работать с более ранними версиями файловых систем, таких как ext3 или ext2, а также c файловыми системами другого типа.
Все программы, обзор которых я решил сделать в данной статье, по умолчанию предоставляют доступ к Linux-разделам только в режиме чтения. Это означает, что с помощью таких программ можно читать файлы с Linux-разделов, но нельзя производить запись на них. С моей точки зрения, такой подход является наилучшим вариантом, так как иметь полный доступ к Linux-разделам может быть опасным. Это связано с тем, что при полном доступе к файловой системе Linux, достаточно изменить или удалить хотя бы один файл, что приведет операционную систему Linux в неработоспособное состояние. Пользователь должен иметь точное представление о том, что он собирается изменить, прежде чем приступать к самому изменению. В этом случае риск повредить систему сводится к минимуму.
Ext2Fsd
Ext2Fsd является драйвером файловой системы ext2, написанным под линейку операционных систем Windows (2000, XP, Vista и Win7). Будучи установленным, драйвер предоставляет доступ к Linux-разделам по буквенному обозначению каждого раздела для любой из установленных под Windows программ.
Установщик программы Ext2Fsd во время инсталляции задаст вопрос о добавлении службы ext2fsd в автозагрузку операционной системы. Если согласиться с предложением инсталлятора, то данный сервис будет запускаться каждый раз при загрузке операционной системы Windows, автоматически монтируя указанные в настройках разделы Linux. Если же отказаться от такой возможности, то службу нужно будет запускать вручную в каждом случае, когда необходимо получить доступ к определенным разделам.

Драйвер Ext2Fsd имеет дополнительную опцию для включения прав записи в файловых системах Linux. По причинам, которые я уже называл ранее, рекомендую оставить данную опцию отключенной, за исключением тех случаев, когда действительно необходимо что-либо изменить, и вы что знаете, что делаете.
Давайте посмотрим на основное окно программы Ext2Fsd:

Если нажать горячую клавишу F7 (или перейти в меню по пути «Tools — Service Management»), можно увидеть состояние службы (включена или отключена), и несколько дополнительных настроек, которые относятся к выбранному разделу:

Давайте смонтируем раздел. Это можно выполнить двумя способами. Первый — правым щелчком мыши на выбранном разделе в списке открываем контекстное меню и выбираем «Ext2 Volume Management».

Второй способ — просто нажать горячую клавишу F3 для выделенного в списке раздела.
Откроется следующее окно:

Если раздел, к которому нужно получить доступ, находиться на съемном носителе, то необходимо выбрать пункт «Automatically mount via Ext2Mgr» в контекстном меню. В этом случае указанный раздел будет монтироваться каждый раз, когда будет подключаться съемный носитель. В случае, если нужный раздел располагается на постоянно подключенном носителе, то для его автоматического монтирования необходимо выбрать пункт «Mountpoint for fixed disk, need reboot» в контекстном меню. Выберите данный пункт и выполните перезагрузку, если это необходимо.
Перейдем в «Мой компьютер»:

Видим, что Linux-раздел (Локальный диск H) смонтирован и к нему можно получить доступ точно также, как и к любому «нормальному» Windows-разделу. Для проверки открываю указанный раздел для просмотра данных на нем:

DiskInternals Linux Reader
Программа DiskInternals Linux Reader является официально бесплатной и поддерживает целый ряд файловых систем: ext2, ext3, ext4, HFS и ReiserFS.
Подобно программе Ext2Fsd, приложение Linux Reader предоставляет доступ к Linux-разделам только с правами чтения и не разрешает пользователям производить запись на них. Это гарантирует, что изменения в текущей операционной системе не скажутся на работе системы Linux.
Но, в отличие от предыдущей программы, Linux Reader предоставляет доступ к разделам не через их буквенное обозначение. Для каждого из Linux-разделов запускается своя собственная копия приложения. Такой способ имеет несколько приятных преимуществ, таких как использование «Проводника» Windows и функция предпросмотра. Последняя поддерживает только несколько типов файлов (определенный набор форматов изображений, несколько видео-форматов и еще несколько других, которые у меня не было возможности протестировать). Поэтому, если вы ищете файлы, для которых в программу Linux Reader встроена возможность предпросмотра, то можно просмотреть изменение прежде, чем сохранять их.

На изображении внизу видно функцию предпросмотра в действии. Если щелкнуть на пункте «Сохранить как . » (Save as. ), выбранный файл может быть сохранен в файловой системе Windows. Это бывает полезным, если необходимо работать с этим файлом в обход режима только для чтения.

Также программа Linux Reader может сохранять директорию целиком. Для этого нужно щелкнуть правым щелчком мыши на нужной папке и выбрать пункт «Сохранить» (Save). Затем нажать кнопку «Далее» (Next).

В следующем окне выбираем «Сохранить файлы» (Save Files) и снова нажмем кнопку «Далее» (Next):

Выберите конечную папку (рисунок вверху), в которую необходимо сохранить файлы и закончите операцию.
Другой интересной особенностью программы является возможность монтировать образы дисков формата raw (например, таких как ISO-файлы) и контейнеры (примером может быть виртуальные диски VirtualBox). Подобную возможность лично я не тестировал, но как мне кажется, это полезная возможность.

Ext2Explore
Эта программа работает подобно Linux Reader, но поддерживает меньшее количество файловых систем: ext2, ext3, ext4. Данная программа имеет одну уникальную особенность, которой нет у двух предыдущих — она является портабельной. Это означает, что нет необходимости устанавливать программу под операционной системой. Она может быть запущена с любого носителя, включая и съемные.

Программа Ext2explore.exe должна запускаться в системе Windows с правами администратора. Это можно выполнить с помощью контекстного меню.
Для дальнейшей работы в программе, чтобы сохранить время, откройте окно свойств файла и включите опцию «Запускать эту программу с правами администратора» (Run this program as an administrator) на вкладке «Совместимость» (Compatibility).
Также, как и в программе Linux Reader, для того, чтобы открыть файл в другой программе, его необходимо первоначально сохранить в определенной директории в файловой системе Windows.
Заключение
Несмотря на то, что все из описанных выше программ выполняют те задачи, для которых они были созданы, имеется еще одна возможность для обмена файлами между двумя операционными системами Linux и Windows, более простая в использовании и интуитивно понятная. Для этого необходимо создать дополнительный раздел, отформатированный в файловой системе, понятной для операционной системы Windows и доступной для системы Linux. Файловая система FAT32 имеет изначальную поддержку как в системе Linux, так и Windows. Кроме того, Linux без проблем может читать и писать на разделы, отформатированные в файловой системе NTFS.
Таким образом, вы можете просматривать и изменять файлы в любое время, без необходимости иметь дополнительное программное обеспечение. Если есть какие-либо файлы, к которым необходимо получить доступ из другой операционной системы, просто скопируйте их в дополнительный раздел, отформатированный в файловой системе, понятной для операционной системы Windows.
Посмотрите также другие статьи раздела об эмуляции возможностей Windows.
Просмотр разделов Linux в Windows
За что мне нравится Linux — так это за свою универсальность и адаптивность. Если вы установите Windows и Linux на одном компьютере, то загрузившись в Linux вы будете легко видеть все разделы Windows и даже сможете работать с ними, как с родными.
Но вот если вы загрузитесь в Windows, то Linux вы вообще не увидите, как будто его нет. Печально:(
Linux — Установка Ubuntu рядом с Windows. (UEFI+GPT)
Поэтому просмотр разделов Linux в Windows очень актуален для тех, кто пользуется двумя системами одновременно, как Я, например:)
Как же из Windows увидеть жёсткий диск (вернее его область) отформатированный в файловую систему Linux — ext2, ext3 или ext4? Без дополнительного софта не обойтись и он есть.
И такой софт есть, и его даже достаточно, но какие-то утилиты очень мало функциональны, а какие то проекты уже давно заброшены. Но всё же мне удалось найти кое что достойное внимания.
Самый простой способ — это просмотр разделов Linux в Windows при помощи утилиты ext2read (ext2explore), которую можно скачать по этой ссылке :

Программа проста до безобразия и позволяет просматривать Linux разделы и копировать с них файлы. И всё, изменять файлы на Linux разделах и копировать их туда вы не сможете. Так что если вам нужен такой минимум, то программа для вас.
Внимание! Если ваш домашний каталог зашифрован, то вы не сможете попасть в него с любой программой!
Поэтому, если вы часто перемещаете файлы между системами, то сделайте в Linux дополнительный, не зашифрованный раздел.
Но это конечно не всё. Есть ещё одна программка, которая заслуживает нашего внимания — это ext2mgr, которую можно найти тут:
Эта программа делает больше: она создаёт новый раздел и монтирует к нему раздел Linux. То есть у вас в Windows появляется новый жёсткий диск в системе, который на самом деле является Linux разделом.
И вот с ним вы сможете делать то, что заходите.
Как установить ext2mgr и подключить потом Linux раздел в Windows?
Скачиваем программу и распаковываем архив. В распакованной папке запускаем исполняемый файл:

После этого нам покажут все разделы, которые у нас есть на компьютере:

У меня показывает разделы Linux, которые есть на ноутбуке и один раздел на внешнем жёстком диске — DISK — 1. Я хочу при монтировать именно его. Клацаем по нему и у нас появляется такой диалог:

Видим кнопку примонтировать — нажимаем её и у нас появляется новый диалог:

Выбираем свободную букву диска и ставим или убираем нужные галочки. Всё, теперь перезагружаем компьютере — ну как без этого в Windows и в МОЙ КОМПЬЮТЕР наблюдаем появление новых дисков:

Если вы сделали всё правильно, то диск должен появится и с ним можно будет начать работать.
Но опять же, будьте осторожны, чтобы не удалить разделы. Мне это как то удалось, когда я готовил материал для этой заметки. После этого я писал статью о том, как восстановить разделы жёсткого диска🙂
На самом деле есть ещё программы подобного рода, если вы знаете более лучшие, то поделитесь своим мнением, которому тут всегда рады:)