Questão Onde está o diretório raiz do sistema de arquivos do Ubuntu no Windows Subsystem para Linux e vice-versa?


Eu instalei o subsistema Ubuntu no Windows 10 (depois de habilitar o recurso nas configurações), mas onde está o diretório raiz do sistema de arquivos do Ubuntu localizado na unidade?


299
2018-04-21 10:06


origem


OBSERVE  Nós (a equipe da WSL) Recomenda-se vivamente que você não spelunk nas pastas de dados de distro Linux ). Se você fizer isso, a perda de dados e / ou corrupção é muito provável Estamos trabalhando para melhorar este cenário de interoperabilidade e anunciaremos qualquer progresso em nosso blog: blogs.msdn.microsoft.com/commandline - Rich Turner
@RichTurner Descobri que existe uma razão muito específica (e irritante) - as políticas corporativas que marcam a pasta .ssh com as permissões incorretas repetidamente significam a necessidade de marcar a estrutura como "fora dos limites" para os scripts corporativos. Mas geralmente - eu concordaria com você. - Danny Staple
Embora pareça em caixas com atualizações mais recentes - isso não acontece mais. - Danny Staple
@DannyStaple Se você precisar alterar as permissões em arquivos / pastas em sua distribuição Linux do Windows, use wsl.exe, por exemplo. wsl chmod 600 ~/.ssh/id* - Faz não copiar arquivos para essas pastas através do sistema de arquivos do Windows. - Rich Turner


Respostas:


Para o Ubuntu instalado a partir da loja do Windows:

Cada distribuição que você instala através da loja é instalada para   diretório appdata do aplicativo. Por exemplo:    C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState  - benhillis

Em iterações anteriores do Windows Subsystem para Linux, o sistema de arquivos do Ubuntu %localappdata%\Lxss (por exemplo., C:\Users\Username\AppData\Local\Lxss - substitua o Nome de usuário com seu nome de usuário no Windows). Vejo a postagem do blog da WSL no suporte ao sistema de arquivos:

O sistema de arquivos primário usado pelo WSL é o VolFs. Ele é usado para armazenar   Arquivos do sistema Linux, bem como o conteúdo da sua home do Linux   diretório. Como tal, o VolFs suporta a maioria dos recursos do Linux VFS   fornece, incluindo permissões do Linux, links simbólicos, FIFOs, sockets,   e arquivos de dispositivos.

O VolFs é usado para montar o diretório raiz VFS, usando    %LocalAppData%\lxss\rootfs como o armazenamento de apoio. Além disso, um   Existem poucos pontos de montagem de VolFs adicionais, mais notadamente /root e    /home que são montados usando %LocalAppData%\lxss\root e    %LocalAppData%\lxss\home respectivamente. A razão para estes separar   montagens é que, quando você desinstala o WSL, os diretórios home não são   removido por padrão, portanto, os arquivos pessoais armazenados nele   preservado.

CUIDADO

Criar / modificar qualquer arquivo dentro do subsistema Linux usando aplicativos e ferramentas do Windows pode causar corrupção de dados e perda de dados no subsistema Ubuntu! (Graças a Rich Turner por sugerir estas palavras de cautela!) Isso é absolutamente não suportado. Na mesma postagem do blog:

Interoperabilidade com o Windows

Enquanto os arquivos VolFs são armazenados em arquivos regulares no Windows   diretórios mencionados acima, a interoperabilidade com o Windows não é   suportado. Se um novo arquivo for adicionado a um desses diretórios   Windows, ele não tem os EAs necessários para os VolFs, então os VolFs não sabem o que   fazer com o arquivo e simplesmente o ignora. Muitos editores também   tira os EAs ao salvar um arquivo existente, novamente tornando o arquivo   inutilizável no WSL.


Seu sistema de arquivos do Windows está localizado em /mnt/c no ambiente de shell Bash.

enter image description here

Fonte: Blog de Dustin Kirkland, howtogeek


323
2018-04-21 10:34



Lxss estava escondido no meu sistema de arquivos ... causou um pouco de arranhão na cabeça por um minuto irritante ou dois. Agora eu criei um atalho, mas ainda não consigo mostrá-lo. - Ogaday
@Ogaday você não pode reexibir usando a janela de propriedades porque está marcada como um diretório do sistema. Você pode mostrá-lo usando attrib -s -h lxss que irá desmarcá-lo como um diretório do sistema também. - developerbmw
Parece que o local mudou ou foi diferente entre os sistemas, pois o meu está em um local diferente. Eu postei abaixo com a minha localização. - NicholasJohn16
@souravc Poderia, por favor, adicionar uma nota importante ao topo da sua resposta, recomendando fortemente contra a criação / modificação de quaisquer arquivos dentro do LXSS usando aplicativos e ferramentas do Windows: corrupção e perda de dados é muito provável se você fizer isso! - Rich Turner
Por favor, leia o post mencionado acima: blogs.msdn.microsoft.com/commandline/2016/11/17/…. É seguro acessar o sistema de arquivos do Windows a partir da WSL e é por isso que montamos suas unidades sob /mnt/<drive>/, mas NÃO é seguro (ainda) acessar o sistema de arquivos Linux do Windows, e é por isso que não fornecemos acesso fácil aos sistemas de arquivos de distribuição. - Rich Turner


