これが一番やっかいでした。
ext4なSSDはWindowsシステムでは見ることができず、なんらからのアプリを入れて見れるようにするのが一般的です。
本環境ではWSL2から見えればいいのでWindowsシステム上では無視してかまいません。
管理者権限で実行されたPowerShell上から次のコマンドを実行してWSL2上にFile Systemを認識させます。
$drive = GET-CimInstance -query "SELECT * from Win32_DiskDrive" | Select-String -Pattern "Force MP600" | ForEach-Object { $($_ -split'"')[1] };wsl --mount $drive --bare
これは何をやっているかというと、GET-CimInstance -query "SELECT * from Win32_DiskDrive
でWindowsシステムで見えているドライブの一覧を表示しています。
たとえば、実行してみるとこんな感じで表示されます。
PS C:\WINDOWS\system32> GET-CimInstance -query "SELECT * from Win32_DiskDrive"
DeviceID Caption Partitions Size Model
-------- ------- ---------- ---- -----
\\.\PHYSICALDRIVE0 CSSD-M2B2TPG3VNF 3 2000396321280 CSSD-M2B2TPG3VNF
\\.\PHYSICALDRIVE1 Force MP600 1 2000396321280 Force MP600
私の環境でext4なSSDはForce MP600でこれをSelect-String -Pattern "Force MP600"
で選択しています。
つづけて実行するとこんな感じで表示されます。
PS C:\WINDOWS\system32> GET-CimInstance -query "SELECT * from Win32_DiskDrive" | Select-String -Pattern "Force MP600"
Win32_DiskDrive: Force MP600 (DeviceID = "\\.\PHYSICALDRIVE1")
最後にForEach-Object { $($_ -split'"')[1] }
で\\.\PHYSICALDRIVE1
を抽出しています。
それを$driveに格納してwsl --mount $drive --bare
を実行しています。
これでWSL2にext4なSSDを認識させることができます。
認識するとつぎのように/sdv/sdc1が追加されます。
hidemi@nereid:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 339.8M 1 disk
sdb 8:16 0 256G 0 disk /
sdc 8:32 0 1.8T 0 disk
└─sdc1 8:33 0 1.8T 0 part /disk2
あとはmount /dev/sdc1 /disk
とかしてmountするだけです。
WSL2のストレージはWIndowsシステムからつぎのように見えるのでWindowsシステム上でmountしなくても問題ありません。
PS C:\WINDOWS\system32> ls \\wsl.localhost\Ubuntu-20.04
ディレクトリ: \\wsl.localhost\Ubuntu-20.04
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2021/11/03 15:06 home
d----- 2021/08/20 6:40 srv
d----- 2021/11/25 8:52 work
d----- 2022/01/09 8:53 etc
d----- 2022/01/09 19:41 opt
d----- 2022/01/05 23:07 root
d----- 2021/12/30 12:00 mnt
d----- 2021/08/20 6:42 usr
d----- 2021/08/20 6:40 media
d----- 2022/01/09 8:53 sys
d----- 2022/01/09 8:53 dev
d----- 2021/08/20 6:52 boot
d----- 2022/01/09 11:36 run
d----- 2022/01/09 8:53 proc
d----- 2022/01/09 17:20 disk2
d----- 2022/01/09 0:02 snap
d----- 2022/01/09 20:30 tmp
d----- 2022/01/05 21:06 disk
d----- 2022/01/01 22:21 var
d----- 2019/04/11 1:35 lost+found
-----l 2021/08/20 6:39 7 lib
-----l 2021/08/20 6:39 9 lib64
-----l 2021/08/20 6:39 8 sbin
-----l 2021/08/20 6:39 7 bin
-----l 2021/08/20 6:39 9 lib32
-----l 2021/08/20 6:39 10 libx32
------ 2021/10/05 20:50 1392928 init
つまり、WSL2でmountしたext4のSSDはこのディレクトリをたどればアクセスすることができます。