このページの本文へ

前へ 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,280
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
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
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743
5
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
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GW
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GW
¥980
7
KIOXIA(キオクシア)【日本製】SDカード 64GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA064G
KIOXIA(キオクシア)【日本製】SDカード 64GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA064G
¥1,180
8
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥652
9
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,359
10
バッファロー マウス 無線 ワイヤレス 5ボタン 【戻る/進むボタン搭載】 小型 軽量 節電モデル 最大584日使用可能 BlueLED ブラック BSMBW315BK
バッファロー マウス 無線 ワイヤレス 5ボタン 【戻る/進むボタン搭載】 小型 軽量 節電モデル 最大584日使用可能 BlueLED ブラック BSMBW315BK
¥1,040

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

デジタル用語辞典

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