みなさん、こんにちは。
Linux環境で使っていたHDDをWindowsで利用したいと思ったことはありませんか?
通常、WindowsではLinuxのファイルシステム(ext4など)を直接認識できないため、専用のツールをインストールする必要があります。しかし、Windows Subsystem for Linux (WSL) があれば、そんな手間は不要です!
今回は、WSLを使ってLinuxで使っていた外付けHDDにアクセスする方法を解説します。もう専用ツールは必要ありません!
なぜWindowsはLinux HDDを認識できないのか?
WindowsとLinuxでは、ファイルシステムの形式が異なります。Windowsは主にNTFSやFAT32を使用しますが、Linuxはext4やXFS、Btrfsといった独自のファイルシステムを使用しています。そのため、WindowsはLinuxでフォーマットされたHDDをそのままでは読み込むことができないのです。
「Linux用のHDDを読み込みたい場面なんてない」と思われる方もいるかもしれませんが、市販のNAS機器はLinuxで動作している場合が多く、NASから取り出したHDDをWindowsで読み込みたいという場面はそれなりに発生します。
これまで、この問題を解決するにはExt2Fsdのようなサードパーティ製のツールをインストールするのが一般的でした。しかし、WSLが普及した現在、より手軽な方法でこの問題に対処できるようになりました。
WSLでLinux HDDをマウントする手順
1. 外付けHDDをWindowsに接続する
まず、Linuxで使っていたHDDを通常通りWindowsパソコンにUSB外付けHDDとして接続します。
重要:
「フォーマットしますか?」と聞かれても、絶対にキャンセルしてください。ここでフォーマットしてしまうと、HDD内のデータがすべて消えてしまいます。
2. Windows側でデバイスIDを調べる
次に、PowerShellを使って接続したHDDのデバイスIDを特定します。
管理者権限は不要ですので、通常のPowerShellを起動し、以下のコマンドを実行してください。
wmic diskdrive list brief
実行すると、以下のような形式でディスクの情報が表示されます。
Caption DeviceID Model Partitions Size
MAKER MODEL_NAME \\.\PHYSICALDRIVE1 MODEL_NAME 1 512105932800
ここで必要なのは、\\.\PHYSICALDRIVE1 のようなDeviceIDです。ご自身の環境に合わせて、目的のHDDのDeviceIDをメモしておきましょう。
2025/11/27 追記
wmicコマンドはWindows 11 25H2 にアップグレードすると、削除されてしまうようです。
Windows 管理インストルメンテーション コマンド ライン (WMIC) の Windows からの削除(Microsoft サポート)
wmicコマンドの代替としては以下の PowerShell コマンドが利用可能とのことです。
Get-CimInstance -ClassName Win32_DiskDrive | Select-Object Caption, DeviceID, Model, Partitions, Size
実行すると、以下のような形式でディスク情報が表示されます。
Caption : MAKER MODEL_NAME
DeviceID : \\.\PHYSICALDRIVE1
Model : MODEL_NAME
Partitions : 1
Size : 512105932800
3. WSLでHDDをマウントする
DeviceIDが特定できたら、いよいよWSLでHDDをマウントします。ここからの操作は管理者権限が必要です。必ず「管理者として実行」でPowerShellを起動してください。
直接マウントする場合(推奨)
ほとんどの場合、以下のコマンドで直接マウントできます。ファイルシステムの種類を指定しない場合は、ext4として扱われます。
wsl --mount <デバイス名> --partition <パーティション番号> --type <ファイルシステムの種類>
<デバイス名>: 先ほど調べたDeviceID(例:\\.\PHYSICALDRIVE1)を指定します。<パーティション番号>: マウントしたいパーティションの番号を指定します。ディスク全体をアタッチしたい場合は指定不要です。<ファイルシステムの種類>: HDDのファイルシステムを指定します(例:ext4,xfs,btrfsなど)。WSLがサポートしているファイルシステムは、WSL内でcat /proc/filesystemsを実行することで確認できます。
例: \\.\PHYSICALDRIVE1の1番目のパーティション(ext4形式)をマウントする場合
wsl --mount \\.\PHYSICALDRIVE1 --partition 1 --type ext4
マウントが成功すると、WSLの環境内で自動的に/mnt/wsl/<ディスク名>/にアクセスできるようになります。
補足:vfat(WindowsでいうFAT32)もWSLでマウント可能ですが、Windows側で既にマウントされているドライブをWSLでマウントすることはできません。Windows側でマウントされているドライブは、WSLの/mnt/cや/mnt/dのように自動的にマウントされています。
暗号化されたパーティションや特殊なケースの場合
直接マウントできない暗号化されたパーティションや、より低レベルでアクセスしたい場合は、まずブロックデバイスとしてマウントし、WSL内で改めてマウントします。
Windowsでマウントされている場合はアンマウントする
もしそのHDDがWindowsで何らかの形でマウントされている場合は、先にWindows側でアンマウントしておいてください。
ブロックデバイスとしてマウントする
管理者権限つきのPowerShellで以下のコマンドを実行します。
wsl --mount <デバイス名> --bare
<デバイス名>には、もちろん先ほど調べたDeviceIDを指定します。
WSL内で認識されているか確認
WSLを起動し、以下のコマンドでHDDが認識されているか確認します。
sudo fdisk -l
/dev/sdXのような形で認識されているはずです(Xはa, b, cなどのアルファベット)。パーティションが作成されていれば、/dev/sdX1や/dev/sdX2のように表示されます。
WSL内でマウントする
例えば、Veracryptで暗号化された/dev/sdX1パーティションがあり、それがext4でフォーマットされている場合を想定します。事前にWSL内にVeracryptがインストールされている必要がありますが、以下のコマンドでマウントできます。
veracrypt /dev/sdX1 /mnt/yourmountpoint # /mnt/yourmountpointは任意のディレクトリ
これで、WSL内で目的のデータにアクセスできるようになります。
使い終わったら忘れずにアンマウント!
HDDへのアクセスが終わったら、必ずアンマウントしてください。アンマウントせずにWindowsをシャットダウンしたり、いきなりケーブルを抜いたりすると、ファイルシステムが破損する恐れがあります。
直接マウントしていた場合
WSLでファイル操作を行っていないことを確認した上で、管理者権限つきのPowerShellで以下のコマンドを実行します。
wsl --unmount <デバイス名>
ブロックデバイスとしてマウントし、WSL内でさらにマウントしていた場合
WSL内でアンマウントする
例えばVeracryptでマウントしていた場合は、WSL内で以下のコマンドを実行します。
veracrypt -d /mnt/yourmountpoint
PowerShellでアンマウントする
次に、管理者権限つきのPowerShellで以下のコマンドを実行します。
wsl --unmount <デバイス名>
まとめ
WSL環境を構築していれば、WindowsでLinux用外付けHDDを使うのは決して難しくありません。専用ツールをインストールする手間もなく、コマンド一つで手軽にデータにアクセスできるようになります。
もしLinuxで使っていたHDDのデータにアクセスできなくて困っていた方は、ぜひこの方法を試してみてはいかがでしょうか?
本日も最後までお読みいただきありがとうございました。
それでは、よいWSLライフを!




