หลังจากย้าย wsl ไปที่อื่นได้ WSL: move to another drive ก็อยากจะ share ตัว server linux กับ user อื่น ๆ จะได้ไม่ต้อง config ซ้ำซ้อนหลายรอบการทำก็ง่าย ๆ กว่าที่คิด
- ติดตั้ง WSL แต่ละ user ไว้โดยอาจจะติดตั้งใหม่ WSL: PowerShell Installing หรือจะไป mapping กับไฟล์ .vhdx เดิมก็ได้
- login user ที่ติดตั้ง WSL ที่จะ share
- เปิดโปรแกรม regedit โดยไปที่เมนูของ windows พิมพ์ regedit.exe ในช่อง run หรือ search แล้ว enter
- ไปที่ Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ จะเห็น folder ข้างในที่เป็น เลขสุ่มเช่น HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{2d42cb50-bbf8-497a-950d-edb1cbebd24c}
- ไปที่ String Value ที่ชื่อ BasePath แล้ว copy ค่าข้างใน เช่น \?\C:\UsersDatas\WSL\2\Ubuntu หรือใน path จะมีค่าเท่ากับ C:\UsersDatas\WSL\2\Ubuntu\ext4.vhdx เก็บไว้
- login user ที่ติดตั้ง WSL ที่เปลี่ยนมาใช้ OS หรือ Virtual Hard Disk ตัวที่เก็บ path ไว้
- เปิดโปรแกรม regedit โดยไปที่เมนูของ windows พิมพ์ regedit.exe ในช่อง run หรือ search แล้ว enter
- ไปที่ Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ จะเห็น folder ข้างในที่เป็น เลขสุ่มที่ไม่เหมือนเดิม
- ไปที่ String Value ที่ชื่อ BasePath แล้วเอาค่าที่ copy ไว้มาแทนที่
- ไปที่ path ตัว Virtual Hard Disk (C:\UsersDatas\WSL\2\Ubuntu\ext4.vhdx) แล้วแก้ permissions ให้ user ที่ต้องการสามารถอ่าน เขียนได้
- ทำซ้ำขั้นตอนที่ 6 จนกว่าจะครบทุก users
- restart windows
เช็คแต่ละ user ว่าสามารถใช้ share OS ได้มั๋ย โดย Error ที่เจอเช่น
- Failed to attach disk ‘C:\UsersDatas\WSL\2\Ubuntu\ext4.vhdx’ to WSL2: Access is denied.
Error code: Wsl/Service/CreateInstance/MountVhd/HCS/E_ACCESSDENIED
Press any key to continue…
อันนี้คือ user นี้ไม่มีสิทธิ์อ่าน/เขียน ไปแก้ permissions ใหม่ดู - Error code: Wsl/Service/CreateInstance/MountVhd/HCS/ERROR_SHARING_VIOLATION
หมายถึงไฟล์ Virtual Hard Disk ถูก lock อยู่โดย user อื่นเช่น มีคนอื่น login ค้างเอาไว้