kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。

様々なボリュームがマウントが可能に

先日リリースされた「Build 16176」では「DrvFS」に多くの改善がなされており、「WSL」上の「Ubuntu」から「DrvFS」を通じ、リムーバブルディスクやネットワーク上のボリュームなど様々なボリュームをマウントできるようになりました。




NTFSの固定ディスクの自動マウント

今までは「Bash」を起動すると、WindowsのNTFSでフォーマットされた固定ディスクが自動的にマウントされ、「/mnt/c」などを通じてWindowsのボリュームにアクセスできるようになっていました。

しかしリムーバブルディスクやネットワーク上のボリュームなど、上記以外のボリュームはサポートされておらず、「Ubuntu」からマウントできませんでした。

様々なボリュームがマウント可能に

「Build 16176」では、FATやネットワーク上のボリューム、USBメモリーやCD/DVDドライブなど、Windowsから認識されている様々なボリュームをマウントできるようになりました。

手動でマウント

Windowsから認識されているすべてのボリュームが「Bash」起動時に自動的にマウントされるわけではありません。

ネットワーク上のボリュームなど固定ディスク以外のボリュームは、ユーザーが手動でマウントする必要があります。

しかしマウント作業は「Ubuntu」でのマウント作業とほとんど変わらないため、スクリプト等で複数のボリュームをまとめてマウントするなど、「Ubuntu」の作法を活用すると良いでしょう。

ドライブレターからボリュームをマウントするには

Windowsでは、固定ディスクやリムーバブルディスクなど各ボリュームにドライブレターを割り当てることができます。

いわゆるCドライブやDドライブのことです。

このドライブレターからボリュームをマウントし、「Ubuntu」から利用できるようにする方法です。

ここでは例として、Dドライブに割り当てられているCD/DVDドライブをマウントしてみます。

1.マウントポイントの作成

マウントポイント(マウント先のディレクトリー)を作成します。
どこに作成しても良いですが、「/mnt」ディレクトリー以下にサブフォルダーを作成するのが良いでしょう。

ここでは例として、「/mnt/d」ディレクトリーを作成します。
以下のコマンドを実行します。

sudo mkdir /mnt/d


ボリュームマウント後、このディレクトリーを経由してマウントしたボリューム内のファイルにアクセスすることになります。

2.ボリュームのマウント

Dドライブを「/mnt/d」にマウントします。
以下のコマンドを実行します。

sudo mount -t drvfs D: /mnt/d


3.Dドライブにアクセス

以上でマウントが完了し、「Ubuntu」からDドライブにアクセスできるようになります。
「Ubuntu」からDドライブにアクセスするには、マウントポイントである「/mnt/d」ディレクトリー以下にアクセスすれば良いです。


ボリュームをアンマウントするには

ボリュームをアンマウント(切断)するには、以下のコマンドを実行します。

sudo umount /mnt/d
 

必要であれば、後で上記の方法を利用し再度マウントできます。

リムーバブルディスク利用時の注意

CD/DVDドライブからメディアを排出する時や、特にUSBメモリーをPCから取り除く時は、事前にボリュームをアンマウントしてから作業を行いましょう。

ネットワーク上のボリュームをマウントするには

ネットワーク上のボリュームをマウントする方法です。
ネットワーク上のボリュームは、UNCパスを利用して指定します。

ここでは例として、ホスト名「UBUNTU-VB-1704」で共有されている「\shareFolder」をマウントしてみます。
この場合UNCパスは「\\UBUNTU-VB-1704\shareFolder」になります。

1.マウントポイントの作成

マウントポイント(マウント先のディレクトリー)を作成します。
ここでは例として、「/mnt/share」ディレクトリーを作成します。
以下のコマンドを実行します。

sudo mkdir /mnt/share


2.ボリュームのマウント

ネットワーク上のボリュームを「/mnt/share」にマウントします。
以下のコマンドを実行します。

sudo mount -t drvfs '\\UBUNTU-VB-1704\shareFolder' /mnt/share


\のエスケープについて

UNSパスをシングルクォーテーション(')で括らない場合、UNCパス内に含まれる「\(バックスラッシュ)」をエスケープして記述する必要があります。
上記の例では、UNCパスを以下のように記述する必要があります。

sudo mount -t drvfs \\\\UBUNTU-VB-1704\\shareFolder /mnt/share


3.ネットワーク上のボリュームにアクセス

以上でマウントが完了し、「Ubuntu」からネットワーク上のボリュームにアクセスできるようになります。
「Ubuntu」からネットワーク上のボリュームにアクセスするには、マウントポイントである「/mnt/share」ディレクトリー以下にアクセスすれば良いです。


ネットワークの認証について

ネットワーク上のボリュームに認証が必要な場合、「WSL」から認証方法を指定することができません。


事前にエクスプローラーからそのボリュームにアクセスし認証を行うか、「Windows Credential Manager」を使用するか、「net use」コマンドを利用して認証情報を設定してください。

「net use」コマンドはWindowsのソフトウェアですが、「Ubuntu」から直接呼び出すこともできます。

net.exe use ...

以下のコマンドを実行すればヘルプが表示されます。

net.exe help use


ドライブレターがなくフォルダーにマウントされているボリュームをマウントするには

ドライブレターが割り振られていないボリューム、かつ、空のNTFSフォルダーにマウントされているボリュームをマウントする方法です。

ここでは例として、「C:\mount」フォルダーにマウントされているボリュームをマウントします。

1.マウントポイントの作成

マウントポイント(マウント先のディレクトリー)を作成します。
ここでは例として、「/mnt/volume」ディレクトリーを作成します。
以下のコマンドを実行します。

sudo mkdir /mnt/volume


2.ボリュームのマウント

ネットワーク上のボリュームを「/mnt/volume」にマウントします。
以下のコマンドを実行します。

sudo mount -t drvfs 'C:\mount' /mnt/volume


\のエスケープについて

パスをシングルクォーテーション(')で括らない場合、パス内に含まれる「\(バックスラッシュ)」をエスケープして記述する必要があります。
詳細は、上記のUNCパスの例を参照してください。

3.ボリュームにアクセス

以上でマウントが完了し、「Ubuntu」からボリュームにアクセスできるようになります。
「Ubuntu」からボリュームにアクセスするには、マウントポイントである「/mnt/volume」ディレクトリー以下にアクセスすれば良いです。


ファイルシステムによる動作の違い

「DrvFS」は、マウントしたボリュームのファイルシステムの種類により、少し異なる振る舞いをします。

例えばマウントしたボリュームのファイルシステムが「FAT」だった場合、ファイル名の大文字・小文字の区別は行いませんし、ハードリンクやシンボリックリンクをサポートしません。

ネットワークファイルシステム

ネットワークファイルシステムでは、「DrvFS」はファイルに対し正しいLinuxパーミッションを設定しません。

「DrvFS」はすべてのファイルのパーミッションはフルアクセス(0777)であると返すため、実際にそのファイルにアクセス可能かどうか調べるには、そのファイルを実際に開くなどしてパーミッションの有無を確認するしかありません。

またネットワークファイルシステムでは、ファイル名の大文字・小文字の区別は行いませんし、シンボリックリンクをサポートしません。


関連コンテンツ
同一カテゴリーの記事
コメント
オプション