「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>Windows Subsystem for Linux]]

* 目次 [#u4c2c815]
#contents

*概要 [#m00e4b8b]
ファイルシステム、環境変数、プログラム実行辺りの話。

*詳細 [#a29a8bc1]

**相互運用の有効化・無効化 [#t277e96d]

***有効化 [#rd2445a4]
 $ echo 1 > /proc/sys/fs/binfmt_misc/WSLInterop

***無効化 [#zac36c93]
 $ echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop

**ファイルシステム [#y77443bf]

***DrvFs [#jc2d54b9]
WSL環境にWindowsのボリュームをマウントし、~
-WSL環境にWindowsのボリュームをマウントし、~
LinuxからWindowsのファイルにアクセスできるようにする仕組み。 

-以下のようなパスで、Windowsのボリュームにアクセス出来る。
 $ dir /mnt
 c  d
 $ dir /mnt/c
 ...

***P9 [#vca1ff79]
[[WSL2>Windows Subsystem for Linux#t1ddb916]]から、[[DrvFs>#jc2d54b9]]は、P9に置き換えられる。

***rm -rf / [#nef4f08d]
ということなので、WSLで「rm -rf /」を実行すると、~
Windowsのファイルが削除されWindowsが壊れるという話がある。

-実行してはいけないLinuxコマンド(3)~
Windows 10 WSLで『rm -rf /』を実行 | マイナビニュース~
https://news.mynavi.jp/article/dont_run_on_linux-3/

※ [[WSL2>Windows Subsystem for Linux#t1ddb916]]については、P9の仕様次第。

***参考 [#s93786b1]
-WSLでWindows側のドライブをマウントする方法~
株式会社シーポイントラボ | 浜松のシステム開発会社~
https://cpoint-lab.co.jp/article/201904/9153/

-Windows 10からWSL上のLinuxファイルへ~
読み書き可能に、4月に予定のアップデートで - Publickey~
https://www.publickey1.jp/blog/19/windows_10wsllinux4.html

※ [[kledgeb>#tbdfa959]]

**環境変数の共有 [#za295a68]

***17063以前 [#o32619cf]
wsl がアクセスできる Windows 環境変数はPATHのみ。

***17063以降 [#jb80c201]
WSLENVはブリッジのための特殊な環境変数。

 C:\>set WSLENV=USERPROFILE:USERNAME
 C:\>wsl
 seigi@nishino:/mnt/c/Users/nishi$ echo $WSLENV
 USERPROFILE:USERNAME

**コマンド [#a71612ab]

***Windows → WSL [#c0e43cad]
wsl.exeを使用してCMD または PowerShellから Linux バイナリを実行
 wsl.exe <command>

-wsl でのコマンド実行と同様に処理される。
-sudo、パイプ、ファイルリダイレクトなどが機能する。

-例

--バイナリ
---lsコマンド
 wsl ls -la

--パイプ

---ls(Linux)をfindstr(Windows)にパイプ
 c:\> wsl ls -la | findstr "root"

---dir(Windows)をgrep(Linux)にパイプ
 c:\>dir | wsl grep root

***WSL → Windows [#l41e48e1]
-Windows バイナリには、ファイル拡張子が含まれている必要がある。
-また、ファイルの大文字と小文字が一致している必要がある。

-例

--バイナリ
---notepad
 $ notepad.exe

--パイプ

---ls(Linux)をfindstr(Windows)にパイプ
 $ ls -la | findstr.exe "root"
 drwxr-xr-x 1 root  root    512 May  8  2018 ..
 drwxrwxrwx 1 seigi seigi   512 May  8  2018 wwwroot

---ipconfig(Windows)をgrep(Linux)にパイプ
 $ ipconfig.exe | grep IPv4
   IPv4 Address. . . . . . . . . . . : 10.0.75.1
   IPv4 Address. . . . . . . . . . . : 192.168.179.2
   IPv4 Address. . . . . . . . . . . : 172.17.68.193

*参考 [#y55d5d65]
-Windows と Linux の相互運用性 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/windows/wsl/interop

**[[WindowsとWSL間の接続]] [#sa0a1b77]

**kledgeb [#tbdfa959]
-kledgeb: WSL~
https://kledgeb.blogspot.jp/search/label/WSL?max-results=10

***相互運用 [#a516035a]
-その52 - BashからWindowsバイナリーを起動する機能の有効・無効を切り替えるには~
https://kledgeb.blogspot.jp/2016/10/wsl-52-bashwindows.html
-その53 - WindowsとBashの相互運用~
https://kledgeb.blogspot.jp/2016/11/wsl-53-windowsbash.html

-WindowsとUbuntuの相互運用の仕組み
--その54 -(前編)~
https://kledgeb.blogspot.jp/2016/11/wsl-54-windowsubuntu.html
--その55 -(後編)~
https://kledgeb.blogspot.jp/2016/11/wsl-55-windowsubuntu.html

***ファイルシステム [#ve679160]
-UNIXソケット

--その131 - Build 17093のWSLに関する変更点・UNIXソケットによる相互運用の改善とWSLの自動設定機能の追加~
https://kledgeb.blogspot.com/2018/02/wsl-131-build-17093wslunixwsl.html

--その132 - WindowsとWSL間でUNIXソケットを利用した通信が可能に - kledgeb~
https://kledgeb.blogspot.com/2018/02/wsl-132-windowswslunix.html

-ファイル

--1903未満

---WSLがサポートするファイルシステム
>その26 -(前編)LinuxのファイルシステムとWindowsのファイルシステム~
https://kledgeb.blogspot.jp/2016/06/wsl-26-wsllinuxwindows.html~
その27 -(後編)WSLのファイルシステム~
https://kledgeb.blogspot.jp/2016/06/wsl-27-wslwsl.html

---その60 - WindowsアプリからUbuntu環境内のファイルを決していじってはならない~
https://kledgeb.blogspot.jp/2016/11/wsl-60-windowsubuntu.html

---その109 - LinuxからWindowsのファイルにアクセスできない不具合~
https://kledgeb.blogspot.jp/2017/08/wsl-109-linuxwindows.html

--1903以後

---その167 - WindowsからLinuxのファイルにアクセスする仕組み(Windows 10 version 1903)~
https://kledgeb.blogspot.com/2019/02/wsl-167-windowslinuxwindows-10-version.html

----
Tags: [[:Windows]], [[:Linux]], [[:Linuxサブシステム]], [[:仮想化]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS