Wsl где хранятся файлы
Перейти к содержимому

Wsl где хранятся файлы

  • автор:

Где физически хранятся файлы внутри wsl2?

Я установил wsl2 на свой компьютер с Windows и не смог понять, где на самом деле хранятся файлы.
Обратите внимание: я не хочу сказать, что хочу просматривать их в проводнике файлов — я знаю, что это можно сделать, набрав в проводнике \\wsl$\ .
Если бы мне пришлось угадывать, я бы сказал, что файлы хранятся на том же жестком диске, что и операционная система.

Так что на самом деле у меня есть два связанных вопроса.

  1. Где хранятся файлы?
  2. Если они хранятся на жестком диске моей операционной системы, могу ли я каким-то образом переместить мой wsl на другой жесткий диск?

РЕДАКТИРОВАТЬ:
Мне удалось найти путь установки, на моем компьютере путь:
C:\Users\Eliran\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState

Есть ли способ установить это в другое место?

1 ответ

Все файлы хранятся в ext4.vhd файлах в каталоге установки, которые вы не можете смонтировать непосредственно в Windows, как в et4 (obv)

Есть два способа изменить расположение вышеупомянутого vhd-файла: официальный, утомительный и неофициальный, быстрый и грязный.

Официальный утомительный способ

  1. Экспортируйте дистрибутив в папку с помощью wsl.exe —export <Distro> <FileName> из CMD / PowerShell.
  2. Импортируйте дистрибутив в другое место с помощью wsl.exe —import <Distro> <InstallLocation> <FileName> [Options]

Проблема заключается в том, что это занимает довольно много времени, и после того, как вы это сделаете, молитесь, чтобы он без проблем экспортировал и импортировал несколько гигабайт тысяч файлов.

Быстрый и грязный способ

Это вызывает неофициальный WSL-менеджер с открытым исходным кодом, который называется lxrunoffline.

Чтобы установить его (занимает от минуты до максимума), прочтите инструкции разработчика здесь

Если вы установили его, вручную загрузив двоичные файлы со страницы выпуска, обязательно установите его в каталог в PATH, например C:\Windows

Теперь процесс прост, как lxrunoffline move -n <distroname> -d <destination-folder>

Where are the files inside wsl2 physically stored? [closed]

This question does not appear to be about programming within the scope defined in the help center.

Closed 1 year ago .

The community reviewed whether to reopen this question 1 year ago and left it closed:

Original close reason(s) were not resolved

I’ve installed wsl2 on my windows machine and I was not able to figure out where the files are actually stored.
Note, that I don’t mean that I wanna browse them inside the file explorer — I know it can be done by typing in the explorer \\wsl$\ .
If I would have to guess I would say the files are stored in the same hard-drive that the os is stored.

So actually I have two related questions.

  1. Where the files are stored?
  2. If they are stored in the hard drive of my os, can I somehow relocate my wsl to another hard drive?

EDIT:
I was able to locate the installation path, in my machine the path is:
C:\Users\Eliran\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState

Is there a way to mount this to another location?

Dweeberly's user avatar

Eliran Turgeman's user avatar

3 Answers 3

All the files are stored in a ext4.vhd files in the installation directory, which you can’t mount directly onto windows as it is in ext4 (obv)

There’s two ways to change the location of the above mentioned vhd file the official, tedious way and an unofficial quick and dirty way

The official tedious way

  1. Export the distro to a location with wsl.exe —export <Distro> <FileName> from CMD/PowerShell
  2. Import the distro to a different location with wsl.exe —import <Distro> <InstallLocation> <FileName> [Options]

The problems with this is it’s quite time consuming and after you do this, pray that it exported and imported several gigabytes worth of thousands of files without any problems

The quick and dirty way

This involes an unofficial opensource WSL manager called lxrunoffline

To install it (takes like a min at max) read through the instructions by the dev here

If you installed it by manually downloading the binaries from the release page, make sure to install it to a directory in PATH, like C:\Windows

Now the process is simple as lxrunoffline move -n <distroname> -d <destination-folder>

Доступ к файлам WSL Linux с помощью Проводника Windows 10

Windows 10 версии 1903 содержит ряд интересных изменений и улучшений, внесенных в функцию WSL. К ним относятся дополнительные дистрибутивы в Магазине, возможность просматривать файлы WSL в Проводнике и многое другое.

Возможность запуска Linux в Windows 10 обеспечивается функцией WSL. WSL это — Windows Subsystem for Linux, которая изначально была ограничена только Ubuntu. Современные версии WSL позволяют устанавливать и запускать несколько дистрибутивов Linux из Microsoft Store.

После включения WSL вы можете устанавливать различные версии Linux из Магазина, используя следующие ссылки:

Ссылки на дистрибутивы в магазине microsoft:

В Windows 10 версии 1903 вы можете легко получить доступ ко всем файлам в ваших дистрибутивах Linux с помощью проводника Windows. На момент написания статьи эта функция реализована в сборке Windows 10 18836. Она находится на пути к ветви 19h1, поэтому мы увидим ее в следующей сборке. Вот как это можно сделать.

