このページの本文へ

前へ 1 2 次へ

Windows Info 第193回

Windows Subsystem for Linux 2のNTFSソフトリンク対応

2019年10月06日 10時00分更新

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

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

 現在プレビューが進められている20H1(Windows 10 Ver.2003)に含まれるWSL2(Windows Subsystem for Linux 2)は、仮想マシンベースでLinuxカーネルを動かすものだ。

Windows 10 20H1プレビューに含まれるWSL2。今回はNTFSのソフトリンクに対応した

 Windows 10に搭載されているWSL(以下WSL1と略す)は、Linuxカーネルがなく、Linuxのカーネルファンクションコールは、すべてWindowsカーネル(NTカーネル)のファンクションコールに変換されいた。このため、Windows側の機能はほとんど問題なく利用できた。

 これに対して、WSL2では、仮想マシン内部でLinuxカーネルがそのまま動作している「ほぼLinux」であるため、Windowsの持つ機能にアクセスするためには、さまざまな対応が必要になる。こうした問題の1つがNTFS上のソフトリンク(シンボリックリンクやジャンクション)への対応である。Windows Insider ProgramのPreview Build 18980より前では、WSL2は、NTFSのソフトリンクを解釈することができなかった。このため、NTFS側でlsコマンドなどを実行すると、ソフトリンクの部分ではエラーが発生していた。

ハードリンクとソフトリンクの違い

 多くのOSではファイルシステム上に「リンク」を作成することができる。リンクとは、他のファイルやディレクトリを1つのものとして結びつける機能である。こうした記憶装置上のリンクには、「ハードリンク」「ソフトリンク」の2種類がある。

 ハードリンクとは、簡単に言えば、複数のファイル名を持つファイルだ。複数のファイル名が記憶装置上の同じ領域を指し示す。一般にファイルシステムは、人間が理解できるファイル名を管理している部分(これをディレクトリという)と、ファイルなどが保持するデータを格納する記憶装置上の一連の領域を管理する部分から構成されている。

 ソフトウェアでファイルを処理するだけなら、必ずしもファイル名がついている必要はなく、単にユニークな数値などが割り振ってあればよい。しかし、これでは人間がファイルを管理できない。そのために作られたのがディレクトリやファイル名である。

 ハードリンクは、データを記憶している記憶装置上の領域に対して、複数のファイル名を付ける。また、こうしたハードリンクされたファイルがいくつあるのかも管理している。このとき、何かオリジナルのファイルがあって、それ以外はリンクといった印象を持つかもしれないが、実際には、ハードリンクされたファイルの1つ1つには区別がなく、一回ハードリンクしてしまうと、ファイルとしては同一の情報や属性を持つことになるため、どちらが先にあったのかという情報はなくなって、区別ができなくなる。

 これに対して、ソフトリンクは、リンク元とリンク先があり、リンク元はリンク先を示すパスなどの情報しか持っていない。しかし、OSは、ソフトリンクをリンク先のファイルとして扱うため、処理上は区別がない。ただし、ファイルの削除やバックアップなど、ソフトリンクを区別して扱うことは可能だ。また、ソフトリンクは必ずしもリンク先が存在している必要はなく、たとえば、ユーザーが削除したなどで、リンク先がなくなってしまう可能性もある。このときリンク元はそのまま放置される。

 ハードリンクは、記憶装置上の領域を示す必要があるため、同一の記憶装置内しかリンクすることができない。この欠点を補うためにあとからソフトリンクが開発された。一般にソフトリンクは、リンク先が存在していなくてもよい。もちろん技術的には、リンク先を監視して存在を追ったり、リンク先が消えたらソフトリンクを消すことも可能だが、こうしたコストをかけても、その恩恵はわずかであり、現在ではリンク先がなくてもかまわない(もちろん、アクセスしようとするとエラーになるが)という実装が一般的だ。

Windowsにおけるソフトリンク

 Windowsには、シンボリックリンク(区別のため以後NTFSシンボリックリンクと呼ぶ)とジャンクションの2つのソフトリンクがある。

 また、ショートカットと呼ばれるソフトリンクによく似たものもある。ショートカットは、エクスプローラーの機能で、実体はリンク先などを記録した「.lnk」という拡張子を持つファイルだ。FAT系ファイルシステムが主流だったWindows 95のときにソフトリンクのように使えるものとして導入され、いまでもスタートメニューなどに利用されている。エクスプローラーの管理するオブジェクトなので、たとえば、コマンドラインからは普通のファイルに見えてしまう。

 Windowsのソフトリンクは、当初ジャンクションしかなかった。しかし、リンク先がフォルダーに限られる点やネットワークパス(UNC)をリンク先にできないといった問題があった。NTFSのハードリンクが同一記憶装置内に限られる点をカバーするためのものだったが、機能が少し不足していた。このため、Windows Vistaで搭載されたのがNTFSシンボリックリンクだ。シンボリックリンクは、ファイルだけでなくディレクトリー(フォルダー)もリンク先にできるなど、ジャンクションよりも融通性が高い、反面、フォルダーのNTFSシンボリックリンクの作成には管理者権限が必要となる。

 Windowsのシンボリックリンクは、いまのところファイルシステム依存である。たとえば、FAT32などのファイルシステムの上ではシンボリックリンクを作ることができない。

Linuxのソフトリンク

 Linuxのソフトリンクは、シンボリックリンクしかない(以後Linuxシンボリックリンクと表記する)。ファイルでもディレクトリーでもリンクすることができる。ハードリンクもあり、こちらはやはり同一記憶装置内のリンクに限定される。

 作成は、lnコマンドで行なう。シンボリックリンクを作成するには「ln -s」と-sオプションを付ける。なお、lnコマンドとWindowsのmklinkコマンドでは、リンク元とリンク先の指定が逆になっているため、両方を使う場合には注意すること。Linuxのシンボリックリンクは、仮想ファイルシステム(VFS)の上で管理され、各ファイルシステムが具体的に実装する。

 古い実装では、リンク先のパスを記憶する小さなファイルが使われたこともある(Windowsのショートカットと同じ方法)。しかし、lnなどのアプリケーションのレベルでは、ファイルシステムを意識することなくシンボリックリンクが作成できる。もちろん、Linuxのシンボリックリンクをサポートしていないファイルシステムもないわけではない。しかし、少なくともLinuxやUnix用に作られたファイルシステムではシンボリックリンクがサポートされていて、すべてlnコマンドで対応が可能だ。

前へ 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マガジン