WSLでext4のUSBHDDをマウントしてアクセスする方法

TL:DL;

  • WSL2 には、ext4 のようなWindowsでは認識できないファイル形式のドライブもマウントできる
    • Get-CimInstance -query "SELECT * from Win32_DiskDrive"
    • wsl --mount <deviceID> --parition <partition number> --type <filesystem>
  • WSL2内部では、すべてのドライブ(上記でマウントしたものを含む)が /mnt/* にてアクセス可能
  • 標準コピーは Quiet 過ぎて怖いし、上書き必須なので、rsync を使うことにした
    • rsync -P -r - t -u -v <from> <to>

詳細な手順

WSL に ext4 をマウントする

WSL 2 で Linux ディスクのマウントを開始する | Microsoft Learn

公式の手順そのままをなぞる

wsl --mount コマンドは、第一引数がDeviceIDで、次がパーティション番号(複数に分けていた場合は注意が必要だが、そうでなければシンプルに1)最後にファイルシステムの種別。私の場合は ext4.

> Get-CimInstance -query "SELECT * from Win32_DiskDrive"

DeviceID           Caption                             Partitions Size          Model
--------           -------                             ---------- ----          -----
...(中略)...
\\.\PHYSICALDRIVE3 TOSHIBA External USB 3.0 USB Device 1          3000590369280 TOSHIBA External USB 3.0 USB Device

> wsl --mount \\.\PHYSICALDRIVE3 --partition 1 --type ext4

マウント先は、wsl --mount が成功した時にアナウンスされるのだが、
私の場合は /mnt/wsl/PHYSICALDRIVE3p1 だった。

WSL内部では特にコマンドを実行する必要はない。

コピー先のUSBドライブにアクセスする

WSLでUSBデータを管理!簡単マウントと便利な設定 | 忘却の泉

単に知らなかったのだが、WSLでは、/mnt/<ドライブレター> にすでにドライブがマウントされた状態になっている。

ゆえに、E: ドライブは /mnt/e にアクセスすればよい。

コピーをする

普通に cp コマンドでコピーしてもよい。
とは思うが

$ cd /mnt/wsl/PHYSICALDRIVE3p1/
$ cp -r DVDISO/ /mnt/e/Eastern/DVDISO

途中でエラーしたりしたらなんだかなあっていう気分になると思うので
rsync を使うことでそこらへんの不安を解消する

Synchronize Linux Directories in Both Directions | Baeldung on Linux
rsyncで簡単に実現!Linuxでリモートとローカルのディレクトリを同期する方法

$ rsync -P -r -t -u -v DVDISO/ /mnt/e/Eastern/DVDISO
  • P : 経過を出す
  • v : 経過を出す2(Pとの違いはわからない)
  • r : ディレクトリを再帰的に処理
  • t : 時刻情報を保持
  • u : コピー先に時刻の新しいファイルがあれば無視

他にも「symlink を保持」「ユーザー・グループ・パーミッションを保持」などもある

Easternというのは私がコピー元HDDの識別名としていた名前である。ノイズだなあ。

おまけ:速度には要注意

USBデバイスというのは、思った通り速度を出すのが難しいのだなと痛感している。1TB のデータをUSB-HDD間でコピーしているのだが、20MB/s が私の環境のアッパー で、それ以上出せていない。USB2.0 のHighSpeed対応の端子・ケーブルではあるから、400MB/s 程度は出てほしいところではある(あってる?)当然、そこまで詰め切ってない。そして少なくとも14時間?かかる計算なのだが、それぐらいなら、、、と思って待っている。悲しいなあ、、、諸兄におかれましては、くれぐれもHDDのコピー時は速度と時間を確認してから作業を行われることを推奨したい。

いや、NASか!NAS買おう!


終わりに

この記事のオーディエンスはだれなのだろう

私がこの記事を書いた理由は単に思い出話なので、なんも解説できていないということを自覚しているので、それはいいが、じゃあ、実際に気にかかって検索してくる人はいるのだろうか?読んでくれてありがとう。

私がなぜこの記事を書くに至ったか

気の迷いで、Windowsをホストとして動くVMwareに、ファイルサーバーを構築していた。そこに接続するUSB-HDDのファイルシステムをext4 にしたことが原因だった。その当時のことを今もよく覚えている。『ext4にしとけば、彼女・結婚した場合も、相手には扱えないだろ!ばれないだろ!』 30代。婚活もしていた。それから10年、私は結婚していない。彼女もいない。恋愛は幸いないことに一度失敗した。(これを書いていて、自分にドン引きしたので皆さまは恋愛していることを願う。してないやつは、、、しような!、、、しなくてもいいけどな!)

そして今はこう思う。アクセス先を不明にしたNASとかHDDを一個用意したら十分だよ!って。女性がどうの、男性がどうの、非技術者がどうのとかいう文脈で話を書いてしまった気がしたのだが、結論はちょっと違う。「面倒くさいことをやれるなら、何の壁も関係ないし、逆に面倒くさくしておけばext4にするまでのことは必要ない」と思うからである。

私が死んだら開けられない金庫より、鍵がどこにあるかわからないけどとりあえず空く金庫でいいじゃないかと。ext4は自分でも開けられない金庫になったのだ。

ああ、カッコつけてしまった

また忘れたい歴史を増やした形だが、今回はさすがにいろいろと背負っていく。ここまで読んでくれてありがとう。あなたの暇が潰せたことを祈っている。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です