- https://twitter.com/lyrical_dolphin/status/1598498134338207744
- Please be aware WSL version to run from the task scheduler
- Please read the blog article
C:\Users\YOUR_ID\.wslconfig
[wsl2]
memory=12GB
swap=0
- Please read the blog article of setting instruction
- Please replace
<WINDOWS_MACHINE_IP_ADFRESS>
to the real static IP address
- Please replace
-
Save the following script as
start-wsl2.bat
wsl -u root -- service cron restart FOR /F "usebackq" %%i in (`wsl -d Ubuntu exec hostname -I`) do set IP=%%i netsh interface portproxy delete v4tov4 listenport=22 rem Mount disks wsl --mount \\.\PHYSICALDRIVE1 --bare rem ssh netsh interface portproxy add v4tov4 listenport=22 connectaddress=%IP% connectport=22 listenaddress=<WINDOWS_MACHINE_IP_ADFRESS> rem App port netsh interface portproxy add v4tov4 listenport=8000 connectaddress=%IP% connectport=8000 listenaddress=<WINDOWS_MACHINE_IP_ADFRESS>
-
Add the task as Administrator to run the script to Windows task scheduler at Windows start
-
If you restart WSL2 manually, run
wsl --shutdown
in the command prompt as Administrator and run the script as Administrator -
Port open
%%; https://zenn.dev/solufa/articles/accessing-wsl2-from-mobile $ports = @(2000, 8000) # Webアプリで使うポートを配列で指定 $fwRuleName = "WSL 2 Firewall Unlock" $wsl2Address = wsl -e hostname -I | ForEach-Object { $_.trim() } New-NetFireWallRule -DisplayName $fwRuleName -Direction Inbound -LocalPort $ports -Action Allow -Protocol TCP for ($i = 0; $i -lt $ports.length; $i++) { $port = $ports[$i] netsh interface portproxy add v4tov4 listenport=$port listenaddress=* connectport=$port connectaddress=$wsl2Address }
-
On windows
$ wmic diskdrive get deviceID,Caption $ wsl --mount \\.\PHYSICALDRIVE0 --bare
-
On WSL console
$ lsblk $ sudo mkdir -p /mnt/disk/ssd0 $ vi /etc/fstab /dev/sdb1 /mnt/disk/ssd0 ext4 defaults,user,nofail,noauto 0 0 $ sudo mount /mnt/disk/ssd0
-
Add the following line to
.zshenv
(or.bashenv
) to mount automaticallymount | grep -q '/mnt/disk/ssd0 ' || mount /mnt/disk/ssd0 2>/dev/null
Open Powershell by Admin
$ wsl --shutdown
$ ls $HOME\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_●●●●\LocalState\ext4.vhdx
$ diskpart
select vdisk file=C:\Users\●●●●\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_●●●●\LocalState\ext4.vhdx
attach vdisk readonly
compact vdisk
detach vdisk
exit
$ sudo parted /dev/sdb
parted) mkpart
Partition name? []? DISK_NAME_HERE
File system type? [ext2]? ext4
Start? 0%
End? 100%
$ sudo mkfs -t ext4 /dev/sdb1
$ sudo visudo
●●● ALL=NOPASSWD: /usr/bin/apt, /usr/bin/mount
$ mount /mnt/disk/ssd0
$ echo 'mount /mnt/disk/ssd0 2>/dev/null' >>
$ sudo vi /etc/hdparm.conf
/dev/sdb {
spindown_time = 120
}