にわか管理者のためのLinux運用入門
前回は、Windows 10 Insider PreviewでUbuntu on Windowsを有効にする方法を採り上げた。それを踏まえ、今回はセットアップしたUbuntu on Windowsの構造について迫っていこう。
1. Ubuntu on Windowsのファイルシステム
まずbashを起動してプロンプトを立ち上げたら、次のようにmount(8)コマンドを引数を指定せずに実行し、どのようなファイルシステム構造になっているのかを調べてみてほしい。
![]() |
Ubuntu on Windowsのファイルシステムマウント状況 |
これを見るに「/」、「/dev」、「/dev/pts」、「/proc」、「/sys」が、マウントポイントとして使われているようだ。それぞれ、次のようなファイルシステムになっている。
- /rootfs
- /dev tmpfs
- /dev/pts devpts
- /proc procfs
- /sys sysfs
どうも、Ubuntuの成果物がそのまま展開されているように見える。
bashを起動した直後にカレントディレクトリを調べてみると、カレントディレクトリが/root/で、ファイルのパーミッションなどは「root:root」になっている。Ubuntu on Windowsでは、スーパーユーザー「root」として振る舞う設定になっているようだ。
![]() |
Ubuntu on Windowsでは基本的にrootとして振る舞う |
Ubuntu on Windowsでは基本的にrootとして振る舞うが、Windows側に及ぼすことができる内容には限りがあるような仕組みにしてあるのだろう。
2. Windowsファイルシステムは、/mnt/c/へ
調べていくと、Windowsのファイルシステムは/mnt/c/以下に展開されていることがわかる。cdコマンドを使って/mnt/c/以下に移動し、lsコマンドで中身を見てみると、Windowsでよく見かけるファイルやフォルダを確認できるはずだ。
![]() |
Windowsでよく見かけるファイルやフォルダを確認できる |
推測だが、ファイルシステムのパスを扱うシステムコールで、正規化したパスの上位が/mnt/cだったらWindowsのファイルシステムを見に行き、それ以外だった場合はUbuntu on Windowsのファイルシステムのパスを見に行くようにする処理を入れてあるのだと考えられる。そうすることによって、UbuntuとWindowsのファイルシステムの双方にアクセスすることを実現させているのだろう。
3. Ubuntuの中身は、C:\Users\ユーザ\AppData\Local\lxss\rootfs\に展開されている
Ubuntu on Windows(Windows Subsystem for Linux)がFreeBSD Jailと同じ仕組みなら、Ubuntu on Windowsで見えているUbuntuのファイルシステムは、実際にはWindowsのファイルシステムの上に展開されているはずだ。Ubuntu on Windowsは、ユーザーごとにインストールしているので、C:\Users\《ユーザー名》\の下のどこかにまるごと展開されているのだと予測できる。
ということで、find(1)コマンドで検索してみよう。
![]() |
find(1)コマンドでUbuntu on Windowsがインストールされている場所を探す |
どうやら、「C:\Users\《ユーザー名》\AppData\Local\lxss\rootfs\」にUbuntu本体が展開されているようだ。
![]() |
C:\Users\《ユーザー名》\AppData\Local\lxss\rootfs\にUbuntu on Windowsの中身が展開されている |
Windows側のファイルシステム上に展開されているので、ファイルエクスプローラからも中身を確認することができる。
![]() |
Windowsファイルシステム上に展開されたUbuntu on Windowsの中身 |
これを見るに、Ubuntuの中身をWindowsファイルシステムに展開し、Ubuntu on WindowsからはC:\Users\《ユーザー名》\AppData\Local\lxss\rootfs\が/として見えるように、システムコールレベルで差し替えてリソースを隔離していると思われる。つまり、システムコールレベルで正規化されたパスの頭が/mnt/cから始まっていればC:\を見に行くし、それ以外の場合にはC:\Users\《ユーザー名》\AppData\Local\lxss\rootfs\以下を見に行くという仕組みだ。
そのほか、プロセスのようなリソースも分離しているように見える。やはり、仕組みとしてはFreeBSD JailとLinuxバイナリ互換機能がやっていることとほとんど同じということで間違いないだろう。
4. Windowsファイルのパーミッションは変更できない
ちなみに、Ubuntu on Windowsの中からどの程度ホスト側に影響を与えられるのか、試しにUbuntu on WindowsからWindows側のファイルシステムのファイルを調べてみよう。
![]() |
Ubuntu on WindowsからWindows側のファイルシステムのファイルをチェック |
同じファイル(hoge.txt)は、ファイルエクスプローラ側からも確認できる。
![]() |
同じファイル(hoge.txt)は、ファイルエクスプローラ側からも確認できる |
ここで、このファイルのパーミッションを変更しようとchmod(1)コマンドを実行しても、まったく反映されない。ファイルのコピーや削除は可能だが、Ubuntu on Windows側からWindows側のファイルシステムのパーミッションは変更できないのだ。もしかしたら将来的には変更できるようになるかもしれないが、今のところパーミッションに関してはWindowsとUbuntu on Windowsで相互利用できるようにはなっていないようである。
5. 今回のおさらい
今回のおさらいは、次のとおりだ。
- Ubuntu on Windowsの中身はC:\Users\《ユーザー名》\AppData\Local\lxss\rootfs\に展開されている
- Ubuntu on WindowsからはWindowsファイルシステムは、/mnt/c/以下に見える
- Ubuntu on WindowsからWindowsファイルシステム上にファイルを作ったり、削除したりできる
- Ubuntu on WindowsからWindowsファイルシステム上のファイルのパーミッションは変更できない
まだ推測の域を出ない部分も多いが、Windowsファイルシステム側のファイルをUbuntu on Windowsからfind(1)コマンドで検索できるなど、便利な側面もいくつか見えてきている。これは、思いのほかいろいろ便利に利用できそうだ。
※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。
連載目次
もっと知りたい!こちらもオススメ

コンテナ活用を定着させる! レッドハット、2017年度事業方針を発表
レッドハットは4月20日、2017年度(2016年3月~2017年2月)の事業方針説明会を開催した。説明会には昨年11月に代表取締役社長に就任した望月 弘一氏が登壇。2017年度を「2025年に向けたビジネス基盤の基礎を築く年」と位置づけて重点施策を発表した。
関連リンク
ダウンロードBOXに入れる
記事をダウンロードBOXに追加します。よろしいですか?
ブックマーク
記事をブックマークに追加します。よろしいですか?
-
[2021/01/15 08:00] サーバ/ストレージ
-
[2021/01/14 09:00] 開発ソフトウェア
-
$side_seminar_count = $i+1; ?>
-
1/26(火)15:00~17:00
予期せぬ攻撃にも動じないために「セキュリティレジリエンス向上の具体策」
$side_seminar_count = $i+1; ?>
-
1/27(水)15:00~16:50
Kubernetes時代のインフラ構築指針~オンプレミス回帰のその先へ~
$side_seminar_count = $i+1; ?>
-
2021年1月27日(水)14:00~15:00
DXの実現につながるビジネスモデル「サブスクリプション」 実現・運用・収益化のコツ
$side_seminar_count = $i+1; ?>
-
2021年1月27日(水) 13:30~15:30
Palo Alto Networks Forum vol.5 Virtual
$side_seminar_count = $i+1; ?>
-
2021年1月28日(木)11:00~17:30
建設業界のDX促進の方法論 ~安全・安心を維持し事業改善を~
今注目のIT用語の意味を事典でチェック!