kuroの覚え書き

96の個人的覚え書き

WSL2でwindows10にext4フォーマットのHDDをマウント

自宅サーバはほぼラボサーバのデータバックアップ用でしかなかったので、Windowsに置き換えることにした。データバックアップディスクをwindowsのフォーマットにしてもいいといえばいいが、ext4のままのほうが楽といえば楽なのでそのままマウントできる方法を模索した。
結果、結構面倒くさいことが判明。
手順を覚えていられる自信がないので書いておく。

まずext4のディスクをつなぐ。今回biosをいじってsataのホットプラグを有効にしたので、HDDをラックにガチャンとはめ込んでやる。その状態では全くマウントされないのでまずはWindowsに認識されるようにする。
powershellを管理者で開き、

> GET-CimInstance -query "SELECT * from Win32_DiskDrive"
DeviceID           Caption              Partitions Size          Model
--------           -------              ---------- ----          -----
\\.\PHYSICALDRIVE1 ST4000VN008-2DR166   1          4000784417280 ST4000VN008-2DR166
\\.\PHYSICALDRIVE0 WDC WD10EARX-32N0YB0 3          1000202273280 WDC WD10EARX-32N0YB0

\\.\PHYSICALDRIVE1がホットプラグしたHDDなので

>wsl --mount \\.\PHYSICALDRIVE1 --bare
この操作を正しく終了しました。

このようにマウントする。しかしこの状態ではext4フォーマットは読めるようにはなっておらず、続いてUbuntuでマウントしてやる。
Ubuntuを起動し、プロンプトに

$ sudo fdisk -l
[sudo] password for kkuro:
Disk /dev/ram0: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

中略

Disk /dev/sdc: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: ST4000VN008-2DR1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 7ACA6F87-4951-4650-BD60-48A486258E88

Device     Start        End    Sectors  Size Type
/dev/sdc1   2048 7814035455 7814033408  3.6T Linux filesystem


Disk /dev/sdd: 1 TiB, 1099511627776 bytes, 2147483648 sectors
Disk model: Virtual Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

このようになっている。ここで/dev/sddがWindowsの起動ディスクで、/dev/sdcがext4のHDD

$ sudo mkdir /media/hdd1
$ sudo mount /dev/sdc1 /media/hdd1

という風にマウントしてやる。
これでやっとファイルエクスプローラーのLinux>Ubuntu>media>hdd1にHDDの中身が出てくる。

なお/etc/fstabで自動マウントはできないっぽい。

HDDを取り外すときはまずUbuntu

$sudo umount /media/hdd1

とし、powershell

> wsl --unmount  \\.\PHYSICALDRIVE1

これで多分引っこ抜いても大丈夫なんじゃないかな。