บันทึกการย้าย WSL Directory

tags: wsl
8 ธ.ค. 64

ทุกๆ สองปีต้องมีจังหวะนึงที่นึกอยากอัพเดทบล็อกขึ้นมา อยากจะอัพเดทให้ถี่กว่านี้แต่ก็หาข้ออ้างให้ตัวเองได้ตลอด 😬 วันนี้ก็มาเขียนบันทึกไว้หน่อยเนื่องในโอกาสย้าย directory ที่ติดตั้ง WSL เพราะพื้นที่ไดรฟ์หลักจะเต็ม

เกริ่นนำก็คือว่าปกติไม่ค่อยได้ใช้ Windows ในการ dev สักเท่าไหร่ แต่ก็มี Windows เครื่องนี้ที่เอาไว้ใช้เล่นเกมและในบางโอกาสก็อยากจะ dev บนนี้ไปเลยบ้างถ้าทำได้ อารมณ์ขี้เกียจเปลี่ยนเครื่องประมาณนั้น ทีนี้ก็มีปัญหายิบย่อยอย่างไดรฟ์ที่ติดตั้ง Windows เป็น SSD M2 สมัยนู้นเลยที่มีขนาดแค่ 100 GB ครั้นจะย้ายไปลง Windows บน SSD อีกใบ ขนาด 500 GB ที่ตอนนี้ใช้เป็นไดรฟ์สำรองก็ขี้เกียจกอปรกับไม่ค่อยมีเวลาเท่าไหร่ ทีนี้พอติดตั้ง WSL ผ่าน Windows Store มันก็มาอยู่บนไดรฟ์หลักเลยและค่อยๆ กลืนกินพื้นที่ไปเรื่อยๆ จากที่ว่างๆ อยู่ 30-40 GB ก็มาเหลือแค่ 10 GB นิดๆ ปริ่มๆ ในบางจังหวะที่อยากลองก็อปนู่นนี่มาวางรันเล่นๆ ก็ไม่ค่อยจะสะดวกเท่าไหร่ ก็เลยคิดว่าอย่างน้อยถ้ายังไม่อยากลง Windows ใหม่ก็ควรต้องย้าย WSL แล้วมั้ง

แรกๆ ที่คิดจะย้ายก็บ่ายเบี่ยง หาอ่านตาม StackOverflow แล้วก็คิดว่าอาจจะซับซ้อนรึเปล่านะ แต่ตั้งใจไว้แล้วก็เอาซะหน่อยแล้วก็พบว่าไม่ได้มีอะไรซับซ้อนอย่างที่คิด หลักๆ ก็คือได้แนวทางมาจากเธรดนี้ ก็ทำตามแล้วก็แก้ config ของ Windows Terminal นิดหน่อยก็เรียบร้อย

  • เลือกตามสะดวกว่าจะใช้ CLI ไหนดำเนินการ ในที่นี้ใช้ PowerShell บน Windows Terminal แต่จะใช้ Git Bash ก็ได้แค่ต้องเปลี่ยน path separator ให้ถูกต้อง
  • เริ่มแรกก็ export distro ก่อนเลย ในที่นี้จะเป็น Ubuntu 20.04 ถ้าไม่ชัวร์ว่าใช้เวอร์ชันไหนอยู่ก็รัน wsl.exe --list --verbose เช็คก่อนได้
wsl.exe --export Ubuntu-20.04 D:\Dev\ubuntu-20.04.tar
  • คำสั่งข้างบนจะเป็นการ export distro Ubuntu-20.04 ไปเป็นไฟล์ .tar ที่ D:\Dev\ubuntu-20.04.tar
  • ก่อนจะย้ายไปที่ใหม่ก็ลบที่เก่าให้เรียบร้อยด้วยคำสั่ง

อย่าลืมเช็คให้ชัวร์ก่อนว่า export มาแล้วเรียบร้อย

wsl.exe --unregister Ubuntu-20.04
  • เสร็จแล้วก็ไป import บน directory ที่เราต้องการ
wsl.exe --import Ubuntu-20.04 D:\wsl\Ubuntu-20.04 D:\Dev\ubuntu-20.04.tar
  • คำสั่งนี้ต้องมีชื่อ distro ก็ใส่ให้เหมือนตอน export มาเลย D:\wsl\Ubuntu-20.04 ก็คือ path ที่เราต้องการให้ wsl อยู่ และ D:\Dev\ubuntu-20.04.tar ก็คือไฟล์ .tar ที่เรา export มาก่อนหน้านั่นเอง

แค่นี้ก็เรียบร้อย ได้พื้นที่ไดรฟ์หลักกลับมากว่า 20 GB เป็นอันจบ แฮปปี้เอนดิ้ง

blog