Windows 10 WSLからlinux / Ubuntuファイルにアクセスする方法は?


71

この質問は、Ubuntu BashからWindowsファイルにアクセスする方法を示していますが、どうすれば反対のことができますか?

具体的には、/home/mark/.ssh/id_rsaBashの下にあるWindowsからSSHキーにアクセスする必要があります。



(この質問はより一般的であり、はるかに優れた最新の回答があるため、phuclvのリンクされた質問を逆年代順にだまして閉じることを提案しました。)
ボブ

回答:


26

PM for Windowsコマンドラインはこちら:

2019年10月更新:Win10 1903(およびそれ以降)の新しく統合されたP9サーバーを介してディストリビューションのLinuxファイル直接アクセスする新たに追加された機能を反映するために、以下の応答を更新します

重要:Windowsファイルシステムを介してLinuxファイルにアクセスすることは、サポートされていないため、今後も引き続き推奨されます!理由を理解するには、この投稿を読んでください

では、Windowsツール(メモ帳、VS / VScodeなど)を使用してLinuxファイルにどのようにアクセスしますか?以前はできませんでしたが、Windows 10 1903から(最終的に!)P9ファイルサーバー経由でディストリビューションのファイルシステムをWindowsに公開します。また、これがどのように機能するかを説明する詳細なビデオを公開しました!また、このブログ投稿でこの新機能の概要を読むこともできます

ここに画像の説明を入力してください

