Como acessar arquivos linux / Ubuntu no Windows 10 WSL?


71

Esta pergunta responde como acessar arquivos do Windows no Ubuntu Bash, mas como posso fazer o oposto?

Especificamente, preciso acessar minha chave SSH no Windows, localizada em /home/mark/.ssh/id_rsaBash.



(Sugeri encerrar a pergunta vinculada de phuclv como burra em ordem cronológica reversa, pois essa pergunta é mais geral e tem respostas muito melhores e mais atualizadas.)
Bob

Respostas:


26

PM para linha de comando do Windows aqui:

Atualizado em outubro de 2019 : Atualizando a resposta abaixo para refletir a capacidade recém-adicionada de acessar diretamente os arquivos Linux das distros por meio do servidor P9 recém-integrado no Win10 1903 (e posterior) .

IMPORTANTE : A digitação através do sistema de arquivos do Windows para acessar arquivos do Linux tem e continuará sem suporte e é fortemente recomendada contra! Para entender o porquê, leia este post

Então, como acessar arquivos do Linux usando ferramentas do Windows (por exemplo, bloco de notas, código VS / VS, etc.)? Anteriormente, você não podia, mas a partir do Windows 10 1903, (finalmente!), Expomos os sistemas de arquivos das suas distros ao Windows através de um servidor de arquivos P9. Também publicamos um vídeo detalhado discutindo como isso funciona ! Você também pode ler um resumo desse novo recurso nesta postagem do blog

insira a descrição da imagem aqui

Ansiosos para ouvir como você se dá com esse recurso. Se você encontrar algum problema, arquive os problemas no repositório do WSL GitHub aqui: https://github.com/Microsoft/wsl .


Senhor, esse recurso de servidor de arquivos 9P é estável para usuários normais? Caso contrário, talvez seja melhor adicionar um aviso sobre o uso de versões internas instáveis. Muitos usuários podem não estar familiarizados com isso. Um fato interessante, porém, sua resposta contém blogs de 2016 e 2019, ~ 3 anos;)
Biswapriyo

Ooh, essa é uma notícia emocionante !! Obrigado por compartilhar!
mpen 4/03

O @ biswaprio.it fica MUITO claro nas etapas manuais que é preciso concluir para ingressar no programa Insider, que esses lançamentos são literalmente lançamentos semanais da próxima versão do Windows enquanto ela está sendo construída. E sim, o servidor 9P será estável para usuários em geral na versão principal do sistema operacional em que chega. E sim, o fato de levarmos tanto tempo para criar e começar a oferecer uma solução decente aqui deve lhe dar uma idéia de como é complicado para nossa pequena equipe priorizar e projetar.
Richard Turner

1
Eu tenho experimentado este comando do Ubuntu em todas as atualizações do meu sistema desde que ouvi pela primeira vez que este foi lançado. Meu explorador sempre vai para a minha pasta Documentos. E ainda não encontrei nenhuma etapa para "ativar" esse recurso.
Axeman 16/03

3
Situação semelhante à Axeman, quando a executo explorer.exe ., abre a pasta System32. @RichardTurner Onde estão as etapas manuais?
Chris

57

O local foi realmente movido na versão mais recente para:

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

Veja este problema do GitHub da Microsoft / WSL # 2578

Como mencionado na edição acima e nos comentários abaixo, não mexa com esses arquivos do sistema operacional Windows.

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


1
Obrigado! Achei que estava ficando louco tentando seguir as instruções antigas, nem tinha uma pasta lxss.
Alex S

1
Esta informação ainda é verdadeira? Eu não posso encontrar essa pasta no meu Windows 10.
de Bruno Dedo

6
RECOMENDAMOS INDEPENDENTEMENTE QUE VOCÊ NÃO FIQUE NAS PASTA DISTRO ROOT DO WINDOWS. EM CASO DE DÚVIDA, PERDA DE DADOS E / OU CORRUPÇÃO É ALTAMENTE PROVÁVEL: Por favor, leia esta publicação para obter mais detalhes: blogs.msdn.microsoft.com/commandline/2016/11/17/…
Richard Turner

1
"Duvido que alguém tente manipular ou alterar arquivos dessa maneira". Por que você acha que eu gritei o conselho acima? Ouvimos as pessoas várias vezes por semana que legais ignoraram ou não leram este conselho e acabaram corrompendo os arquivos em suas pastas raiz. Heck, existem ferramentas que substituem os arquivos de distribuição (beta) que também costumam causar isso.
Richard Turner

1
Naveguei para uma pasta que havia criado via Ubuntu WSL no Explorer e, como resultado, quebrou irreversivelmente as permissões ... então sim, eu não recomendaria fazer isso!
SamAndrew81 29/03

