このページの本文へ

前へ 1 2 次へ

Windows Info 第161回

Win32側からWindows Subsystem for LinuxのVolFsへのアクセスが可能に

2019年02月24日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

Windows側から、WSLのファイルにアクセスする仕組みが追加

 4月に配布予定の次期Windows 10機能アップデートである「19H1」(Windows 10 Ver.1903)には、Windows Subsystem for Linux(WSL)に新機能が搭載される予定だ。

今年4月から配布予定の19H1では、Win32側からWSLのVolFsをアクセスする機能が搭載される予定だ

 現在配布中のプレビュー版ビルド18342にその機能が搭載されている。簡単に言えば、Win32側からWSLのファイルシステム(VolFs)をアクセスする機能だ。ただし、LinuxとWindowsではファイルのアクセス管理方法がちがうため、ネットワーク共有の仕組みを使う。

 形式としては、Windows Explorerのネットワークの下に仮想的なwsl$というホストが見え、その下にVolFsが見えるようになる。この新機能には名前がないため、ここでは仮にホスト名をすべて大文字にした「WSL$」と呼ぶことにする。

 まずは、簡単にWSLのファイルシステムについて復習しておく。WSLにはVolFsとDrvFsの2つのファイルシステムがある。VolFsは、Linux側のストレージをNTFSの上に仮想的に実現するもの。Linux側からは、VFS(仮想ファイルシステム)を経由した通常のファイルシステムのように見える。しかし実際には、ファイルはNTFSの上にあり、ユーザーフォルダーのディストリビューションパッケージの部分に記録されている。

具体的には、

%LOCALAPPDATA%\Packages\[WSLディストリビューションフォルダ-]\LocalState\rootfs

にある。しかし、LinuxとWindowsではファイルアクセス管理が異なるため、Win32側からのVolFs実ファイルへのアクセスは推奨されず、アクセスすれば結果は保証されない。最悪の場合では、ファイルシステムを壊してしまう可能性がある。機能的にファイルへのアクセスは禁止されているわけではないが、「触るな」というのが実際のところだろう。

 このため、これまではWin32側からWSLのVolFs内にあるファイルをアクセスする方法は提供されてこなかった。しかし、WSL側からはWin32側のファイルにアクセスできる。これを可能にするのがDrvFsというものだ。

 WSLからは、/mnt/cディレクトリ以下にCドライブが見えるようになっている。実質上、このDrvFs側にファイルを置くことで、WSLとWin32の間で共同作業をすることはできた。ただし、WSL側とwin32側では、同じファイルでもパスが違うため、ファイルパスを渡す場合には変換の必要があった。

 今回実装されたWSL$は、Windowsのリダイレクタドライバーを利用し、仮想的なホストwsl$を見せる。実際、WSL側では、サーバーが動作し、プロセス間通信(AF_UNIX)を使って、Win32側のリダイレクタードライバーとWSL側のサーバー(9Pというプロトコルを使うため仮に9Pサーバーと呼ぶ)が通信し、VolFs側のファイルをアクセスさせる。

 なお、WSL側で9Pサーバーが動作するため、wsl$ホストは、WSLが動作しているときにしか見えない。Win32とWSLとの間のファイルアクセスとそのときに使うファイルシステムなどを整理したのが、以下の図だ。これまで、WSL$の部分が欠けていたわけだ。

WSLには、Linuxのファイルシステムに相当するVolFsとWin32側をアクセスするためのDrvFsがあったが、Win32側からはWSLのファイルシステムにアクセスする手段がなかった。これを可能にするのがWSL$である

 今回のビルド18342では、WSLを起動し、エクスプローラーのネットワークを開くと、wsl$というホストが見える。その下にディストリビューション名が並び、これを開くと、個々のWSL内で動作しているディストリビューションのファイルシステムが見える。

 注意したいのは、WSLが起動していないと、wsl$自体が見えなくなることだ。なお、来年春に配布予定の「20H1」(Windows Ver.2003)のプレビュー版ビルド18836にも同様の機能があるが、こちらは、エクスプローラーに「Linux」アイコンが新設されており、その下にディストリビューションへのリンクが見える。

すでにプレビューが開始された20H1(Windows 10 Ver.2003)では同様の機能を搭載するも、エクスプローラーのツリー領域「Linux」アイコンが表示される

 wsl$ホスト以下のディストリビューションごとのディレクトリーを見ると、VolFsによるファイルシステムだけでなく、/procなどの疑似ファイルシステムも見えている。

WSL$では、VolFsのみでなく、Linuxの/procや/sysなどの疑似ファイルシステムを含んだツリーにアクセスが可能だ

 マウントされているファイルシステムを見るとわかるが、Linuxの/procや/sysは通常のファイルシステムではなく、カーネルの内部データを見せるための擬似的なファイルシステムになっている。それぞれproc、sysfsという特殊なファイルシステムになっている。

/procや/sysは、ファイルシステムのように見えるが、実際には、カーネル内の情報を階層ディレクトリ形式で表示する擬似的なファイルシステムである

 なお、WSL$は、Windows側から見れば、あくまでもファイル共有である。たとえば、WSL$へのアクセスは、

\\wsl$\Ubuntu\home

などのようにUNC(Universal Naming Convention)を使ってできる。

 また、cmd.exeは、UNC(//wsl$/……といったネットワークパス)をファイルパスのように扱うことはできるが、cdコマンドを実行することはできない。

 本来、cmd.exeからローカルフォルダーのように扱うには、ドライブ文字を割り当てる必要があるのだが、現時点では、WSL$にドライブ文字を割り当てることはできないようだ。なお、powershellは、UNCをカレントディレクトリに設定することが可能である。また、WSL$経由でのアクセスは可能だが、依然としてVolFsを直接操作することは禁止されたままだ。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,413
2
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥7,313
3
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,899
4
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
CIO フラットスパイラルケーブル CtoC (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps 形状記憶 iPhone 17 / 16 / 15 Macbook Pro/Air/iPad用/ノートパソコン Galaxy Google Pixel Android (ライトブラック, 1.5m)
¥2,290
5
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
6
Anker Zolo USB-C & USB-C ケーブル (240W, 高耐久ナイロン) 1.8m ブラック iPhone 17 / 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応
Anker Zolo USB-C & USB-C ケーブル (240W, 高耐久ナイロン) 1.8m ブラック iPhone 17 / 16 / 15 Galaxy iPad Pro MacBook Pro/Air 各種対応
¥1,590
7
Anker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-C ケーブル) (USBタップ 電源タップ) 【PSE技術基準適合】MacBook iPad iPhone Galaxy Android ブラック
Anker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-C ケーブル) (USBタップ 電源タップ) 【PSE技術基準適合】MacBook iPad iPhone Galaxy Android ブラック
¥9,990
8
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
9
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
¥2,480
10
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
ソニー ゲーミングイヤホン INZONE Buds:WF-G700N Fnatic監修/ワイヤレス / 低遅延2.4GHzワイヤレス接続 USBType-Cトランシーバー同梱/LE Audio対応/アクティブノイズキャンセリング/立体音響 / 最大約24時間バッテリー / 急速充電/マイク付き / PS5 スマホ PC Switch グラスパープル
¥20,800

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン