WSL がディスクを食い尽くすのをの何とかしたい。vhdx のサイズが 1TB 決め打ちで変更できないとか、Microsoft のそういう所ほんと嫌い。
基本戦略は上記に従う。ちなみに老人なのでパワーシェルとかは知らない。
まず Ubuntu をクリーンインストールした後、即終了。(初回インストール時は管理者で wsl --install を実行する必要あり)
C:\Users\user>wsl --version
WSL バージョン: 1.2.5.0
カーネル バージョン: 5.15.90.1
WSLg バージョン: 1.0.51
MSRDC バージョン: 1.2.3770
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.22621.1555
C:\Users\user\Documents>wsl -l -v
Linux 用 Windows サブシステムにディストリビューションがインストールされていません。
'wsl.exe --list --online' を使用して利用可能なディストリビューション
を一覧表示し、'wsl.exe --install <Distro>' を使用してインストールします。
また、Microsoft Store にアクセスしてディストリビューションをインストールすることもできます:
https://aka.ms/wslstore
Error code: Wsl/WSL_E_DEFAULT_DISTRO_NOT_FOUND
C:\Users\user\Documents>wsl --install
インストール中: Ubuntu
Ubuntu がインストールされました。
Ubuntu を起動しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: user
New password:
Retype new password:
passwd: password updated successfully
この操作を正しく終了しました。
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This message is shown once a day. To disable it please create the
/home/user/.hushlogin file.
user@MY-PC:~$
logout
C:\Users\user\Documents>wsl --shutdown
C:\Users\user\Documents>wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
Ubuntu の vhdx をコピー。ファイルの場所は臨機応変に探す。
C:\Users\user\Documents>copy "%LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx" ubuntu.vhdx
1 個のファイルをコピーしました。
新しい vhdx を作る(ここでは 10GB)。
C:\Users\user\Documents>diskpart
Microsoft DiskPart バージョン 10.0.22621.1
Copyright (C) Microsoft Corporation.
コンピューター: MY-PC
DISKPART> create vdisk file="C:\Users\user\Documents\ext4.vhdx" maximum=10000 type=expandable
100% 完了しました
DiskPart により、仮想ディスク ファイルが正常に作成されました。
DISKPART> exit
Ubuntu を起動し、新旧 vhdx をアタッチ。
C:\Users\user\Documents>wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This message is shown once a day. To disable it please create the
/home/user/.hushlogin file.
user@MY-PC:/mnt/c/Users/user/Documents$ wsl.exe --mount --vhd --bare ubuntu.vhdx
この操作を正しく終了しました。
user@MY-PC:/mnt/c/Users/user/Documents$ wsl.exe --mount --vhd --bare ext4.vhdx
この操作を正しく終了しました。
user@MY-PC:/mnt/c/Users/user/Documents$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 363.3M 1 disk
sdb 8:16 0 1G 0 disk [SWAP]
sdc 8:32 0 1T 0 disk /snap
/mnt/wslg/distro
/
sdd 8:48 0 1T 0 disk
sde 8:64 0 9.8G 0 disk
旧 vhdx が sdd、新 vhdx が sde だと分かるので、新 vhdx (/dev/sde)をフォーマット。
user@MY-PC:/mnt/c/Users/user/Documents$ sudo mkfs.ext4 /dev/sde
[sudo] password for user:
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 2560000 4k blocks and 640848 inodes
Filesystem UUID: 0d215fd7-0556-4259-8854-54fa8768d86c
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
新旧 vhdx をマウント、中身をコピーした後、Ubuntu を終了。
user@MY-PC:/mnt/c/Users/user/Documents$ sudo mkdir /mnt/vdisk-src /mnt/vdisk-dst
user@MY-PC:/mnt/c/Users/user/Documents$ sudo mount -r /dev/sdd /mnt/vdisk-src
user@MY-PC:/mnt/c/Users/user/Documents$ sudo mount /dev/sde /mnt/vdisk-dst
user@MY-PC:/mnt/c/Users/user/Documents$ ls /mnt/vdisk-src /mnt/vdisk-dst
/mnt/vdisk-dst:
lost+found
/mnt/vdisk-src:
bin dev home lib lib64 lost+found mnt proc run snap sys usr
boot etc init lib32 libx32 media opt root sbin srv tmp var
user@MY-PC:/mnt/c/Users/user/Documents$ sudo cp -axT /mnt/vdisk-src /mnt/vdisk-dst
user@MY-PC:/mnt/c/Users/user/Documents$ ls /mnt/vdisk-dst
bin dev home lib lib64 lost+found mnt proc run snap sys usr
boot etc init lib32 libx32 media opt root sbin srv tmp var
user@MY-PC:/mnt/c/Users/user/Documents$ wsl.exe --shutdown
Ubuntu の vhdx を新 vhdx にすり替え、Ubuntu を起動してディスクサイズを確認。
C:\Users\user\Documents>move ext4.vhdx "%LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx"
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx を上書きします か? (Yes/No/All): y
1 個のファイルを移動しました。
C:\Users\user\Documents>wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This message is shown once a day. To disable it please create the
/home/user/.hushlogin file.
user@MY-PC:/mnt/c/Users/user/Documents$ df -h | grep /dev/sd
/dev/sdc 9.6G 1.1G 8.0G 12% /