目的
まず、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
0 件のコメント:
コメントを投稿