web-dev-qa-db-ja.com

Windows 10Ubuntuでの/ root /の場所

Windows10のUbuntuにbashをインストールしました-インサイダープレビュー版。ただし、Windowsターミナルは、Ubuntuのターミナルに慣れている場合、使用するのが面倒です。他のエディターで開発を行い、Ubuntu-bashからコードを実行できるように、WindowsからUbuntuファイルシステムにアクセスする方法があるかどうか疑問に思っていました。

5
samar

Windowsコマンドプロンプトを開くことができるターミナルプログラムはすべてbashを実行できるはずです(bash.exeはWindows Linuxサブシステムを起動します)ので、command.exeで立ち往生する必要はありません。

Conemu(@anotherfredが言及)またはCmderはファンのお気に入りの一部です。必要に応じて、Powershellを使用することもできます。

WindowsファイルにはWSLの/ mnt/c(および、d:ドライブなどがある場合は/ mnt/d)からアクセスできます。これは、コマンドラインを実行しながら、お気に入りのWindowsエディターを使用してファイルにアクセスする場合に比較的うまく機能します。

あなたはあなたの WSLファイルシステム をWindowsから見ることができます:

%LocalAppData%\lxss\rootfs

私はWindows内からそれを台無しにしないだろうが。

/ root

%LocalAppData%\lxss\rootfs\root

そして

/ home

%LocalAppData%\lxss\rootfs\home

これら2つは別々にマウントされているため、WSLを削除しても削除されません。

6
cgranier

2017年末以降にリリースされたWindows10バージョン(Fall CreatorsUpdateおよびWindowsInsider Builds 17063+を含む)は、同じマシン上で実行される複数のLinuxディストリビューションをサポートします。その結果、WSLは各ディストリビューションのルートファイルシステムを異なる場所に保存する必要があります。

ルートファイルシステムは見つかりません

%LocalAppData%\lxss\rootfs

ファイルシステムフォルダの新しい場所

Windowsストアからインストールされた各Linuxディストリビューションは、ルートファイルシステムを次の異なるフォルダーに格納します。

%LocalAppData%\Packages\<distro folder>\LocalState

<distro folder>は、ディストリビューションごとに異なります。たとえば、テストコンピュータの<distro folder>は次のとおりです。

  • Ubuntu 16.04:CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc
  • Ubuntu 18.04:CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc
  • Debian:TheDebianProject.DebianGNULinux_76v4gfsz19hv4
  • Kali linux:KaliLinux.54290C8133FEE_ey8k8hqnwqnmg

rootまたはhomeファイルシステムにアクセスする場合は、適切なフォルダ。たとえば、KaliLinuxのフォルダーに移動するには、次の場所に移動する必要があります。

%LocalAppData%\Packages\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\rootfs   # root
%LocalAppData%\Packages\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\home     # home

LxRunOfflineを使用してパスを取得する

LxRunOffline は、WSLLinuxディストリビューションを管理するためのツールです。これを使用して、WSLディストリビューションをコンピューターの任意のフォルダーにインストールまたは移動できます。

lxRunOffline get-dirを使用して、インストールフォルダーのパスを取得できます。 rootrootfsサブフォルダーにあります。

C:\> lxrunoffline list
Ubuntu-18.04
ubuntu-copy

C:\> lxrunoffline get-dir -n Ubuntu-18.04
C:\Users\nnn\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState

C:\> lxrunoffline get-dir -n ubuntu-copy
d:\wsl\installed\ubuntu-copy

プログラムでパスを取得する

興味があれば、プログラムを使ってパスを取得できます。インストールされているディストリビューションとその構成に関する情報は、Windowsレジストリに保存されています。

regeditと次のパスを使用して、情報を確認できます。

HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss

インストールしたさまざまなディストリビューションのすべての構成があります。たとえば、Powershellを使用して、既定の配布のベースパスの情報を取得できます。

$WSLREGKEY="HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss"
$WSLDEFID=(Get-ItemProperty "$WSLREGKEY").DefaultDistribution
$DISTROPATH=(Get-ItemProperty "$WSLREGKEY\$WSLDEFID").BasePath
echo "the filesystems are located at $DISTROPATH"

インストールされているすべてのディストリビューションのファイルシステムを確認するには、Powershellを使用することもできます。

(Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object {Get-ItemProperty $_.PSPath}) | select DistributionName,BasePath
2
Jaime

逆です。bashは/mnt/cにあるWindowsファイルシステムにアクセスしています。ファイルはWindowsファイルシステムにあり(あるはずです)、通常どおり編集できます。

単にターミナルインターフェイスが気に入らない場合は、conemu( https://conemu.github.io/ )のようなものを試してください。これは、コマンドシェル、PowerShell、または任意のシェルに便利で美しいインターフェイスです。

1
anotherfred