WindowsでLinuxサブシステムのファイルをいじってはいけない

今年 Windows 10 の一周年記念アップデート (Windows Anniversary Update) が行われ、プレビュー扱いながらも Windows 10 のカーネルに新機能として WSL が実装された。別途 Linux OS インストールや仮想マシンを用意せずとも Windows 上から Linux ネイティブな環境が手に入りとっても便利。


※WSL = Windows Subsystem for Linux

この WSL 、使用するにあたってマイクロソフトの開発者の一人がブログで注意を呼びかけている。 Windows のアプリ、ツール、スクリプトやコンソールでも Linux ファイルシステム上でファイルを作成、または変更を加えないよう警告している。データの破損や Linux 環境がおかしくなる可能性があるという。

Microsoft Developer – Do not change Linux files using Windows apps and tools

 

Windows では Linux 関連のファイルは (ユーザ名%AppData%localappdata%\lxss) 下に収められている。

元々隠しフォルダに指定されているため、MS もこのフォルダをいじってほしくないということが考えなくともわかる。

Linux のファイルメタデータ(権限、所有者やタイムスタンプなどのデータ)はWindows のそれと全く違うため、 WSL が編集したファイルを見失い読み込めなくなるそうだ。

更に Windows のアプリは通常、ファイルを更新や改変するとき元のファイルを削除してから新しく作成、もしくは複製してからオリジナルファイルを削除する。

なので Linux ファイルのメタデータが修正されていなければ WSL は迷子になって正しくファイルを開いたり書き込んだりできなくなる。


解決方法

Windows と Linux 、両方の環境でファイルを使うためには、 Windows ファイルシステム上でファイルを作成すれば良い。 WSLのファイルシステム上で作成したファイルはたとえコンソールであっても Windows 側でいじらないこと

WSL は NT ファイルシステム上のファイルを正しく扱うようプログラムされているので Windows ファイルシステム上のファイルならば両方のOS環境で改変しても大丈夫。

いい加減 Windows も Linux のファイルシステムに対応してくれると有り難いんだけどね。



 

こちらの記事もどうぞ

覚えておくと便利な Windows 10 ショートカットキー... Tadas Sar 更新 : 2018/12/01 それぞれオペレーティング・システムには便利なショートカットキーが用意されている。Windows 10も例外ではない。「Control + C」でコピー、「Control + V」でペーストなど、基本的なショートカットキーを覚えている人は多いと思...
Linux、Spectre V2 対応パッチをデフォルトで無効化、大幅な性能低下のため... トーバルズ氏、デフォルトでは防御機能(STIBP)を無効化すると発表 先週、休暇から復帰したリーナス・トーバルズ氏は、データ漏えいの危険性を持った脆弱性「Spectre Variant 2(スペクター2)」に対応したカーネルパッチについての見解を語り、デフォルトでは防御機能を無効化する...
グラフィカルな Nvidia GPU 用オーバークロックツール「Nvidiux」... Nvidiux Nvidiux は Python で作られた Nvidia GPU 用のオーバークロック・ツールだ。 このツールは Nvidia GPU をオーバークロックするのに必要な Coolbits オプションを付加した xorg.conf ファイルを自動生成し、ユーザが設...
Linux の CCCoC(行動規範)導入について... Photo by Brian McMahon on Unsplash 初稿:2018/09/29 改稿:2018/10/05 Linux に今までの Code of Conflict に取って代わって、新たに CCCoC(Code of Conduct、行動規範) が設けられた。 The...

コメントを残す

メールアドレスが公開されることはありません。