Onde está o sistema de arquivos do subsistema Linux localizado no Windows 10?

22

É bastante claro que o sistema de arquivos "host" do Windows 10 é montado na /mnt/c/perspectiva do "Linux". Mas é possível obter acesso ao sistema de arquivos "Linux" no Windows? Se sim, onde fica?

Existem quatro luzes
fonte
Qual é a saída de mountum bashshell?
DavidPostill
Isso não retorna nenhuma pista:rootfs on / type rootfs
Existem quatro luzes
Hmm. Está bem. Que tal cat /etc/fstab?
DavidPostill
Não, infelizmente, a partir da perspectiva "linux" ele está olhando sentado no hardware:LABEL=cloudimg-rootfs / ext4 defaults 0 0
Há quatro luzes
ESTÁ BEM. Sem outras idéias.
DavidPostill

Respostas:

24

O sistema de arquivos raiz único estava localizado aqui até a atualização do Windows 10 Fall Creators (lançada em outubro de 2017):

%LOCALAPPDATA%\Lxss\rootfs

Por exemplo, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

Outros pontos de montagem estão localizados um nível acima no lxssdiretório Por exemplo, seu próprio homediretório dentro Linux estará em %LOCALAPPDATA%\Lxss\home.

A partir da atualização do Fall Creators, é possível instalar mais de uma instância do Linux e executá-las em paralelo. A instância existente (também conhecida como legada) permanecerá em seu diretório, mas as novas instâncias criadas estão localizadas em:

% LOCALAPPDATA% \ Packages \ < nome_específico_distribuição > _ < sequência_ aleatória > \ LocalState \ rootfs

Por exemplo, minha instalação do Ubuntu 18.04 está localizada no diretório

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc
diretório.

Aviso : Cuidado para não criar , modificar ou excluir arquivos localizados sob a árvore específica do lxss ou da distribuição no Windows.

Explorar e ler arquivos é a única operação inofensiva. Consulte esta página de blog da Microsoft para obter detalhes.

Observe que, a partir do Build 1903, existe uma maneira alternativa de acessar os arquivos de uma distribuição em execução que não exibe os problemas mencionados anteriormente.

Basta usar o caminho \\wsl$\<distribution_specific_name>\e você poderá criar e modificar arquivos. O AppData ainda não é uma maneira suportada de acessar arquivos com a compilação 1903.

jlliagre
fonte
Ele estava oculto :) #
1516 Y2K
Não consigo adicioná-lo ao Acesso Rápido do Windows Explorer como marcador para facilitar.
Joao
4
Uma versão de copy-paste capaz neutra pelo usuário:%USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri
3
Aviso: De acordo com a Microsoft, você não deve modificar seu sistema de arquivos linux usando aplicativos do Windows. blogs.msdn.microsoft.com/commandline/2016/11/17/…
Korey
1
Você pode simplificar muito a primeira parte desse caminho usando em %LOCALAPPDATA%vez de%USERPROFILE%\AppData\Local
Herohtar 18/10/19
8

Atualmente, você pode instalar várias distribuições Linux. Portanto, cada distribuição terá seu próprio sistema de arquivos localizado em uma pasta diferente.

  • Se você instalar algumas distribuições linux na Windows Store, os sistemas de arquivos estão localizados em %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • Se você instalou, moveu ou duplicou uma distribuição Linux usando LxRunOffline ou qualquer versão do WSLDistroLauncher , o sistema de arquivos pode estar localizado em qualquer pasta do seu computador.

Obtendo as informações do Registro

A localização de cada sistema de arquivos pode ser obtida no Registro do Windows. Os dados estão localizados em

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

Você pode iniciar uma janela do PowerShell e executar o seguinte comando para obter os locais dos sistemas de arquivos

PS> (Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object {Get-ItemProperty $_.PSPath}) | select DistributionName, @{n="Path";e={$_.BasePath + "\rootfs"}}

Você receberá uma tabela com informações como as seguintes

DistributionName Path
---------------- ----
Ubuntu           C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Ubuntu-18.04     C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
mydistro         C:\wsl\mydistro\rootfs

Usando lxRunOffline

LxRunOffline é uma ferramenta para gerenciar distribuições linux instaladas na WSL. Você pode usar LxRunOffline para obter o diretório usado por uma distribuição instalada

# lxrunoffline get-dir -n <name of the distro>

C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup

C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
Jaime
fonte
2

Para o WSL2, você pode acessar o diretório inicial do Windows Explorer assim:

\\wsl$

Desculpe chegar atrasado na festa!

Francisco Tena
fonte
Isso deve ser atualizado para ser a resposta correta
getglad 15/01
1

A versão posterior do subsistema linux instala o sistema de arquivos abaixo, de packagesmodo que o caminho completo seja algo como:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\root

ou:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\home\myLinuxUserName

... dependendo do curso do ponto de montagem. Fazer uma pesquisa de diretório .bashrcrevelaria esses caminhos ...

Como alternativa, use readlink .o shell linux para postar o caminho atual do linux como um caminho 'DOS' para a área de transferência do Windows. Cole em algum lugar sensato para ler o caminho físico real.

PGP
fonte
1

Parece que a Microsoft mudou / ocultou um pouco mais, atualmente está em:

% USERPROFILE% \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows _ ????????????? \ LocalState \ rootfs

Como isso pode mudar ainda mais no futuro, faça a sugestão do PGP de fazer uma pesquisa de arquivos .profile ou .bashrc.

jesseyu
fonte
1

Eu criei este script que abre a pasta WLS no Explorer

cd C:\Users\Naotho Machida\AppData\Local\Packages\Canonical*\LocalState\rootfs\etc
explorer %cd%

salve-o como yourScript.cmd e execute

Naotho Machida
fonte