Чтобы получить доступ к файлам WSL Linux из проводника Windows 10 , выполните следующие действия.

Шаг 1: Включить функцию WSL (Подситема Windows для Linux)

Шаг 2: Установите какой-нибудь дистрибутив, например Ubuntu, и запустите его.

Шаг 3: Находясь в каталоге Linux FS, введите^

Откроется окно проводника, расположенное внутри вашего дистрибутива Linux.

Доступ к файлам Linux в Windows 10

Теперь вы можете получить доступ к любым файлам Linux, так же, как и к любому другому файлу через проводник. Это включает в себя такие операции, как: перетаскивание файлов в другие места, копирование и вставка и даже использование пользовательских записей контекстного меню, добавленных Notepad ++, VSCode или другим программным обеспечением.

Проводник показывает файлы дистрибутива как виртуальный сетевой ресурс по пути \\ wsl $ \ <running_distro_name> \.

Команда WSL активно исследует способы улучшения обнаруживаемости файлов Linux внутри Проводника. Ход их работы уже можно увидеть в Windows 10 Build 18836, которая показывает файловую систему WSL / Linux в File Explorer.

Доступ к файлам Linux в командной строке

В дополнение к Проводнику вы можете использовать классическую командную строку и инструменты PowerShell для доступа к файлам Linux. Точно так же вам нужно перейти к \\wsl$\<имя дистрибутива>\, где <имя дистрибутива>— это имя работающего дистрибутива.

WSL в PowerShell

Известные вопросы

Это новая функция, и некоторые ее части могут не работать идеально. Вот некоторые известные проблемы, о которых мы хотим сообщить вам при использовании этой функции:

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

Поскольку файловый сервер 9P работает внутри каждого дистрибутива, он доступен только тогда, когда этот дистрибутив работает. Команда ищет способы решить эту проблему.

Доступ к файлам Linux рассматривается так же, как и доступ к сетевому ресурсу, и все правила доступа к сетевым ресурсам будут по-прежнему применяться,

  • Например: при использовании CMD cd \\wsl$\Ubuntu\home не будет работать (поскольку CMD не поддерживает пути UNC, так как текущие каталоги), однако будет работать copy \\wsl$\Ubuntu\home\somefile.txt C:\dev\
  • Старые правила по-прежнему применяются, вы не должны получать доступ к файлам Linux внутри папки AppData!
  • Если вы пытаетесь получить доступ к своим файлам Linux через папку AppData, вы используете обход сервера 9P, что означает, что у вас не будет доступа к файлам Linux, и вы можете повредить ваш дистрибутив Linux.

Примечание: Сервер 9P — это сервер, который содержит протоколы, поддерживающие метаданные Linux, включая разрешения. Демон инициализации WSL теперь включает сервер 9P. Существует служба Windows и драйвер, который действует как клиент и взаимодействует с сервером 9P (который работает внутри экземпляра WSL). Клиент и сервер обмениваются данными через сокеты AF_UNIX, поскольку WSL позволяет взаимодействовать между приложением Windows и приложением Linux, используя AF_UNIX.

Where is the Ubuntu file system root directory in Windows Subsystem for Linux and vice versa?

I have installed Ubuntu subsystem on Windows 10 (after enabling feature in settings), but where is the Ubuntu file system root directory located in the drive?

/.ssh/id* — do not copy files into these folders via the Windows filesystem.

6 Answers 6

For Ubuntu installed from the Windows store:

Each distribution you install through the store is installed to that application’s appdata directory. For example: C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState — benhillis

For WSL2 you can access to home directory from windows (Windows 10 build 18342) like this :

In earlier iterations of Windows Subsystem for Linux, the Ubuntu file system was at %localappdata%\Lxss (e.g., C:\Users\Username\AppData\Local\Lxss — replace the Username with your Username on Windows). See the WSL blog post on File System Support:

The primary file system used by WSL is VolFs. It is used to store the Linux system files, as well as the content of your Linux home directory. As such, VolFs supports most features the Linux VFS provides, including Linux permissions, symbolic links, FIFOs, sockets, and device files.

VolFs is used to mount the VFS root directory, using %LocalAppData%\lxss\rootfs as the backing storage. In addition, a few additional VolFs mount points exist, most notably /root and /home which are mounted using %LocalAppData%\lxss\root and %LocalAppData%\lxss\home respectively. The reason for these separate mounts is that when you uninstall WSL, the home directories are not removed by default, so any personal files stored there will be preserved.

CAUTION

Creating/modifying any files within the Linux subsystem using Windows apps & tools can cause Data corruption and data loss in Ubuntu subsystem! (Thanks to Rich Turner for suggesting these words of caution!) This is absolutely not supported. From the same blog post:

Interoperability with Windows

While VolFs files are stored in regular files on Windows in the directories mentioned above, interoperability with Windows is not supported. If a new file is added to one of these directories from Windows, it lacks the EAs needed by VolFs, so VolFs doesn’t know what to do with the file and simply ignores it. Many editors will also strip the EAs when saving an existing file, again making the file unusable in WSL.

Your Windows file system is located at /mnt/c in the Bash shell environment.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *