第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秒台に短縮された.