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 のファイルシステムに対応してくれると有り難いんだけどね。



 

こちらの記事もどうぞ

Linux の CCCoC(行動規範)導入について... 初稿:2018/09/29 改稿:2018/10/05 Linux に今までの Code of Conflict に取って代わって、新たな CCCoC(Code of Conduct、行動規範) が設けられた。 The Linux Kernel - Contributor Covenant...
Linux では AMD と NVIDIA どっちが良いのか 2018... 改稿 2018年10月3日 Radeon と GeForce 、Linux ではどっちが良いかという論争が度々起こる。今回は自分なりの感想を載せながらどちらが良いか比較しようと思う。ベンチマークなどは他の海外サイトがいくらでも載せてくれているので、そのリンクのみにとどめおこうと思う。 ゲーム...
LinuxとWindowsをデュアルブートするのは止めたほうが良い... Photo by Edgar Castrejon on Unsplash デスクトップパソコンを持っていて Windows OS が入っているけど Linux も使ってみたいという人も結構いると思う。 Windows を仕事や大学で使わざる得ないけど、LinuxをメインOSにしたいとか、当方みたい...
ValveがWindowsゲームをLinuxで動かす互換レイヤー「Proton」を発表... Photo by L E on Unsplash 初稿:2018年8月23日 更新:2018年9月24日 Valve が8月21日、Codeweavers と共同開発した Windows ゲームを動かせる互換レイヤーを発表した。この互換レイヤー 「Proton (プロトン)」は Linux ユ...

コメントを残す

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