9

Encontrei pesquisando meu disco C inteiro. Os arquivos estão aqui:

C:\Users\<username>\AppData\Local\lxss

por exemplo, minha chave SSH está aqui:

C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa

2
Parece que o caminho mudou desde a atualização oficial da FCU.
Breve descrição #

1
@Briefkasten Acabei de atualizar para FCU e meus arquivos ainda estão lá. Criou um novo arquivo no Bash apenas para garantir. Você atualizou a WSL ou algo assim?
MPEN

2
@ John D O WSL está localizado na pasta Package, onde o aplicativo será instalado. Para mim, é: C: / Users / {nome de usuário} /AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/rootfs/ Cont. para github.com/Microsoft/WSL/issues/402#issuecomment-321853125
Briefkasten 28/10

9

Sim, mas não é recomendado manipular essa pasta no Windows Explorer. Se você deseja copiar, mover, editar ou apagar arquivos da pasta lxss, é necessário fazê-lo no bash com as ferramentas de linha de comando. Somente arquivos que estão em / mnt / * são realmente manipuláveis ​​no Windows Explorer.


1
Mesmo arquivos de texto simples? Quais são as armadilhas?
MPEN

3
Todo arquivo que reside em uma pasta Volfs (como / home) possui Atributos Estendidos que armazenam as permissões Linux desse arquivo. Se você editar esse arquivo em um editor do Windows, esses atributos serão perdidos e o arquivo desaparecerá do bash. Você pode ler mais aqui: blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
onoma

4
Parece que isso deve ser um bug. O Windows não deve nos dar acesso a esses arquivos, ou apenas de leitura, ou deve interceptar as chamadas de gravação para os arquivos linux e simplesmente não modificar os atributos. Obrigado pela dica. Eu só queria ler os arquivos, então espero que isso não seja um problema.
mpen 8/08/16

5

Em powershell, use

cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs

então

ls

retorna a mesma lista de pastas que

ls / 

dentro do bash na WSL.


4

Como mencionado acima, os arquivos [onoma] nos diretórios WSL têm atributos que desapareceriam se alguém o manipulasse usando o explorer ou o editor de texto executado no sistema Windows. A solução pode ser iniciar o ssh-server no WSL (pode ser necessário reinstalar) ouvindo no host local e montando o sistema de arquivos WSL como uma unidade usando, por exemplo, win-sshfs ou você pode simplesmente usar o cliente Bitvise SSH para conectar-se através do ssh e manipule arquivos pela janela sftp. O tópico foi parcialmente discutido aqui: Como posso fazer o SSH no "Bash no Ubuntu no Windows 10"?


3

subst L: $env:LOCALAPPDATA\lxss (para PowerShell)

ou subst L: %LocalAppData%\lxss(de cmd)

Isso coloca a raiz do sistema de arquivos do subsistema Linux /na unidade L:.

Você também pode mapear apenas o diretório inicial ou apenas bater %LocalAppData%\lxssem uma janela do Explorer. Só não tente navegar por L: \ mnt \ c, pois seu cérebro pode explodir.


3
Ótima solução! Para atual do Windows 10-lo de subst L: $ env: LOCALAPPDATA \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs
Andreas M. Oberheim

3

Finalmente, abri um caminho para abrir o explorer (e vscode) com o contexto de pasta correto real dentro da WSL: https://github.com/andymule/wslwin

Por exemplo, depois de instalar isso, no linux (WSL), você apenas cd /home/mark/.ssh/digitaria explorere abriria o Windows Explorer nesse local, qualquer que fosse.

EDIT: este recurso está sendo oficialmente suportado no WSL agora, e você não deve mais usar meus scripts


2

Estou no Windows 10 Creators Update. Eu uso o SFTP NetDrive para montar o sistema de arquivos WSL no Windows como uma unidade de rede.

Existem algumas portas sshFS do Windows que conseguirão a mesma coisa.

Você precisará iniciar o daemon ssh via "sudo service ssh start"


Qual é a vantagem disso em relação aos arquivos diretamente?
MPEN

Os arquivos têm metadados anexados que podem ser perdidos ao acessar diretamente com aplicativos que não compreendem os metadados.
Mlk

0
\\wsl$\Ubuntu\home\user\whatever 

No explorador ou no widget Executar (Cmd + R). Funciona como um compartilhamento de rede normal e é seguro manipular arquivos.

Você também pode mapeá-lo para uma unidade ou pasta, como qualquer outro compartilhamento de rede.

Nota: Este é um novo recurso implementado no Windows 10 build 18342

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.