kledgeb UbuntuやLinuxの最新情報を紹介

WSL その209 - Linuxのファイルシステムを物理ストレージからマウント可能に

Linuxのファイルシステムをマウント可能に

「Build 20211」で、物理ストレージ上にある「Linux」のファイルシステムをマウントできるようになりました。


  • Access Linux filesystems in Windows and WSL 2
  • Get started mounting a linux disk in WSL 2 (preview)

「Linux」のファイルシステムを「WSL 2」内にアタッチ及びマウントでき、「WSL 2」及び「Windows」からそのファイルシステムにアクセスできます。
簡潔に言えば「ext4」等でフォーマットされたファイルシステムを「WSL 2」や「Windows」からアクセスできます。

マウント操作は管理者権限が必要

ファイルシステムのマウント操作には、管理者権限が必要です。

サポートしているファイルシステム

「Linux kernel」でネイティブにサポートされているファイルシステムのみマウント可能です。
またデフォルトのファイルシステムは「ext4」です。
「ntfs-3g」のように別途ソフトウェアが必要なファイルシステムはマウントできません。

USBメモリーはサポートされていない

現時点ではUSBメモリー(USBフラッシュドライブ)はサポートされません。
USBメモリーを「WSL 2」にアタッチしようとしても失敗します。
その一方でUSBディスクはサポートされています。

ディスク全体のみアタッチ可能

現時点ではディスク全体のみ「WSL 2」にアタッチ可能です。
つまりパーティションのみを「WSL 2」にアタッチすることはできません。

マウントするファイルシステムの確認

まずマウントするファイルシステムを特定する必要があります。

1.ストレージの確認

ここでは例として「Ubuntu」をインストールしたストレージをマウントしてみます。
この「Ubuntu」は、「ext4」でフォーマットされたファイルシステム上にインストールされています。


「ディスクの管理」でストレージを見てみると、「Ubuntu」がインストールされたストレージ及びパーティションは、上記のように「ディスク 1 パーティション 2」となっており、2番目のストレージの2番目のパーティションであることが分かります。

2.デバイスIDの確認

マウントするストレージはデバイスIDで指定します。
デバイスIDは、以下のコマンドで確認できます。

wmic diskdrive list brief

以下のようにPCに接続されているストレージの情報が一覧で表示されます。

Caption                                    DeviceID            Model                                      Partitions  Size
VMware, VMware Virtual S SCSI Disk Device  \\.\PHYSICALDRIVE0  VMware, VMware Virtual S SCSI Disk Device  5           107372805120
VMware, VMware Virtual S SCSI Disk Device  \\.\PHYSICALDRIVE1  VMware, VMware Virtual S SCSI Disk Device  2           107372805120

「DeviceID」列にある情報がストレージのデバイスIDです。
デバイスIDは「\\.\PHYSICALDRIVE」で始まるIDです。
今回の例では「\\.\PHYSICALDRIVE1」がマウントするストレージのデバイスIDになります。

ファイルシステムをマウントする

デバイスIDとパーティション番号を組み合わせてマウントするファイルシステムを指定します。
ストレージがパーティションを持っていない場合、パーティションの指定は省略できます。

1.パーティションを指定してマウントする場合

今回の例のようにパーティションを指定してマウントする場合、パーティションテーブルの形式は「MBR」もしくは「GPT」のみがサポートされています。

2.マウントの実行

以下のいずれかのコマンドを実行し、ファイルシステムをマウントします。

wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>

wsl --mount <DiskPath> -p <PartitionNumber> -t <Filesystem>

「DiskPath」にストレージのデバイスIDを指定します。
「PartitionNumber」にパーティション番号を指定します。
「Filesystem」にマウントするファイルシステムの種類を指定します。
「Filesystem」を省略した場合は、「ext4」が指定されたものとして扱われます。

今回の例では

今回の例では「DiskPath」に「\\.\PHYSICALDRIVE1」を指定します。
「PartitionNumber」に「2」を指定します。
ファイルシステムは「ext4」なので「Filesystem」の指定は省略します。
つまり以下のコマンドを実行します。

wsl --mount \\.\PHYSICALDRIVE1 --partition 2

特に問題なければ以下のようにメッセージが出力されます。

ディスク \\.\PHYSICALDRIVE1 は、名前「PHYSICALDRIVE1p2」で正常にマウントされました。マウントポイントは、自動マウント設定が指すパス ( 既定: / mnt / wsl) の下にあります。
ディスクをアンマウントしてデタッチするには、「wsl --unmount \\.\PHYSICALDRIVE1」を実行します。

3.Linuxからアクセスしてみる

早速Linuxディストリビューションを起動し、マウントされたファイルシステムにアクセスしてみます。
今回の例でマウントポイントは、「/mnt/wsl/PHYSICALDRIVE1p2」になります。


上記のようにマウントされたファイルシステムにアクセスできます。

4.Windowsからアクセスしてみる

次に「Windows」の「エクスプローラー」からアクセスしてみます。


上記のように「WSL 2」経由で「エクスプローラー」からアクセスできます。

マウントオプションを指定する場合

今回は使用しませんでしたがマウントオプションを指定する場合、以下のように「-o」とマウントオプションを追記します。

wsl --mount <DiskPath> -o <MountOptions>

例えば以下のように記述します。

wsl --mount \\.\PHYSICALDRIVE1 --partition 2 -o "data=ordered"

補足

現時点では、ファイルシステム固有のマウントオプションのみサポートされています。
「ro」や「rw」、「noatime」といった一般的なオプションはサポートされていません。

アタッチとマウント

ファイルシステムのマウントには、ストレージのアタッチとファイルシステムのマウントの2段階の手続きがあります。
上記の例ではストレージのアタッチとマウントを同時に実行しています。
ここではアタッチとマウントの状況を「Ubuntu 20.04 LTS」を例に見てみます。

