60232


Win10でwslのホームディレクトリ下(※1)にファイルを作成しても、すぐにはwslで参照できません。  
Win10を再起動すると、wslからも見えるようになります。  
再起動せずに、即座にwslから参照する方法があれば教えてください。

※1 Win10でのWSLユーザのディレクトリ

[code]

    C:\Users\XXXXX\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\yyyyyyyy
    
            XXXXXはWinユーザ
            yyyyyyyはWSLユーザのHOMEディレクトリ
    
[/code]

WSLのバージョンは以下のとおりです。  
/etc/os-release

[code]

    NAME="Ubuntu"
    VERSION="18.04.3 LTS (Bionic Beaver)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 18.04.3 LTS"
    VERSION_ID="18.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=bionic
    UBUNTU_CODENAME=bionic
    
[/code]

* * *

解決しました。らっしーさん、どうもありがとうございました。  
実はいろいろあって時間がかかりました。

  * 1903を当てる  
問題なし

  * \wsl$\ディストリビューション名  
問題あり

    * `wslconfig /l`でディストリビューション名を調べる
[code]     Windows Subsystem for Linux ディストリビューション:

    Ubuntu-18.04 (既定)
    Ubuntu
    
[/code]

    * エクスプローラで`\\wsl$\Ubuntu-18.04`をアクセス  
★ KERNEL_MODE_HEAP_CORRUPTION でブルー画面、再起動される。

    * KERNEL_MODE_HEAP_CORRUPTIONの調査  
[バグ チェック 0x13A:カーネル_モード_ヒープ_破損](https://docs.microsoft.com/ja-jp//windows-
hardware/drivers/debugger/bug-check-0x13a--kernel-mode-heap-
corruption)が引っ掛かった。  
詳細はよく理解できなかったが、何かが破損しているよう。

  * 修復  
問題なし

    * `wslconfig /upgrade Ubuntu-18.04`の実行  
ディスクのチェック方法や修復方法がわからなかったので、思い切ってファイルシステムの変換を行うことにした。  
これでエラーなら`WSL`の再構築を覚悟して、実行した。  
夕方開始して、寝るときにもまだ終わっていない。朝起きても終わっていなかったが、うっかりエンターキーを押下したら正常終了のメッセージがでた。※実際はもっと早く終了していたのかもしれない。

  * \wsl$\ディストリビューション名 を再度実行  
問題なし  
Win10で作成したファイルをWSLから即時アクセスすることができた。

* * *

エクスプローラで`\\wsl$\Ubuntu-18.04`を開いたときにPCが落ちたときは(３回ぐらい試したましたが全滅)、最悪の事態を覚悟しましたが、おかげ様で、やりたいことができるようになりました。


CC BY-SA 4.0
2019-11-03T15:30:47.153
60226
2019-11-12T15:13:27.737
2019-11-07T09:27:46.310
35558
35558
question
wsl
Win10でwslのファイルシステム上に作成したファイルをすぐにwslで参照したい


そのような操作はWSLのサポート外です。

WSL上の/以下のファイルシステムは、NTFSのファイルシステムを利用していますが、NTFSをそのまま使っているわけではありません。WindowsとLinuxでのファイルシステムの違い(大文字小文字を区別する・しない等)を吸収するために特殊なファイルやフォルダー扱いになっており、不足分の情報を別途持っていたりします。そのため、
**Windows上からWSLのファイルシステムとして利用しているNTFS上の領域を直接操作することはサポートされていません。**
すぐに見えない程度はまだ良い方で、最悪、ファイルが壊れたり、消えたりして、WSLのディストリビューションが壊れる事があります。

Windows 10
1903から`\\wsl$\ディストリビューション名`でWindowsから(サポートされた動作として)操作することができるようになりましたので、このパス経由でアクセスし、ディレクトリ等の作成をしてください。


CC BY-SA 4.0
2019-11-03T22:30:33.923
60232
2019-11-03T22:30:33.923
7347
60226
answer


自己回答です。  
らっしーさんの回答のとおり、以下の手順で問題は解決しました。  
Win10側でWSLへファイルを送り込むと、WSL側ですぐ参照できるようになりました。

【手順】  
\- 1903を当てる  
\- \wsl$\ディストリビューション名でアクセス  
`subst S: \\wsl$\Ubuntu-18.04\home\ユーザ名`でドライブを割り当てています。  
※ネットワークドライブの割り当ては使えませんでした

【注意】  
**調子にのって、WSL側でCソース整形(`clang-format
-i`)、Win10側でソース修正を繰り返していたら、何回目かに`KERNEL_MODE_HEAP_CORRUPTION`でWin10が落ちました。  
自己責任で排他しないと危険です**が、普通に使っている分には快適です。

* * *

Win10起動直後に、ドライブ割り当て(`subst S:
\\wsl$\Ubuntu-18.04\home\ユーザ名`)を実行すると`KERNEL_MODE_HEAP_CORRUPTION`でWin10が落ちました。  
それ以降は、WSL側を起動し、`sudo service ssh
start`を実行した後にドライブ割り当てを行うようにしています。因果関係は説明できませんが、Win10が落ちるのが嫌なので「おまじない」と思ってこの手順を踏んでいいます。


CC BY-SA 4.0
2019-11-06T09:59:34.590
60295
2019-11-12T10:44:51.193
2019-11-12T10:44:51.193
35558
35558
60226
answer


求めている方法とは逆かもしれませんが WSL 側から Windows の フォルダは  
`/mnt/c/Users/[ユーザ名]` でアクセスできます。

[Windows Terminal](https://github.com/microsoft/terminal) を開いたときのデフォルトは  
このディレクトリになっています。

Visual Studio Code で ファイルを編集しながら、ターミナルで ビルド＆実行していますが  
不安定な事はありません。

WSL の Ubunto 側で `code .` と 打鍵すると Windows 側で Visual Studio Code が起動して WSL
側のファイルをリモートアクセスで編集できるのでとても便利です。

C,C++ の開発を WSL + Windows + Visual Studio Code で行うのを試してみてください。


CC BY-SA 4.0
2019-11-12T15:13:27.737
60457
2019-11-12T15:13:27.737
18851
60226
answer