Windows 11/10でLinuxファイルを変更してはいけません。その理由は?

Windows 11/10でLinuxファイルを変更することを考えている人のために、知っておきたいことがあります。Microsoftによると、WindowsからLinuxファイルを作成または変更すると、データが破損する可能性が高く、Linux環境が損傷する可能性があります。その場合、ディストリビューションをアンインストールして再インストールする必要があります。

Windows 11/10でLinuxファイルを変更しないでください

つまり、Linuxファイルや「%localappdata%\lxss」の下に保存されているファイルは、Windowsツールのいずれかを使用して作成または編集しないでください。そうしないと、重大な損失を被る可能性があります。

この問題の理由を説明しましょう。

WSLまたはWindows Subsystem for Linuxが、特定のファイルのLinuxファイルメタデータを見つけることができない場合、そのファイルはシステムで破損または損傷していると自動的に判断します。これは、ファイルのメタデータがすべて、Windowsとは異なる方法でLinuxに保存され、表示されているためです。WSLはすべてのLinuxデータをNTFSフォルダーに保存し、そのメタデータをNTFS拡張属性で計算して永続化します。

一方、Windows 11/10のアプリには、ルートリンク(%localappdata\lxss\)の下に保存されているファイルを作成/変更するたびに、このLinuxメタデータを再計算して永続化するのに必要なアルゴリズムがありません。そのため、Windows 11/10のアプリやツールを使用してLinuxファイルを編集すると、NTFS形式との互換性がないため、前のメタデータが属性にまったく存在しません。

これらのWindowsツールのもう1つの側面は、通常は元のファイルを即座に編集しないことです。むしろ、元のファイルを削除してアプリ上で再作成し、必要な編集を加えてユーザーに戻します。このプロセスでは、LinuxファイルからすべてのNTファイルとメタデータが削除され、NTファイルの拡張プロパティは永続化されずに失われることがよくあります。したがって、Linuxファイルのファイルメタデータがないか、正しくない場合、Windowsアプリはそれを破損していると見なし、使用できないファイルに変換する傾向があります。

予防

Windows 11/10とLinuxアプリのハイブリッドを使用するファイルで作業する場合は、それらのファイルをWindowsファイルシステムで作業して保存し、WindowsとBashシェル両方から/mnt/<ドライブ>/パスでアクセスすることをお勧めします。両方のサービスを使用してLinuxファイルにアクセスすると、WindowsはすべてのNTファイルシステム要素を認識できます。これにより、ファイルをファイルシステム間でコピーすることなく、WindowsツールとBashツールの両方を使用して同じファイルにアクセスできます。

Microsoftのシニアプログラムマネージャー、リッチ・ターナーは、次のように述べています。ファイルを紛失したり、データを破損したりしないように、次の2つのルールに従ってください。

  1. WindowsツールとLinuxツールの両方を使用して作成/変更するファイルをWindowsファイルシステムに保存する
  2. Windowsアプリ、ツール、スクリプト、またはコンソールからLinuxファイルを作成/変更しない

全文を読むには、Microsoftのブログ記事を参照してください。

LinuxファイルはWindowsのどこに保存されていますか?

Windows 11またはWindows 10でWindows Subsystem for Linuxファイルにアクセスする場合は、次のパスに移動する必要があります。%userprofile%\AppData\Local\Packages。または、WSLターミナルを使用して、ファイルエクスプローラーで同じフォルダーを開くことができます。その場合、explorer.exeコマンドを入力する必要があります。

WindowsでLinuxファイルを表示するにはどうすればよいですか?

Windows 11/10 PCでWindows Subsystem for Linuxファイルを表示するには、2つの方法があります。まず、WSLターミナルを使用できます。これを使用するには、explorer.exeコマンドを入力する必要があります。一方、ファイルエクスプローラーでC:\Users\user-name\AppData\Local\Packagesに移動できます。