WSL2用にデータパーティションを作る

2024年4月29日月曜日

wsl

t f B! P L

目的

まず、WSL2のubuntu 20.04からubuntu 24.04に移行するのに合わせて、ホームやパッケージなどをインストールしておく、データ保存用パーティションを作る。

これを、ubuntu 20.04にマウントして、これまでつ買っていた物をコピーする。その後、アンマウントして、今後は新しいubuntuにマウントして使って行くことにする。

こうすることで、移行の度にホームなどをコピーする手間を省くのが目的。

VHDXパーティション作成

Windowsアイコンを右クリックして出てくるメニューから、「ディスクの管理」を選ぶ。その後、「操作」→「VHDの作成」から、100GB程度のVHDX (可変容量) を作成する。例えば、C:\Users\jam\wsl\ext4-data.vhdx というVHDXファイルを作る。

VHDXパーティションの番号の確認

まず、Windowsにマウントして、その番号を確認する必要がある。一覧を出して確認する。よく分からない場合は、「ディスクの管理」から「VHDの切断」をしたり「VHDの接続」をしたりしながら、確認するといい。

一覧の出し方は以下のと折り。今回は、\\.\PHYSICALDRIVE2が対象となる。

PS C:\Users\jam\wsl> wmic diskdrive list brief
Caption                 DeviceID            Model                   Partitions  Size
MS950G70PCIe4HSE-04TB   \\.\PHYSICALDRIVE1  MS950G70PCIe4HSE-04TB   1           4096798110720
CSSD-M2B1TPG3VNF        \\.\PHYSICALDRIVE0  CSSD-M2B1TPG3VNF        3           1000202273280
Microsoft Virtual Disk  \\.\PHYSICALDRIVE2  Microsoft Virtual Disk  0           107372805120

VHDXパーティションのアンマウント

「ディスクの管理」から作成すると、マウントされた状態になっている。アンマウントには、ディスクを選んで右クリックし、「VHDの切断」を選ぶ。マウントには、メニューから、「操作」→「VHDの接続」とする。

ext4ファイルシステムの初期化

まずは、WSLにbareモードでマウントしてmkfsで初期化する。その後、アンマウントして、通常モードで再度マウントすることで、普通に使えるようになる。

WSLへマウント

作成したパーティションを「VHDの接続」でWindowsにマウントした状態で、以下を実行して、WSLにマウントする。--bareをつけることで、直接デバイスとしてマウントし、初期化を行う。

PS C:\Users\jam\wsl> wsl --mount \\.\PhysicalDrive2 --bare
この操作を正しく終了しました。

UNIX上でのデバイス名は、dmesgや、lsblkから確認するのがよい。以下のように、/dev/sdgと分かる。

jam@JamWin10:~$ lsblk
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0   7:0    0 466.6M  1 loop /mnt/wsl/docker-desktop/cli-tools
loop1   7:1    0 137.4M  1 loop
loop2   7:2    0 423.6M  1 loop /mnt/wsl/docker-desktop-data/version-pack-data/c
sda     8:0    0 388.5M  1 disk
sdb     8:16   0    40G  0 disk [SWAP]
sdc     8:32   0     1T  0 disk /mnt/wsl/docker-desktop-data/version-pack-data/c
sdd     8:48   0     1T  0 disk /mnt/wsl/docker-desktop/docker-desktop-user-dist
sde     8:64   0   256G  0 disk /mnt/wslg/distro
sdf     8:80   0     1T  0 disk
sdg     8:96   0   100G  0 disk
jam@JamWin10:~$ dmesg
...
[29130.386374] sd 0:0:0:6: Attached scsi generic sg6 type 0
[29130.386786] sd 0:0:0:6: [sdg] 209715200 512-byte logical blocks: (107 GB/100 GiB)
[29130.386788] sd 0:0:0:6: [sdg] 4096-byte physical blocks
[29130.387008] sd 0:0:0:6: [sdg] Write Protect is off
[29130.387010] sd 0:0:0:6: [sdg] Mode Sense: 0f 00 00 00
[29130.387462] sd 0:0:0:6: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[29130.389882] sd 0:0:0:6: [sdg] Attached SCSI disk

初期化

mkfsで初期化する。

jam@JamWin10:~$ sudo mkfs -t ext4 /dev/sdg
[sudo] password for jam:
mke2fs 1.45.5 (07-Jan-2020)
Discarding device blocks: done
Creating filesystem with 26214400 4k blocks and 6553600 inodes
Filesystem UUID: 32eea065-747b-451a-8e35-07107ddd12da
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done

WSLからのアンマウントと再マウント

後は一度アンマウントして、通常のマウントをする。

PS C:\Users\jam\wsl> wsl --unmount; wsl --mount \\.\PhysicalDrive2
この操作を正しく終了しました。
ディスクは '/mnt/wsl/PhysicalDrive2' として正常にマウントされました。
注: /etc/wsl.conf で automount.root 設定を変更した場合、場所は異なります。
ディスクのマウントを解除してデタッチするには、'wsl.exe --unmount \\.\PhysicalDrive2' を実行してください。

UNIXからは、以下のように見える。

jam@JamWin10:~$ lsblk
NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0   7:0    0 466.6M  1 loop /mnt/wsl/docker-desktop/cli-tools
loop1   7:1    0 137.4M  1 loop
loop2   7:2    0 423.6M  1 loop /mnt/wsl/docker-desktop-data/version-pack-data/c
sda     8:0    0 388.5M  1 disk
sdb     8:16   0    40G  0 disk [SWAP]
sdc     8:32   0     1T  0 disk /mnt/wsl/docker-desktop-data/version-pack-data/c
sdd     8:48   0     1T  0 disk /mnt/wsl/docker-desktop/docker-desktop-user-dist
sde     8:64   0   256G  0 disk /mnt/wslg/distro
sdf     8:80   0     1T  0 disk
sdg     8:96   0   100G  0 disk /mnt/wsl/PhysicalDrive2
jam@JamWin10:~$ ls /mnt/wsl/PhysicalDrive2/
lost+found

ラベル

AndroidTV (1) chromebook (2) DIY (4) docker (1) git (4) Ingress (4) llvm (3) MacBook (1) MVNO (1) narou (1) PS4 (2) QNAPNAS (9) SIMD (9) SmartBand (8) Ubuntu (9) VAIO (1) Windows (2) wsl (2) wsl2 (1) Xperia (20) トルネ (3) プログラム (26) ルーター (18) 音楽 (6) 家事 (2) 自炊 (2) 電子書籍 (2) 洋食 (4)

フォロワー

QooQ