ピンバック: WSL2でUSBデバイスを「完璧に」使う夢、そして現実 - ビューローみかみ
Windows11でwmicは動作しません
wsl –mountなんていうコマンドは存在しません
そもそもwslからfdisk -lしたら外付けHDDが認識されていません
ChatGPTに書かせた記事を検証しないまま載せないでください
コメントありがとうございます。
wmicはWindows11でも非推奨で使えていたのですが、25H2で削除されたのですね。
執筆時点では機能を有効化すれば使えましたし、私の25H2環境では現在でも使えます。
ただ標準では使えなくなったコマンドですので、後で追記します。
なお、wmicが使えない場合は、PowerShellで以下のコマンドを実行すれば、同様の結果が得られます。
Get-CimInstance -ClassName Win32_DiskDrive | Select-Object Caption, DeviceID, Model, Partitions, Size
また、wsl –mount は以下の情報をご参照ください。
Linux ディスクを WSL 2 にマウントする(Microsoft Learn)
https://learn.microsoft.com/ja-jp/windows/wsl/wsl2-mount-disk
mountしてからでないとfdisk -l で外付けHDDが認識されないのは正常な挙動です。
再度動作をご確認ください。
なお、記事にもありますが、使い終わったら必ずunmountしておかないとファイルシステムが破損する可能性がありますのでご注意ください。
このあたりの利便性に問題があるので、WSL2から外付けHDDを認識させるのは裏技的な方法になっているのだと思います。