アタッチ

アタッチはPCにストレージを接続するのと同様です。
この逆がデタッチです。

カーネルリングバッファーにメッセージが出力される

アタッチ実行時にカーネルリングバッファーにメッセージが出力されます。
今回の例では以下のようなメッセージが出力されます。

[ 1497.163353] scsi 0:0:0:2: Direct-Access     VMware,  VMware Virtual S 1.0  PQ: 0 ANSI: 2
[ 1497.166323] sd 0:0:0:2: Attached scsi generic sg2 type 0
[ 1497.170825] sd 0:0:0:2: [sdc] 209715200 512-byte logical blocks: (107 GB/100 GiB)
[ 1497.173273] sd 0:0:0:2: [sdc] Write Protect is off
[ 1497.173303] sd 0:0:0:2: [sdc] Mode Sense: 0f 00 00 00
[ 1497.175983] sd 0:0:0:2: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1497.202527]  sdc: sdc1 sdc2
[ 1497.210796] sd 0:0:0:2: [sdc] Attached SCSI disk

アタッチしたストレージは「sdc」であることが分かります。

アタッチするとデバイスファイルが生成される

ストレージをアタッチすると、ブロックデバイスが生成されます。
つまり今回の例では、以下のデバイスファイルが生成されます。

  1. /dev/sdc
  2. /dev/sdc1
  3. /dev/sdc2

「/dev」を見ると以下のようになっており、デバイスファイルが生成されていることが分かります。

$ ls sdc*
sdc  sdc1  sdc2

デバイスファイルが存在するということは、Linuxの手続きに沿って自分でマウントすることも可能です。

利用可能なブロックデバイスを調べるには

Linuxディストリビューション上で以下のコマンドを実行すれば、利用可能なブロックデバイスの一覧を表示できます。

lsblk

今回の例では以下のように表示されます。

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  256G  0 disk
sdb      8:16   0  256G  0 disk /
sdc      8:32   0  100G  0 disk
├─sdc1   8:33   0  121M  0 part
└─sdc2   8:34   0 99.9G  0 part /mnt/wsl/PHYSICALDRIVE1p2

マウントせずアタッチのみ行う

マウントせずアタッチのみ行う場合は、「wsl --mount」に「--bare」オプションを追加します。

サポートされていないストレージ構造

サポートされていないストレージ構造を利用する場合、マウントはできませんがアタッチは可能です。
ファイルシステムをマウントせずにストレージのアタッチのみ行う場合は、「--bare」オプションを指定します。

wsl --mount <DiskPath> --bare

例えば以下のように記述します。

wsl --mount \\.\PHYSICALDRIVE1 --bare

ファイルシステムをアンマウントするには

マウントしたファイルシステムをアンマウント(デタッチ)する方法です。

ファイルシステムのアンマウント

マウントしたファイルシステムをアンマウントするには、以下のコマンドを実行します。

wsl --unmount <DiskPath>

「DiskPath」にアンマウントするデバイスIDを指定します。
今回の例では、以下のコマンドを実行します。

wsl --unmount \\.\PHYSICALDRIVE1

補足

Linuxディストリビューションがマウントしたファイルシステムを使用していると、ファイルシステムはアンマウントできません。

すべてのファイルシステムをアンマウントするには

すべてのファイルシステムをまとめてアンマウントするには、以下のコマンドを実行します。

wsl --unmount

すべてのファイルシステムを強制的にアンマウントするには

以下のコマンドを実行すれば、「WSL 2」の終了とマウントしたファイルシステムのアンマウントが可能です。

wsl --shutdown


WSL
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Linux その422 - GNOME Boxes の再構築と未来・Flatpak のみの提供やモダンな機能の実装など
    GNOME Boxes の再構築と未来 GNOME Boxes の再構築と未来が以下で紹介されています。
  • Ubuntu 26.04 その68 - Ubuntu 26.04.1 LTS がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.04.1 LTS リリース 2026年8月27日、Ubuntu 26.04.1 LTS がリリースされました。
  • Kubuntu その117 - Kubuntu 26.04 LTS にもっと手厚いサポートを・最高の信頼性を誇る KDE 搭載ディストリビューションを目指して
    最高の信頼性を誇る KDE 搭載ディストリビューションを目指して Kubuntu 26.04 LTS に手厚いサポートが導入されました。
  • Linux その421 - GNOME Shell のデザイン構想と長期的な見通し
    GNOME Shell のデザイン構想と長期的な見通し GNOME Shell のデザイン構想と長期的な見通しが、以下で紹介されています。
  • Linux その420 - KDE Plasma で実装予定の新機能や改善・UI レイアウトの調整やリモートデスクトップの改善など
    KDE Plasma で実装予定の新機能や改善 KDE Plasma で実装予定の新機能や改善を紹介します。
  • Windows その29 - Windows 向け Coreutils 登場・Coreutils のインストールやコマンドの一覧など
    Windows 向け Coreutils 登場 Windows 向け Coreutils が登場しました。
  • Linux その386 - Arch Linux の AUR パッケージで悪意あるコミットが続く・今度はソースコードの難読化か
    Arch Linux の AUR パッケージで悪意あるコミットが続く Arch Linux の AUR パッケージで悪意あるコミット(マルウェア)が続いています。
  • Ubuntu 18.04 その195 - PolicyKitにクラッシュや権限の昇格など複数の脆弱性・今すぐアップデートを
    PolicyKitの脆弱性 2018年7月16日、クラッシュや権限の昇格など複数の脆弱性に対応した「PolicyKit」がリリースされました。
記事のピックアップ
オプション