この機能をどのように使用しているかを楽しみにしています。問題が見つかった場合は、WSL GitHubリポジトリ(https://github.com/Microsoft/wsl)で問題を報告してください


サー、この9Pファイルサーバー機能は通常のユーザーに対して安定していますか?そうでない場合は、不安定なインサイダービルドの使用に関する警告を追加することをお勧めします。多くのユーザーはそれに慣れていないかもしれません。興味深い事実として、あなたの答えには、2016年と2019年のブログが含まれ、3年
以内

おお、それはエキサイティングなニュースです!! 共有していただきありがとうございます!
mpen

@ biswaprio.itは、Insiderプログラムに参加するために完了しなければならない手動手順で、これらのリリースがビルド中のWindowsの次のバージョンの文字通り毎週のドロップであることを非常に明確にしています。そして、はい、9Pサーバーは、それが届く主流のOSリリースの一般ユーザーにとって安定しています。そして、そうです、ここで適切なソリューションを構築して提供し始めるのに長い時間がかかったという事実は、小さなチームが優先順位を付けてエンジニアリングするのがいかに難しいかについてのあなたのアイデアを与えるでしょう。
リチャードターナー

1
このコマンドがリリースされたと初めて聞いてから、システムを更新するたびにUbuntuからこのコマンドを試してきました。エクスプローラーは常にDocumentsフォルダーに移動します。そして、この機能を「有効にする」ための手順をまだ見つけていません。
アックスマン

3
Axemanと同様の状況で、実行explorer.exe .するとSystem32フォルダーが開きます。@RichardTurner手動の手順はどこにありますか?
クリス

57

場所は最新のリリースで実際に移動されました:

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

Microsoft / WSL#2578のこのGitHubの問題を参照してください

上記の問題と以下のコメントで言及したように、Windows OSからこれらのファイルを混乱させないでください。

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


1
ありがとう!私は古い指示に従おうとして夢中になっていたと思ったが、lxssフォルダーさえ持っていなかった。
アレックスS

1
この情報はまだ真実ですか?私は自分のWindows 10に、このようなフォルダを見つけることができません
ブルーノフィンガー

6
WindowsのDistro Root Foldersに飛び込まないことを強くお勧めします。IF YOU DO、データ損失や/または破壊は可能性が高い:詳細については、この記事をお読みください:blogs.msdn.microsoft.com/commandline/2016/11/17/...
リチャード・ターナー

1
「私は誰もがそのようにファイルを操作または変更しようとすることを疑います」。なぜ私は上記のアドバイスを叫んだと思いますか?週に何度も人々からこのアドバイスを無視するか読んでいないと聞き、ルートフォルダー内のファイルが破損します。ちなみに、これを頻繁に引き起こす(ベータ)distrosファイルを置き換えるツールがあります。
リチャードターナー

1
エクスプローラーでUbuntu WSLを使用して作成したフォルダーを参照しましたが、その結果、不可逆的にアクセス許可が失われました。
SamAndrew81

9

Cドライブ全体を検索して見つけました。ファイルは次のとおりです。

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

たとえば、私のSSHキーは次のとおりです。

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

2
公式のFCUの更新以降、パスが変更されたようです。
ブリーフカステン

1
@Briefkasten私はFCUに更新したばかりで、私のファイルはまだそこにあります。念のため、Bashの下に新しいファイルを作成しました。WSLなどをアップグレードしましたか?
mpen

2
@John D WSLは、アプリがインストールされるパッケージフォルダーにあります。私にとっては:C:/ Users / {username} /AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/rootfs/ Cont。github.com/Microsoft/WSL/issues/402#issuecomment-321853125
Briefkasten

9

はい。ただし、Windowsエクスプローラーからそのフォルダーを操作することはお勧めしません。lxssフォルダーからファイルをコピー、移動、編集、または消去する場合は、コマンドラインツールを使用してbash内で実行する必要があります。/ mnt / *にあるファイルのみが、Windowsエクスプローラーから実際に操作できます。


1
単純なテキストファイルでも?落とし穴は何ですか?
mpen 16

3
Volfsフォルダー(/ homeなど)にあるすべてのファイルには、そのファイルのLinuxアクセス許可を格納する拡張属性があります。Windowsエディターでそのファイルを編集すると、それらの属性は失われ、ファイルはbashから消えます。詳細についてはこちらをご覧ください:blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
onoma

4
そのように聞こえるのはバグであるはずです。Windowsは、これらのファイルへのアクセスを許可しないか、読み取り専用アクセスを許可するか、Linuxファイルへの書き込み呼び出しをインターセプトし、属性を変更しないでください。ヒントをありがとう。ファイルを読みたいだけだったので、問題ないことを願っています。
mpen 16

5

ではpowershell、使用

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

それから

ls

と同じフォルダのリストを返します

ls / 

WSLのbash内。


4

[onoma]で前述したように、WSLディレクトリ内のファイルには、Windowsシステムで実行されるエクスプローラーまたはテキストエディターを使用して操作すると消える属性があります。解決策は、localhostでリッスンし、たとえばwin-sshfsを使用してWSLファイルシステムをドライブとしてマウントするか、ssh経由で接続するBitvise SSHクライアントを使用して、WSLでssh-serverを起動することです(再インストールが必要な場合があります) sftpウィンドウでファイルを操作します。このトピックは部分的にここで議論されています:「Windows 10でUbuntuのBash」にSSHで接続するにはどうすればよいですか?


3

subst L: $env:LOCALAPPDATA\lxss (powershellの場合)

またはsubst L: %LocalAppData%\lxss(からcmd

これにより、Linuxサブシステムのファイルシステムルート/L:ドライブに配置されます。

また、ホームディレクトリだけをマップすることも%LocalAppData%\lxss、エクスプローラウィンドウを強打することもできます。L:\ mnt \ cをブラウジングしないでください。脳が爆発する可能性があります。


3
いい解決策!現在のWindows 10の場合、サブディレクトリL:$ env:LOCALAPPDATA \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs
アンドレアスM.オーバーハイム

3

最終的に、WSL内から実際の正しいフォルダーコンテキストでエクスプローラー(およびvscode)を開く方法を作成しました:https : //github.com/andymule/wslwin

たとえば、これをインストールした後、Linux(WSL)では、cd /home/mark/.ssh/と入力するだけexplorerで、それが何であれ、その場所でWindowsエクスプローラーが開きます。

編集:この機能は現在WSLで公式にサポートされており、私のスクリプトは使用しないでください


2

Windows 10 Creators UpdateのIm。SFTP NetDriveを使用して、WSLファイルシステムをネットワークドライブとしてWindowsにマウントします。

同じことを実現するWindow sshFSポートがいくつかあります。

「sudo service ssh start」でsshデーモンを起動する必要があります


ファイルに直接アクセスするよりも、この利点は何ですか?
mpen

ファイルにはメタデータが添付されており、メタデータを理解しないアプリケーションで直接アクセスすると失われる可能性があります。
mlk

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

エクスプローラーまたは実行ウィジェット(Cmd + R)。通常のネットワーク共有のように機能し、ファイルを安全に操作できます。

他のネットワーク共有と同様に、ドライブまたはフォルダーにマップすることもできます。

注:これは、Windows 10ビルド18342で実装された新しい機能です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.