Yearly Archive 2023-03-18

Byphunsanit

WSL: sharing Virtual Hard Disk (OS)

หลังจากย้าย wsl ไปที่อื่นได้ WSL: move to another drive ก็อยากจะ share ตัว server linux กับ user อื่น ๆ จะได้ไม่ต้อง config ซ้ำซ้อนหลายรอบการทำก็ง่าย ๆ กว่าที่คิด

  1. ติดตั้ง WSL แต่ละ user ไว้โดยอาจจะติดตั้งใหม่ WSL: PowerShell Installing หรือจะไป mapping กับไฟล์ .vhdx เดิมก็ได้
  2. login user ที่ติดตั้ง WSL ที่จะ share
  3. เปิดโปรแกรม regedit โดยไปที่เมนูของ windows พิมพ์ regedit.exe ในช่อง run หรือ search แล้ว enter
  4. ไปที่
    Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\
    จะเห็น folder ข้างในที่เป็น เลขสุ่ม เช่น HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{2d42cb50-bbf8-497a-950d-edb1cbebd24c}
  5. ไปที่ String Value ที่ชื่อ BasePath แล้ว copy ค่าข้างใน เช่น
    \?\C:\Users\Shared\WSLs\Ubuntu
    หรือใน path จะมีค่าเท่ากับ
    C:\Users\Shared\WSLs\Ubuntu\ext4.vhdx
    เก็บไว้
  6. login user ที่ติดตั้ง WSL ที่เปลี่ยนมาใช้ OS หรือ Virtual Hard Disk ตัวที่เก็บ path ไว้
  7. เปิดโปรแกรม regedit โดยไปที่เมนูของ windows พิมพ์ regedit.exe ในช่อง run หรือ search แล้ว enter
  8. ไปที่
    Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\
    จะเห็น folder ข้างในที่เป็น เลขสุ่มที่ไม่เหมือนเดิม
  9. ไปที่ String Value ที่ชื่อ BasePath แล้วเอาค่าที่ copy ไว้มาแทนที่
  10. ไปที่ path ตัว Virtual Hard Disk ( C:\Users\Shared\WSLs\Ubuntu\ext4.vhdx ) แล้วแก้ permissions ให้ user ที่ต้องการสามารถอ่าน เขียนได้
  11. ทำซ้ำขั้นตอนที่ 6 จนกว่าจะครบทุก users
  12. restart windows

เช็คแต่ละ user ว่าสามารถใช้ share OS ได้มั๋ย โดย Error ที่เจอ เช่น

  • Failed to attach disk C:\Users\Shared\WSLs\Ubuntu\ext4.vhdxto 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 ค้างเอาไว้

อ่านเพิ่มเติม