หลังจากย้าย 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:\Users\Shared\WSLs\Ubuntu
หรือใน path จะมีค่าเท่ากับ
C:\Users\Shared\WSLs\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:\Users\Shared\WSLs\Ubuntu\ext4.vhdx ) แล้วแก้ permissions ให้ user ที่ต้องการสามารถอ่าน เขียนได้
- ทำซ้ำขั้นตอนที่ 6 จนกว่าจะครบทุก users
- restart windows
เช็คแต่ละ user ว่าสามารถใช้ share OS ได้มั๋ย โดย Error ที่เจอ เช่น
- Failed to attach disk ‘C:\Users\Shared\WSLs\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 ค้างเอาไว้
อ่านเพิ่มเติม
About the author