
私はWindows初心者で、提供された指示に基づいてWSL2をインストールしましたここ。
正常に動作しますが、コンピュータ上のどこにインストールされているかがわかりません。 の出力はpwd
ですhome/nkp68
。
WSL2 から Windows マシン内のファイルにアクセスするにはどうすればよいですか?
答え1
あなたの投稿を文字通り読むと、そこにはいくつかの異なる疑問があるかもしれません:
- WSL Ubuntu インスタンスはマシンのどこにインストールされていますか?
- (おそらく最初の質問に基づいて) Windows から WSL2 のファイルにアクセスするにはどうすればよいですか?
- 「WSL2からWindowsマシンのファイルにアクセスするにはどうすればいいですか?」(反対最初の2つの質問)
WSL Ubuntu インスタンスはどこにありますか?
短い回答: あなたの場合、基本的なインストールでは、実際のファイルは という名前の仮想ディスクにありますext4.vhdx
。この時点では「場所」を気にする必要はありません (仮想ドライブなので) が、通常は の下にあります%userprofile%\AppData\Local\Packages\Canonical...\LocalState\ext4.vhdx
。 は %userprofile%
通常、 のようになりますC:\Users\<username>
。
もっと詳しく:
これはデフォルトのインストールの場合です。複数のディストリビューションをインストールしたり、同じディストリビューションの複数のインスタンスをインストールしたりすることもできます。WSL の優れた点の 1 つは、ディストリビューションをすばやくコピーしてテストし、テストを破棄できることです。これにより、パッケージ、テスト、または長期的に「不要なもの」を作成する可能性のあるその他のものによって、「良い」日常的なディストリビューションが汚染されることがなくなります。
見る全てインストールしたディストリビューションの場合は、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}
他にもいろいろな場所にたくさんあります。
Windows から WSL2 のファイルにアクセスするにはどうすればよいですか?
しかし、あなたの質問のタイトル「どこ」は、ファイルに対して何かを行う必要がない限り、あまり重要ではありませんext4.vhdx
(例えば、スペースを取り戻す)。
Windows から WSL 内のファイルにアクセスするには、パス (またはディストリビューションの名前) を使用します。ここでは、ファイルを安全にコピーできる が\\wsl$\Ubuntu
見つかります。\\wsl$\Ubuntu\home\nkp68
更新されたメモ: Windows 11 でも\\wsl$\<distro_name>
引き続き動作しますが、新しいパスもあります\\wsl.localhost\<disro_name>
。どちらも同じように動作しますが、wsl.localhost
特定の状況ではもう少し堅牢になるはずです。
WSL2 から Windows マシン内のファイルにアクセスするにはどうすればよいですか?
Ubuntu を使用していて、Windows ドライブ (例 ) 上のファイルにアクセスする必要がある場合C:
、それらは (デフォルトで) 自動的にマウントされます。
ls /mnt/c/Users
ls /mnt/c
WSL内からWindowsドライブ上のファイルを操作する際には、特に権限とパフォーマンスに関して微妙な違いがあります。通常、プロジェクトファイルは内部Ubuntu ext4 ファイルシステム (例:/home/nkp68
ディレクトリの下)。ただし、必要に応じてドライブ間でファイルにアクセスしたり、ファイルをコピーしたり、移動したりすることは可能です。
WSL 機能はどこにありますか?
質問のタイトルは、実際の WSL 機能がどこにインストールされているかを知りたいという意味に解釈できます。元の投稿者であるあなたには当てはまらなかったことは承知していますが、他の人からもこの質問が寄せられたので、タイトルに基づいてこの質問が見つかった場合に備えてここに追加します。
システム上の WSL 機能の場所は、使用している WSL のバージョンによって異なります。
少なくとも Windows 10 21H2 (おそらくそれ以前) 以降、WSL の古いバージョンは Windows 機能として 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
。結果が 1 つしかない場合 (そうであるはずです)、次のコマンドで開くことができます。explorer "$($packageMatches.InstallLocation)"
tools\kernel
また、このディレクトリ内には、このリリースの WSL2 カーネルである があります。Windows 10システムでは、両方これらの。
Windows 11システムでは、5月WSL1 をインストールした場合は、これら両方のインストール場所があります。