Linux用のWindows Subsystemを使用してbash
にログインしようとするときはいつでも、C:\Users\
にcd
を入力しようとしますが、ディレクトリが見つかりません。
Windows Linuxサブシステム用のC
ドライブはどこにありますか?孤立していますか?
このWebサイトから取得:
WSLは、
/mnt/<drive letter>/
ディレクトリ(またはマウントポイント)を介してPCのファイルシステムにアクセスできます。たとえば、WindowsのC:\
およびD:\
ルートディレクトリは、それぞれWSLの/mnt/c/
および/mnt/d/
を通じて利用できます。
/mnt
フォルダーにcd
を入れるだけで大丈夫です。
/mnt/c
または/mnt/<drive letter>/
ローカルドライブは
/mnt
フォルダの下にマウントされています。
たとえば、C:
ドライブは/mnt/c
の下にマウントされています。 [ msdn ]
Linuxファイルシステムはユニークなツリーです(C:\
、D:\
...はありません)。
この木の根は/
です(/
ではなく\
に注意してください)。
すべてのユニット、パーティション、ペンドライブ、リムーバブルディスク、CD、DVD ...はこのツリー上の点にマウントすると利用可能になります。それからあなたはそれらを通常のディレクトリとして見るでしょう。
追加のパーティションがマウントされる通常の場所は/mnt
ディレクトリです。
これもwindows-linux-subsustemのもとで動きます。
注:Linuxでは、パス内のディレクトリーを区切るためにバックスラッシュ(/
)の代わりにこのスラッシュ(\
)を使用します。通常、Linuxファイルシステムでは大文字と小文字が区別されます(mydir
)とMydir
は2つの異なるものです。
Windows NTの時代から、ドライブにアクセスする別の方法がありました。文字を使用する代わりに、ファイルシステム内のフォルダにドライブをバインドすることができます。 Microsoftはこれらのマウントされたフォルダと呼びます。エンドユーザーに関する限り、それらは通常のフォルダーと同じように機能します。それらは別のドライブに常駐していますが、ほとんどの状況下では気付かれません。これはいくつかのシナリオで役立ちますが、非常に多くのドライブをマウントしてドライブ文字が足りなくなった場合でも重要ですが、さらに追加する必要があります。マウントされたフォルダを使用する方法です。
Linux(およびそれに影響を与えたUnix)では、すべてのドライブがこのように機能します。空のパス/
で始まるファイルシステムは1つだけです(通常はドライブにバインドされています)。次に、/
内のディレクトリを使用して他のドライブ(または場合によっては他のもの)をマウントします。これらはUnixの用語ではマウントポイントと呼ばれます(Linuxはこれを継承しています)。たとえば、ユーザのホームディレクトリはしばしば/home/
usernameになりますが、/home
を別のドライブのマウントポイントにするのが一般的です。そうすれば、起動したドライブが何らかの理由で故障しても、ホームディレクトリは影響を受けません。ユーザーはいつものように/home/
usernameに移動します。彼らがマシンのメンテナンスを担当しているのでなければ、彼らは自分のホームディレクトリがどのドライブにあるのかを知っていたり気にしたりする必要はない。
WSLはLinuxを模倣しようとしているので、これも同じです。このギャップを埋めるために、Windowsドライブをディレクトリ名としてドライブ文字を使用して、フォルダ '/ mnt /'にマウントします。たとえば、C:ドライブは/mnt/c
にありますが、D:ドライブは/mnt/d
にあります。