WSL2からSDカードがアクセス出来ず、未解決らしい(2025/11/30現在) これまでポータブルSSDとかにしか直接データを書いていなかったので知らなかった。
https://learn.microsoft.com/ja-jp/windows/wsl/wsl2-mount-disk https://github.com/microsoft/WSL/issues/6011
そこで調べると usbipd-win というものを使うと動作するということを Claude に教えてもらったのでメモしておく。
SDカードのフォーマット
ファイルシステムが NTFS だと後の工程で mount できなかったので要注意。 FAT32で以降は試しました。exFATも性質的にはいけるんじゃないかなとは思います。
WSL2 での準備
下記のツールが必要とのことなので、そのまま入れました。
sudo apt update sudo apt install linux-tools-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
usbip 周りの処理はこれがベストなのかはよくわかってないので、要注意かも。
usbipd-win のダウンロード
https://github.com/dorssel/usbipd-win のリリースからか、winget から。 手元の環境は winget がセットアップされていたので、 winget でインストール。powershell で操作します。
winget install --interactive --exact dorssel.usbipd-win
powershell 再起動して、下記コマンドで調べる。
usbipd list
手元では 4-4 が ID とわかったので、 bind と attach。
usbipd bind --busid 4-4 usbipd attach --wsl --busid 4-4
このタイミングで Windows のエクスプローラ上からSDカードの表記が消えました。 再接続などすると Windows でも再確認できましたが、その場合は usbipd による bind, attach をやり直す必要がありそうです。
WSL2で mount
そのままmountすると、書き込み権限がなく終わりになってしまうので、描き込み権限ありでmountするように調整が必要です。 まずはストレージの状態を確認します。
lsblk
手元では sdd1 だということがわかったので、権限をつけつつマウント。
mkdir -p /mnt/test_sd sudo mount -o uid=$(id -u),gid=$(id -g) /dev/sdd1 /mnt/test_sd
テスト用にファイルを作ってみて問題ないことを確認。
cd /mnt/test_sd touch a.md vim a.md
感想
まさかSDカードが読み込めないとは思いませんでした。 しかしこの問題を解決したのでテスト用のデータの書き込みとかをようやく試せそうです…。長かった。
また解決方法についてもいくつか見つかりましたが、書き込めるかどうかの確認で引っかかってしまったので自分の記録用として書き起こしました。 WSL2でまだこんなにハマることがあるとは思わなかったので、ちょっとびっくりでした。