Isso parece ter mudado desde que o Bash foi originalmente introduzido, e não se aplica a distribuições da Windows Store, ou talvez não seja consistente para todos os sistemas, já que meu diretório pessoal está localizado em outro local:

%localappdata%\lxss\home\{username}

ou:

C:\Users\{user}\AppData\Local\lxss\{username}

Onde {user} é o seu nome de usuário do Windows e {username} é o seu nome de usuário UNIX definido durante a instalação.

Então, o diretório raiz seria:

%localappdata%\lxss

Observe que o diretório raiz pode não estar visível no Windows Explorer a partir do %localappdata% diretório. Você deve ser capaz de acessá-lo de qualquer maneira, digitando-o na 'barra de endereços' do Explorer.


45
2017-08-10 18:35



Minha máquina não consegue encontrar: "C: \ Usuários \ {usuário} \ AppData \ Local \ Lxss \ {nome_do_usuário}" ou "% localappdata% \ Lxss \ home \ {nome_do_usuário}" mas "C: \ Usuários \ {usuário } \ AppData \ Local \ lxss \ {username} "funciona. I.E. use "lxss" NÃO "Lxss" - Joe Codeswell user601770
Meu sistema tem o subdiretório rootfs, mas rootfs / home está vazio enquanto ./home tem minha conta de usuário e arquivos. Parece mais seguro apenas ir para% localappdata% \ lxss e depois explorar de lá para ver qual layout você tem, mais navegar diretamente para esse endereço evita problemas com o diretório lxss sendo escondido. - jla
@ JoeCodeswelluser601770 Isso é estranho. Os sistemas de arquivos do Windows normalmente não diferenciam maiúsculas de minúsculas. Eu posso inserir% localappdata% \ Lxss ou% localappdata% \ lxss e ambos vão para% HOMEPATH% \ AppData \ Local \ lxss - jla
Observe que essa pasta (lxss) não apareceu na lista de pastas do Windows Explorer em AppData \ Local, mesmo com a exibição de pastas ocultas ativada. Eu tive que colar manualmente adicionar a pasta lxss à barra do explorador para obter os arquivos aqui, por exemplo, edite a pasta "url" para lá - Colin D
Como alternativa, você pode ir para a área de trabalho, clicar com o botão direito em "Novo-> Atalho" e colar um caminho como C: \ Usuários \ seu_nome \ AppData \ Local \ lxss \ home \ seunome - Colin D


Se você instalar o Linux do MS Market:

eles colocaram distros sob:

$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePath
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

Distribuição padrão definida por:

bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution
{861c29b4-ebe2-49a5-8a22-7e53a27934a0}

Raiz do Linux é mais profundo:

c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs

PS. Eu usei o Cygwin para explorar as chaves de registro.

PPS. https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/


9
2017-09-13 14:54





A única coisa que funcionou para mim foi %localappdata%\lxss\home\{username}, onde o {username} é o seu nome de usuário BASH que você deu durante a instalação. Por algum motivo, depois de mostrar lxss da pasta oculta se recusa a aparecer em C:\Users\WINDOWS-USER\AppData\Local\, e também dando o total C:\ caminho com janelas e nome de usuário BASH também não funciona.

E, por favor, crie um atalho na área de trabalho para o que funciona.


5
2018-06-09 17:02



uau boa dica, teve o mesmo problema - Nicolas Mommaerts


Você pode abrir rapidamente o Bash a partir de uma janela do Gerenciador de Arquivos da pasta aberta, digitando bash na barra de localização.

É suficiente.

Além disso, você pode adicionar um item de menu de contexto. Eu pessoalmente não o recomendo se não for necessário, porque adicionar atalhos ao menu de contexto usa mais RAM.

https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-shell-from-windows-10s-file-explorer/


4
2018-02-21 20:19



Nao funciona para mim. Ele abre o prompt de comando e lança o bash. - blablatros
@ Blablatros Sim, mas na pasta em bash na bruxa você tinha explorer aberto ao escrever no explorer bar bash e pressionando enter. Tente na pasta Meus Documentos, abra a pasta Windows Explorer e na barra de localização escreva bash e ele irá abrir o bash do ubuntu nessa pasta já :) - Kangarooo
@ Kangarooo: Eu quero acessar os arquivos através do windows 10 gui, assim como vice-versa. Na minha resposta acima, eu descobri como localizar o diretório bash através do explorador de arquivos do Windows 10, e então eu continuei a copiar alguns arquivos do meu disco rígido externo para esse diretório. No entanto, quando abri o terminal bash e pressionei ls -a, não mostrei os arquivos que adicionei. Bash não estava reconhecendo os arquivos que eu deixei cair através do gerenciador de arquivos do windows, o que para mim derrotou completamente o propósito de instalar o bash nas janelas. - thinksinbinary