第8章 WSL2
外付けストレージのマウント
成功した手順
デバイスIDの確認
まずPowerShellを管理者権限で開く.HDDのデバイスIDを確認するためにPowerShellで
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
とする.
> GET-CimInstance -query "SELECT * from Win32_DiskDrive"
DeviceID Caption Partitions Size Model
-------- ------- ---------- ---- -----
\\.\PHYSICALDRIVE1 I-O DATA HDPH-UT USB Device 1 5000978465280 I-O DATA HDPH-UT USB Device
\\.\PHYSICALDRIVE0 SAMSUNG MZVL2512HCJQ-00B07 4 512105932800 SAMSUNG MZVL2512HCJQ-00B07
ここにあるマウントしたいHDD等のDeviceID(一番左に書いてあるもの)を以降のコマンドで使う. SizeやModelをもとに目的のストレージを特定するとよい.
マウント
前の節で得たデバイスIDを使って,PowerShell上で次のようにする(IDは適宜書き換え):
wsl --mount \\.\PHYSICALDRIVE1 --bare
続いてWSL(Ubuntu)のターミナルを開く.
そこでlsblk
を実行すると,それまではなかった新たにマウントされたデバイスが確認できる.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 365.6M 1 disk
sdb 8:16 0 2G 0 disk [SWAP]
sdc 8:32 0 4.6T 0 disk
├─sdc1 8:33 0 128M 0 part
└─sdc2 8:34 0 4.6T 0 part /mnt/d
sdd 8:48 0 256G 0 disk /mnt/wslg/distro
この場合,容量とMOUNTPOINTが空欄(まだマウントされていない)を見て sdc2が目的のHDDだとわかったので,次のコマンドでマウントした:
sudo mount /dev/sdc2 /mnt/d
すなわち/dev/sdc2を/mnt/dにマウントするということである. これで/mnt/dからHDDの中で作業できるようになった.
アンマウント
マウントしている間, エクスプローラーからはそのストレージにアクセスできないらしい(表示されなくなる). そのため再度エクスプローラーで使う際はPowerShell上でアンマウントする必要があるようだ. ここでもマウント時に用いたデバイスIDを使用する:
> wsl.exe --unmount \\.\PHYSICALDRIVE1
出力:
この操作を正しく終了しました。
これで再びエクスプローラー上にHDDが表示される.
失敗した手順
参照したマイクロソフトのページ (https://learn.microsoft.com/ja-jp/windows/wsl/wsl2-mount-disk) には単に
wsl --mount <DiskPath>
とする方法も書かれていたが,これではディスクがbusyだ,みたいなエラーが出て失敗した.
WSL2の起動に時間がかかる場合の対処
接続できないネットワークが登録されている場合
事象: WSL2の起動に数分かかる.起動してからは問題なく動作する.
原因: エクスローラーの「PC」の画面に,既につながらないネットワークが登録されていたこと.
対処: つながらないネットワークを右クリックし,メニューから切断を選択して削除した.
結果: wslの起動が4秒台に短縮された.