WSL: ย้ายโฟลเดอร์ wsl ไปยังดิสก์อื่น Migrate WSL data folder to another disk

Posted on
WSL2 windows container

เรามีพื้นที่ C: ไดร์ฟที่จำกัด (มี 512GB แล้ว แต่ใช้งาน container image เยอะมาก) เลยหาทางย้าย folder ที่ docker desktop และ rancher desktop ที่ใช้ตัว WSL ไปไว้ใน external hard disk ซึ่งเป็น SSD (external usb3 interface ซึ่งมีความเร็วอ่านเขียนที่ยอมรับได้เวลาใช้งาน)

ไปค้นเจอใน SO เราทำตาม solution แรก ไม่ต้องไป clone/download script มาหรอก

วิธีนี้ต้องมีพื้นที่ใน external disk เหลือเยอะหน่อย; 2 เท่าของข้อมูลที่จะย้ายไป

เปิด Powershell ขึ้นมาเลย ไม่ต้องเป็น admin session ก็ได้

ดูก่อนว่าตอนนี้เรามี distribution อะไรอยู่บ้าง

❯ wsl --list 

ถ้าใช้งาน docker desktop, rancher desktop ก็จะเห็นรายการที่เป็นชื่อของมัน

❯ wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu-20.04 (Default)
rancher-desktop
docker-desktop-data
docker-desktop
rancher-desktop-data

เราจะย้าย docker-desktop, docker-desktop-data, rancher-desktop, rancher-desktop-data ไปยัง external disk (D: drive)

Export data ออกไปก่อน

❯ wsl --export docker-desktop d:\dd.tar
❯ wsl --export docker-desktop-data d:\dd-data.tar

ถ้าจะใช้ชื่อเดิม ต้องลบของเดิม(ที่อยู่ใน C: drive) ออกก่อน (ซึ่งเป็นวิธีที่แนะนำนะ)

❯ wsl --unregister docker-desktop-data
Unregistering...
❯ wsl --unregister docker-desktop
Unregistering...

Import data จากที่เก็บใหม่

❯ wsl --import docker-desktop-data d:\wsldata\docker-desktop-data d:\dd-data.tar
❯ wsl --import docker-desktop d:\wsldata\docker-desktop d:\dd.tar

Verify ตรวจสอบว่าเอาเข้าได้แล้ว

ก็ใช้คำสั่ง list เหมือนเดิม

❯ wsl -l