👌

Windows(WSL)からext4ドライブを触る方法

2023/05/11に公開

Zynqのブートイメージを作るときに必要なのでまとめる。
結論から言うとWSLだけで完結できた。

最近は便利なものでWSLにext4ドライブをマウントできる。
https://zenn.dev/booink/articles/ext4-drive-mount-to-wsl

が、SDカードはUSBフラッシュドライブとして認識されるようで、これは現在WSLサポート外の模様
ただし開発は進んでるようで
https://learn.microsoft.com/ja-jp/windows/wsl/connect-usb
の手順でWSL側に認識させることができる。

ここでdmesgを行うと

[ 1460.165164] vhci_hcd vhci_hcd.0: Device attached
[ 1460.508605] usb 1-1: new high-speed USB device number 5 using vhci_hcd
[ 1460.658684] usb 1-1: SetAddress Request (5) to port 0
[ 1460.694330] usb 1-1: New USB device found, idVendor=0bda, idProduct=0109, bcdDevice= 9.59
[ 1460.695158] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1460.696011] usb 1-1: Product: USB2.0-CRW
[ 1460.696228] usb 1-1: Manufacturer: Generic
[ 1460.696428] usb 1-1: SerialNumber: 20090815198100000

のように、なっており、マウントするにはさらにカーネルのUSB Mass Strageサポートを有効にしないといけない

https://zenn.dev/nanamiiiii/articles/a7d80c389a238d
を参考にビルドしたカーネルで起動してPowerShell側で

 usbipd wsl attach --busid <BUSID>

すると

[   20.343979] usb-storage 1-1:1.0: USB Mass Storage device detected
[   20.344667] scsi host1: usb-storage 1-1:1.0
[   21.413225] scsi 1:0:0:0: Direct-Access     Generic- SD/MMC           1.00 PQ: 0 ANSI: 0 CCS
[   21.414637] sd 1:0:0:0: Attached scsi generic sg3 type 0
[   22.001470] sd 1:0:0:0: [sdd] 30253056 512-byte logical blocks: (15.5 GB/14.4 GiB)
[   22.006821] sd 1:0:0:0: [sdd] Write Protect is off
[   22.007123] sd 1:0:0:0: [sdd] Mode Sense: 03 00 00 00
[   22.008853] sd 1:0:0:0: [sdd] No Caching mode page found
[   22.009110] sd 1:0:0:0: [sdd] Assuming drive cache: write through
[   22.014765] TCP: eth0: Driver has suspect GRO implementation, TCP performance may be compromised.
[   22.015202]  sdd: sdd1 sdd2
[   22.018008] sd 1:0:0:0: [sdd] Attached SCSI removable disk

のようにUSB Mass Storageとして認識され、マウント可能になる。

Discussion