WindowsでUbuntuBashファイル(およびBashでWindowsシステムドライブ)にアクセスする方法

ストアからインストールするLinux環境(UbuntuやopenSUSEなど)は、ファイルを隠しフォルダーに保存します。このフォルダにアクセスして、ファイルをバックアップおよび表示できます。BashシェルからWindowsファイルにアクセスすることもできます。

更新:Windows 10の2019年5月の更新以降、WindowsアプリケーションからLinuxファイルにアクセスするための公式で安全な方法があります。

WindowsツールでLinuxファイルを変更しないでください

Microsoftは、Windowsソフトウェアを使用してLinuxファイルを追加または変更しないように強く警告しています。これにより、メタデータの問題やファイルの破損が発生する可能性があり、Linuxディストリビューションをアンインストールして再インストールして修正する必要がある場合があります。ただし、Windowsソフトウェアを使用してLinuxファイルを表示およびバックアップすることはできますが、それによって問題が発生することはありません。

つまり、LinuxフォルダーをWindows内からの読み取り専用であるかのように扱います。グラフィカルアプリやコマンドラインツールなどのWindowsツールを使用して変更しないでください。また、Windowsツールを使用してこれらのフォルダー内に新しいファイルを作成しないでください。

Linux環境とWindows環境の両方のファイルを操作する場合は、Windowsファイルシステムでファイルを作成する必要があります。たとえば、WindowsのC:\ projectにフォルダがある場合、Linux環境の/ mnt / c / projectからもアクセスできます。これはWindowsファイルシステムに保存され、/ mnt / cでアクセスされるため、WindowsまたはLinuxツールを使用してファイルを変更しても安全です。

WindowsがLinuxファイルを保存する場所

Linuxファイルシステムは、Microsoftが改ざんすることを望まないため、隠しフォルダに保存されています。ただし、一部のファイルを表示またはバックアップする必要がある場合は、隠しフォルダーに保存されていることがわかります。アクセスするには、ファイルエクスプローラーを開き、次のアドレスをアドレスバーに接続します。

%userprofile%\ AppData \ Local \ Packages

(これによりC:\Users\NAME\AppData\Local\Packages、に移動します。必要に応じて、ファイルエクスプローラーで非表示のフォルダーを表示し、ここに手動で移動することもできます。

このフォルダーで、ファイルを表示するLinuxディストリビューションのフォルダーをダブルクリックします。

  • Ubuntu:CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
  • openSUSE Leap 42:46932SUSE.openSUSELeap42.2_022rs5jcyhyac
  • SUSE Linux Enterprise Server 12:46932SUSE.SUSELinuxEnterpriseServer12SP2_022rs5jcyhyac

これらのフォルダの名前は、将来少し変更される可能性があります。Linuxディストリビューションにちなんで名付けられたフォルダーを探すだけです。

Linuxディストリビューションのフォルダーで、「LocalState」フォルダーをダブルクリックしてから、「rootfs」フォルダーをダブルクリックしてファイルを表示します。

つまり、ファイルは次の場所に保存されます。

C:\ Users \ NAME \ AppData \ Local \ Packages \ DISTRO_FOLDER \ LocalState \ rootfs

:古いバージョンのWindows 10では、これらのファイルはC:\ Users \ Name \ AppData \ Local \ lxssに保存されていました。これは、Fall CreatorsUpdateから変更されました。

ホームフォルダに保存されているファイルを表示するには、「ホーム」フォルダをダブルクリックしてから、UNIXユーザー名をダブルクリックします。

これらのファイルを変更したり、ファイルエクスプローラーからこれらのフォルダーにファイルを追加したりしないでください。

LinuxでWindowsシステムドライブが表示される場所

Linux用のWindowsサブシステムは、完全なWindowsシステムドライブを利用できるようにするため、両方の環境で同じファイルを操作できます。ただし、Bash環境はC:\ドライブにユーザーをダンプするだけではありません。代わりに、Linux環境のファイルシステム内のUNIXアカウントのホームディレクトリに移動します。

Windowsシステムドライブと他の接続されたドライブは、そこの/ mnt /ディレクトリに公開されており、他のドライブは従来、Linuxディレクトリ構造で利用可能になっています。具体的には、C:ドライブはBash環境の次の場所にあります。

/ mnt / c

cdコマンドでこのディレクトリに移動するには、次のように入力します。

cd / mnt / c

D:ドライブがある場合は、/ mnt / dなどにあります。

たとえば、C:\ Users \ Chris \ Downloads \ File.txtに保存されているファイルにアクセスするには、Bash環境でパス/mnt/c/Users/Chris/Downloads/File.txtを使用します。はい、大文字と小文字が区別されるため、「ダウンロード」ではなく「ダウンロード」が必要です。

関連:Linux用のWindowsサブシステムにリムーバブルドライブとネットワークの場所をマウントする方法

外付けドライブとネットワークの場所をマウントして、Linux環境内からより多くのファイルにアクセスすることもできます。

Windowsシステムファイルにアクセスする場合、Bashシェル環境には起動時のアクセス許可があることに注意してください。ショートカットから通常どおりに起動した場合は、Windowsユーザーアカウントと同じファイルアクセス許可が与えられます。

たとえば、ユーザーアカウントにアクセス権がないシステムフォルダーにアクセスする場合は、Bashシェルのショートカットを右クリックし、[管理者として実行]を選択して、Windows管理者権限でBashシェルを起動する必要があります。 。

これは、管理者専用ファイルへの書き込みアクセス権またはシステムファイルへの書き込みアクセス権が必要な場合に管理者として起動する必要があるコマンドプロンプトと同じように機能します。sudoBash環境で使用することはできません。