
Я новичок в Windows и установил WSL2, следуя предоставленным инструкциям.здесь.
Он отлично работает, но я не могу найти, где он установлен на моем компьютере. Вывод pwd
для home/nkp68
.
Как получить доступ к файлам на моем компьютере с Windows из WSL2?
решение1
Если я прочитаю ваш пост буквально, то там может возникнуть несколько разных вопросов:
- Где на вашем компьютере установлен экземпляр WSL Ubuntu?
- (Предположительно, исходя из первого вопроса) Как получить доступ к файлам в WSL2 из Windows?
- «Как мне получить доступ к файлам на моем компьютере Windows из WSL2?» (что-то вродепротивоположныйвопрос первых двух)
Где находится ваш экземпляр WSL Ubuntu?
Короткий ответ: В вашем случае, учитывая базовую установку, фактические файлы находятся на виртуальном диске с именем ext4.vhdx
. На данный момент вам действительно не нужно беспокоиться о «где» (так как это виртуальный диск), но вы обычно найдете его в %userprofile%\AppData\Local\Packages\Canonical...\LocalState\ext4.vhdx
. %userprofile%
Обычно это что-то вроде C:\Users\<username>
.
Более детально:
Это для установки по умолчанию. Вы можете установить несколько дистрибутивов и даже несколько экземпляров одного и того же дистрибутива. Одна из замечательных особенностей WSL — возможность быстро скопировать дистрибутив, протестировать что-то и выбросить тест. Это не позволяет вам загрязнять ваш «хороший», ежедневный дистрибутив пакетами, тестами или другими вещами, которые могут создать «хлам» в долгосрочной перспективе.
Чтобы увидетьвседистрибутивы, которые вы установили, перейдите в PowerShell и выполните:
Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" -Recurse
В вашем случае вы, вероятно, увидите что-то вроде:
{cff9bfd6-39db-42af-a85b-d6fca State : 1
94beff8} DistributionName : Ubuntu
Version : 2
BasePath : C:\Users\krutik\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
Flags : 15
DefaultUid : 1000
PackageFamilyName : CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
KernelCommandLine : BOOT_IMAGE=/kernel init=/init
DefaultEnvironment : {HOSTTYPE=x86_64, LANG=en_US.UTF-8, PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games, TERM=xterm-256color}
У меня их еще довольно много, в разных местах.
Как получить доступ к файлам в WSL2 из Windows?
Но заголовок вашего вопроса, «где», на самом деле не имеет большого значения, если только вам не нужно что-то сделать с файлом ext4.vhdx
(например,освободить место).
Чтобы получить доступ к файлам в WSL из Windows, используйте путь \\wsl$\Ubuntu
(или как там называется ваш дистрибутив). Здесь вы найдете \\wsl$\Ubuntu\home\nkp68
, куда вы можете безопасно копировать файлы.
Обновленное примечание: Под Windows 11 \\wsl$\<distro_name>
все еще работает, но есть и новый \\wsl.localhost\<disro_name>
путь. Оба работают одинаково, но wsl.localhost
должны быть немного надежнее в определенных ситуациях.
Как получить доступ к файлам на моем компьютере с Windows из WSL2?
Если вы работаете в Ubuntu и вам нужен доступ к файлу на диске Windows (например, C:
), то вы обнаружите, что они (по умолчанию) автоматически смонтированы:
ls /mnt/c/Users
ls /mnt/c
Есть некоторые нюансы в работе с файлами на диске Windows из WSL, особенно в отношении разрешений и производительности. Обычно вы захотите сохранить все файлы проектавнутрифайловая система Ubuntu ext4 (например, в вашем /home/nkp68
каталоге). Но вы, безусловно, можете получить доступ, копировать и перемещать файлы между дисками по мере необходимости.
Где находится функция WSL?
Заголовок вопроса можно интерпретировать так, что вы хотите узнать, где установлена фактическая функция WSL. Я знаю, что это не относится к вам, изначальному автору, но этот вопрос поднимали и другие, поэтому я добавлю его здесь на случай, если они найдут его по заголовку.
Расположение функции WSL в вашей системе будет зависеть от используемой вами версии WSL:
Более старые версии WSL были включены в состав Windows, по крайней мере, с Windows 10 21H2 (а возможно, и раньше) в качестве функции Windows, и включить эту функцию можно и сегодня.
Когда вы включаете функцию WSL Windows, соответствующие двоичные файлы WSL находятся в
C:\Windows\System32\lxss
. Вам редко придется беспокоиться об этой папке, но бывают случаи, когда она может пригодиться.Ядро WSL2 также находится в этой папке, и вы можете создать резервную копию старых ядер, если хотите откатить более одного выпуска.
Более новые версии WSL устанавливаются как пакет приложения, обычно из Microsoft Store.
При установке пакета приложения WSL файлы располагаются (как это обычно бывает с пакетами приложений Windows) в формате
C:\Program Files\WindowsApps\<package_dir>
.Обратите внимание, что
C:\Program Files\Windows Apps
это защищенный каталог, и вы не сможете увидеть его содержимое по умолчанию. Выне должнапопытайтесь изменить права доступа к этому каталогу, и это поставит под угрозу безопасность и стабильность вашей системы.Однако вы все равно можете увидеть содержимоеупаковкакаталог, предполагая, что вы знаете его имя. Чтобы найти его, выполните следующее из PowerShell:
Get-AppxPackage |? { $_.Name -like "*WindowsSubsystemforLinux*" } | tee-object -Variable packageMatches
Вы должны увидеть
InstallLocation
возвращенный результат. Если есть только один результат (что должно быть), вы можете открыть его с помощью:explorer "$($packageMatches.InstallLocation)"
Также внутри этого каталога вы найдете
tools\kernel
, представляющий собой ядро WSL2 для этого выпуска.В системах Windows 10 у вас, скорее всего, будетобаиз этих.
В системах Windows 11 выможетесли вы установили WSL1, у вас есть оба этих места установки.