แก้ไขระบบย่อย Windows สำหรับข้อผิดพลาด ปัญหาและปัญหาของ Linux

เช่นเดียวกับซอฟต์แวร์ทั้งหมดระบบย่อย Windows (WSL2)ก็มีปัญหาร่วมกันพอสมควร ในคู่มือนี้ เราจะแก้ไขปัญหาระบบย่อยของ Windows สำหรับ(Windows Subsystem for Linux)ข้อความแสดงข้อผิดพลาดและรหัส ของ Linux

แก้ไขระบบย่อย Windows(Fix Windows Subsystem)สำหรับ ข้อ ผิดพลาด Linux (Linux Errors)ปัญหา(Problems) & ปัญหา(Issues)

ข้อความเหล่านี้เป็นข้อความที่เราจะแก้ไขปัญหาระบบย่อย Windows(Windows Subsystem)สำหรับ ข้อความ แสดง ข้อผิดพลาด และรหัส(Codes)Linux(Linux Error Messages)

  1. ไม่เห็นตัวเลือกสำหรับ WSL 2
  2. ข้อผิดพลาด: 0x1bc
  3. ข้อผิดพลาด: 0x80040306 ในการติดตั้ง
  4. ไม่สามารถเข้าถึง ไฟล์ WSLจาก Windows
  5. ไม่สามารถเริ่มการกระจายWSL 2 และดูเฉพาะ ' (WSL 2)WSL 2 ' ในเอาต์พุต
  6. ไม่พบคำสั่ง
  7. ข้อผิดพลาด: 0x80370102 ไม่สามารถเริ่มเครื่องเสมือนได้เนื่องจากไม่ได้ติดตั้งคุณสมบัติที่จำเป็น
  8. ข้อผิดพลาด: 0x80040154 หลังจากอัปเดตWindows
  9. WSL หยุด(WSL Stops)ทำงานโดยมี  ข้อผิดพลาด 0x80070003(Error 0x80070003)
  10. แสดงการเปลี่ยนภาษาใน WSL
  11. ปัญหาการ ติดตั้ง(Installation)หลังจากกู้คืนระบบWindows
  12. ไม่มีอินเทอร์เน็ตใน WSL
  13. การอนุญาตถูกปฏิเสธเมื่อใช้ Ping
  14. ไม่สามารถบูตได้หลังจากติดตั้งWSL 2
  15. ไม่สามารถเรียกใช้คำสั่ง Windows(Windows Commands)ภายในผู้จัดจำหน่ายได้
  16. ICS ถูกปิดใช้งาน
  17. ทุบตีแขวน
  18. ปัญหาการเชื่อมต่อ OpenSSH-เซิร์ฟเวอร์
  19. ไม่พบแอสเซมบลีอ้างอิง
  20. แก้ไข(Correct)ข้อผิดพลาดการอนุญาต( เกี่ยวกับ SSH )

ให้เราพูดถึงรายละเอียด

1] ไม่เห็นตัวเลือกสำหรับ WSL 2

ผู้ใช้ Windows(Windows)หลายคนบ่นว่าแม้ว่าพวกเขาจะอยู่ที่ 1903 พวกเขาไม่เห็นตัวเลือกสำหรับWSL(WSL 2) 2 สิ่งนี้จะเกิดขึ้นเมื่อเครื่องคอมพิวเตอร์ของคุณยังไม่ได้รับแบ็คพอร์ตสำหรับWSL(WSL 2) 2

ในการแก้ไขปัญหานี้ คุณเพียงแค่ตรวจสอบการอัปเดต( check for updates)แล้วคุณจะพร้อมดำเนินการ

2] ข้อผิดพลาด: 0x1bc

คุณอาจเห็นข้อผิดพลาดต่อไปนี้เมื่อ ไม่ได้ตั้งค่า "ภาษาที่แสดง" (“Display Language” )หรือ  "ตำแหน่งที่ตั้งของระบบ" (“System Locale” )เป็น  ภาษาอังกฤษ(English.)

wsl --set-default-version 2

Error: 0x1bc

For information on key differences with WSL 2 please visit https://aka.ms/wsl2

ในการแก้ไขข้อผิดพลาด คุณต้องตรวจสอบว่ามีการ ติดตั้ง เคอร์เนล(Kernel)ในคอมพิวเตอร์ของคุณหรือไม่ ในการทำเช่นนั้น ใช้คำสั่งต่อไปนี้

dir %SystemRoot%\system32\lxss\tools\kernel

หากคุณไม่มีKernelให้ดาวน์โหลดจากaka.ms อย่าลืมดาวน์โหลดในฐานะผู้ดูแลระบบ และติดตั้งเคอร์เนล(Kernel)ในเครื่องของคุณเพื่อแก้ไขข้อผิดพลาด

3] ข้อผิดพลาด: 0x80040306 ในการติดตั้ง

แก้ไขระบบย่อยของ Windows สำหรับข้อผิดพลาด ปัญหา & ปัญหาของ Linux

หากคุณเห็นข้อผิดพลาด: 0x80040306 ในการติดตั้ง ในการแก้ไขปัญหานี้ คุณต้องปิดใช้  Legacy Console โดยทำตามขั้นตอนที่กำหนด

  1. เปิด  Command Prompt ในฐานะผู้ดูแลระบบจาก  เมนู Start(Start Menu.)
  2. คลิกขวา(Right-click)ที่โลโก้ cmd แล้วเลือกProperties
  3. ตอนนี้ยกเลิกการเลือก" ใช้คอนโซลรุ่นเก่า" (Use legacy console” )แล้วคลิกตกลง

สุดท้าย ให้ตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่

4] ไม่สามารถเข้าถึง ไฟล์ WSLจาก Windows

หากคุณไม่สามารถเข้าถึงระบบย่อย Windows(Windows Subsystem)สำหรับLinuxโดย\\wsl$ บนWindowsอาจหมายความว่าเซิร์ฟเวอร์ไฟล์โปรโตคอล 9P ไม่สามารถเริ่มทำงานได้

การแก้ไขที่ง่ายที่สุดคืออัปเดตคอมพิวเตอร์ของคุณและเปิดใช้งาน "อัปเดตสำหรับผลิตภัณฑ์ Microsoft ใน Windows Update" (“updates for Microsoft products on Windows Update”. )คุณสามารถทำตามขั้นตอนที่กำหนดได้

  1. เรียก  ใช้ การตั้งค่า (Settings )โดย  Win + I.
  2. คลิก  Update & Security > Advanced options.
  3. ใช้สลับเพื่อปิดใช้งาน " รับการอัปเดตสำหรับผลิตภัณฑ์ Microsoft อื่นๆ เมื่อคุณอัปเดต Windows(Receive updates for other Microsoft products when you update Windows) "

การดำเนินการนี้จะแก้ไขปัญหาให้คุณได้

5] ไม่สามารถเริ่มการกระจายWSL 2 และดูเฉพาะ ' (WSL 2)WSL 2 ' ในเอาต์พุต

ข้อผิดพลาดนี้หลีกเลี่ยงไม่ได้หากภาษาที่แสดงของคุณไม่ได้ตั้งค่าเป็นภาษาอังกฤษ คุณจะเห็นผลลัพธ์ต่อไปนี้เมื่อพยายามเริ่มWSL(WSL 2) 2

C:\Users\me>wsl

WSL 2

ในการแก้ไขข้อผิดพลาด คุณต้องดาวน์โหลดและติดตั้งเคอร์เนล(Kernel)ด้วยตนเอง คุณสามารถดาวน์โหลดไฟล์จากaka.ms/wsl2kernelติดตั้งKernelเพื่อแก้ไขข้อผิดพลาดได้อย่างง่ายดาย

6] ไม่พบคำสั่ง

นี่เป็นหนึ่งในข้อผิดพลาดทั่วไปที่เราพบเมื่อเรียกใช้ไฟล์ .exe ของWindowsในLinux คุณอาจเห็นข้อผิดพลาดต่อไปนี้เมื่อพยายามทำเช่นเดียวกัน

$ notepad.exe

-bash: notepad.exe: command not found

สิ่งนี้จะเกิดขึ้นเมื่อ  $PATH ไม่พบไฟล์.exe ทางออกที่ดีที่สุดสำหรับข้อผิดพลาดนี้คือเรียกใช้คำสั่งต่อไปนี้ในTerminal

export PATH=$PATH:/usr/sbin

ทำสิ่งนี้และตรวจสอบว่าสามารถแก้ไขข้อผิดพลาดได้หรือไม่

7] ข้อผิดพลาด: 0x80370102 ไม่สามารถเริ่มเครื่องเสมือนได้เนื่องจากไม่ได้ติดตั้งคุณลักษณะที่จำเป็น

หลายคนพบข้อผิดพลาดนี้เมื่อพยายามติดตั้งผู้จัดจำหน่ายLinux ข้อผิดพลาดนี้มีมากกว่าหนึ่งวิธีไม่เหมือนกับข้อผิดพลาดก่อนหน้านี้ ดังนั้นหัวเข็มขัดขึ้นและอ่านวิธีแก้ปัญหาทั้งหมด

นี่คือสิ่งที่คุณสามารถทำได้เพื่อแก้ไขข้อผิดพลาด: 0x80370102 ไม่สามารถเริ่มเครื่องเสมือนได้เนื่องจากไม่ได้ติดตั้งคุณลักษณะที่จำเป็น

  1. เปิดใช้งาน Hyper-V
  2. เปิดใช้งานการจำลองเสมือนของฮาร์ดแวร์
  3. เปิดใช้งานการจำลองเสมือนที่ซ้อนกัน

ให้เราพูดถึงรายละเอียด

เปิดใช้งาน Hyper-V

หากไม่มีHyper-Vคุณจะไม่สามารถสร้าง Virtual Environmentได้ ดังนั้นเปิดใช้งานด้วยความช่วยเหลือของขั้นตอนต่อไปนี้

  1. เปิด  แผงควบคุม (Control Panel )จาก  เมนูเริ่ม(Start Menu.)
  2. คลิก  Programs and Features > Turn Windows features on or off
  3. เลื่อน(Scroll)ลงเพื่อค้นหาHyper-Vตรวจสอบแล้วคลิกตกลง

หลังจากเปิดใช้งานHyper-V ให้ ตรวจสอบว่าปัญหาได้รับการแก้ไขหรือไม่

เปิดใช้งานการจำลองเสมือนของฮาร์ดแวร์

Hardware Virtualizationเป็นสิ่งจำเป็นเมื่อพยายามเรียกใช้Virtual Machine (Virtual Machine)ดังนั้น หากคุณพบข้อผิดพลาด: 0x80370102 ให้ลองเปิดใช้งาน Hardware Virtualization(enable Hardware Virtualization)จาก BIOS เพื่อแก้ไขปัญหา

เปิดใช้งานการจำลองเสมือนที่ซ้อนกัน

Nested Virtualizationอนุญาตให้คุณเรียกใช้Hypervisorภายใน VM ดังนั้น หากคุณยังคงพบข้อผิดพลาด ให้ลองเปิดใช้ งานNested Virtualization ในการทำเช่นนั้น คุณต้องเรียกใช้PowerShell ในฐานะผู้ดูแลระบบ และเรียกใช้คำสั่งต่อไปนี้

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

ปล่อยให้คำสั่งนี้ทำงานและตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่

8] ข้อผิดพลาด: 0x80040154 หลังจากWindowsอัปเดต

แก้ไขปัญหาระบบย่อย Windows สำหรับข้อความแสดงข้อผิดพลาดและรหัส Linux

คุณอาจเห็นข้อผิดพลาดนี้หากระบบย่อย Windows(Windows Subsystem)สำหรับLinux ถูกปิดใช้ งานเนื่องจากWindows Update ดังนั้น เพื่อแก้ไขปัญหานี้ เราจำเป็นต้องเปิดใช้งานตัวเลือกนี้ โดยทำตามขั้นตอนที่กำหนด

  1. เรียกใช้ การควบคุม (Control )จาก  เมนู(Start Menu.)เริ่ม 
  2. คลิก  Programs and Features > Turn Windows features on or off
  3. เลื่อนลงเพื่อค้นหาWindows Subsystem for Linuxตรวจสอบแล้วคลิกตกลง

สุดท้าย รีสตาร์ทเครื่องคอมพิวเตอร์และตรวจสอบว่าปัญหายังคงมีอยู่หรือไม่

9] WSL หยุด(WSL Stops)ทำงานโดยมี  ข้อผิดพลาด 0x80070003(Error 0x80070003)

หาก WSL หยุดทำงานด้วยรหัสข้อผิดพลาด 0x80070003(error code 0x80070003)ให้แก้ไขด้วยคำแนะนำนี้

10] การเปลี่ยนภาษาที่แสดง ใน (Display)WSL

WSLจะเปลี่ยน ภาษาของ Ubuntu โดยอัตโนมัติ เพื่อให้ตรงกับภาษาของคอมพิวเตอร์Windows ของคุณ (Windows)หากคุณไม่ชอบการเคลื่อนไหวนี้ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่าภาษาที่แสดงตามความต้องการของคุณ

หมายเหตุ: คำสั่งต่อไปนี้จะเปลี่ยนภาษาเป็น en-US

sudo update-locale LANG=en_US.UTF8

ทำสิ่งนี้และตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่

11] ปัญหาการ ติดตั้ง(Installation)หลังจากกู้คืนระบบWindows

หากคุณประสบ ปัญหาในการ ติดตั้ง(Installation)หลังจาก กู้คืนระบบ Windowsให้ลองลบโฟลเดอร์Windows Subsystem for Linux (Windows Subsystem for Linux )ต่อไปนี้เป็นเส้นทางของมัน

%windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux

รีสตาร์ทเครื่องคอมพิวเตอร์ ติดตั้งBash ใหม่ และตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่

12] ไม่มีอินเทอร์เน็ตใน WSL

ผู้ใช้หลาย คนรายงานว่าไม่สามารถเข้าถึงอินเทอร์เน็ต(Internet)ในWSL อย่างไรก็ตาม วิธีแก้ปัญหาอาจง่ายกว่าที่คุณคิด สิ่งนี้เกิดขึ้นเนื่องจากโปรแกรมป้องกันไวรัสของบริษัทอื่นที่คุณอาจมี เนื่องจากไฟร์วอลล์บล็อกอินเทอร์เน็ต (Internet)ดังนั้นเพื่อแก้ไขปัญหานี้ ให้ลบแอนติไวรัสออก แล้วคุณจะไปได้ดี

13] การ อนุญาต(Permission)ถูกปฏิเสธเมื่อใช้ Ping

หากคุณไม่สามารถ Ping ในWSL ได้ แสดง ว่าคุณไม่มีสิทธิ์ระดับผู้ดูแลระบบ ดังนั้น คุณต้องเรียกใช้UbuntuและLinuxด้วยสิทธิ์ระดับผู้ดูแลหรือBash.exeบนล่ามบรรทัดคำสั่งที่มีสิทธิ์ระดับผู้ดูแลระบบ

หวังว่าสิ่งนี้จะแก้ไขปัญหาได้อย่างง่ายดาย

14] ไม่สามารถบูตได้หลังจากติดตั้งWSL 2

สาเหตุที่คุณไม่สามารถบูตได้หลังจากติดตั้งWSL 2   ยังคงเป็นเรื่องแปลก แต่Microsoftพยายามดำเนินการอัปเดตเพื่อวินิจฉัยปัญหาอย่างเต็มที่ อย่างไรก็ตาม มีสองสิ่งที่คุณสามารถทำได้และดูว่าสามารถแก้ไขปัญหาได้หรือไม่

15] ไม่สามารถเรียกใช้คำสั่งของ Windows(Windows Commands)ภายในผู้จัดจำหน่ายได้

มีผู้จัดจำหน่ายไม่กี่รายในWindows Storeที่ไม่ได้รับการปรับให้เหมาะสมอย่างสมบูรณ์เพื่อเรียกใช้คำสั่ง Windows(Windows Commands)ทั้งหมด คุณอาจได้รับข้อผิดพลาดใด ๆ ต่อไปนี้

-bash: powershell.exe: command not found
powershell.exe /c start

เพื่อแก้ไขข้อผิดพลาดนี้ เรียกใช้คำสั่งต่อไปนี้

echo $PATH

ตอนนี้ ให้ตรวจสอบว่าผลลัพธ์มี“/mnt/c/Windows/system32”หรือไม่ หากคุณพบข้อผิดพลาด แสดงว่าเส้นทางส่วนใหญ่ไม่อยู่ที่นั่น

ตอนนี้ ตรวจสอบการตั้งค่าโปรไฟล์ของคุณโดย

cat /etc/profile

ตอนนี้ ตรวจสอบว่าการ กำหนด เส้นทาง(Path)ขึ้นต้นด้วย“#”หรือไม่ ถ้าใช่ ให้แสดงความคิดเห็นในบล็อก ตรวจสอบว่าwsl.confมีอยู่หรือไม่ และตรวจสอบว่าไม่มีappendWindowsPath=falseไฟล์ . ถ้าเป็นเช่นนั้นแสดงความคิดเห็นออก

หลังจากทำเช่นนี้ คุณต้องเริ่มการแจกจ่ายใหม่ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อทำเช่นนั้น

wsl -t <name of the distributor>

หรือ

wsl --shutdown

หวังว่าปัญหาจะได้รับการแก้ไข

16] ICS ถูกปิดใช้งาน

WSL ไม่สามารถทำงานได้หากไม่มีICS หรือ Internet Connection(ICS or Internet Connection Sharing) Sharing บริการ เครือ  ข่ายโฮสต์ (HNS) (Host Network Service (HNS) )ใช้ICSเพื่อสร้างเครือข่ายเสมือนพื้นฐานสำหรับWSL 2เพื่อสร้างNAT , DNS , DHCPและการแชร์การเชื่อมต่อโฮสต์

เพื่อแก้ไขข้อผิดพลาด เราต้องเปิดใช้งานICS ดังนั้น ทำตามขั้นตอนที่กำหนดเพื่อเปิดใช้งานICS

  1. เปิด  บริการ (Services )จาก  เมนูเริ่ม(Start Menu.)
  2. ดับเบิลคลิกที่Internet Connection Sharing (ICS) และคลิก  Start หากหยุดทำงาน
  3. สุดท้าย คลิก  Apply > Ok.

คุณควรแก้ไขนโยบายบางอย่างด้วย ดังนั้นให้เปิดตัว  แก้ไขนโยบายกลุ่ม (Group Policy Editor )และไปที่ตำแหน่งต่อไปนี้

Computer Configuration > Administrative Templates > Network > Network Connections

และปิดการใช้งานนโยบายต่อไปนี้

  • ห้าม(Prohibit)ติดตั้งและกำหนดค่าNetwork Bridgeบนเครือข่ายโดเมนDNS ของคุณ(DNS)
  • ห้ามใช้ไฟร์วอลล์การเชื่อมต่ออินเทอร์เน็ต(Internet Connection Firewall)บนเครือข่ายโดเมนDNS ของคุณ(DNS)
  • ห้ามใช้Internet Connection Sharing บนเครือข่ายโดเมนDNS ของคุณ(DNS)
  • กำหนดให้(Require)ผู้ใช้โดเมนยกระดับเมื่อตั้งค่าตำแหน่งของเครือข่าย

17] ทุบตีแขวน

เมื่อBashหยุดทำงานหรือชะงักงันและหยุดตอบสนองต่ออินพุตของคุณ คุณสามารถรีสตาร์ทเครื่องเพื่อแก้ไขข้อผิดพลาดหรือรายงานการถ่ายโอนข้อมูลหน่วยความจำ อย่างหลังอาจนำไปสู่ความผิดพลาดของระบบ ดังนั้น ให้บันทึกงานของคุณก่อนที่จะรายงาน

18] ปัญหาการเชื่อมต่อ OpenSSH-Server

หากคุณพบปัญหาการเชื่อมต่อ OpenSSF-Server สิ่งแรกที่คุณต้องทำคือตรวจสอบว่าOpenSSH-Serverกำลังทำงานอยู่หรือไม่ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อทำเช่นนั้น

sudo service ssh status

หากไม่ได้ทำงานอยู่ ให้ใช้คำสั่งต่อไปนี้เพื่อเริ่มบริการ

sudo service ssh start

หากทำงานอยู่ คุณควรเริ่มบริการใหม่โดยใช้คำสั่งต่อไปนี้ และตรวจสอบว่าสามารถแก้ไขปัญหาได้หรือไม่

sudo service ssh restart

หากไม่สามารถแก้ไขปัญหาได้ ให้ลองเริ่มSSHDในโหมดแก้ไขข้อบกพร่อง ก่อนหน้านั้น ใช้คำสั่งต่อไปนี้เพื่อหยุดบริการSSH

sudo service ssh stop

ตอนนี้ ใช้คำสั่งต่อไปนี้เพื่อเริ่มSSHDในโหมดดีบัก

sudo /usr/sbin/sshd -d

หวังว่านี่จะช่วยแก้ไขข้อผิดพลาด

19] ไม่พบชุดประกอบอ้างอิง

ผู้ใช้หลายคนพบ"ไม่พบแอสเซมบลีที่อ้างอิง"(“The referenced assembly could not be found”)เมื่อพวกเขาพยายามเปิดใช้งานคุณลักษณะเพิ่มเติมของWSL หากคุณเป็นหนึ่งในนั้น ให้ลองเปิดใช้งานWindows Subsystem สำหรับ Linux (Windows Subsystem for Linux )จากแผงควบคุม(Control Panel)และอัปเดตคอมพิวเตอร์ของคุณ หวังว่า(Hopefully)มันจะแก้ไขข้อผิดพลาด

20] แก้ไข(Correct)ข้อผิดพลาดการอนุญาต( เกี่ยวกับ SSH )

หากคุณเห็นข้อผิดพลาดต่อไปนี้ ให้เธรดหัวข้อนี้เพื่อดูวิธีแก้ปัญหา

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.

ในการแก้ไขปัญหานี้Microsoftแนะนำให้คุณไปที่ ไฟล์ /etc/wsl.conf และผนวกสิ่งต่อไปนี้:

[automount]
enabled = true
options = metadata,uid=1000,gid=1000,umask=0022

นี้จะแก้ไขข้อผิดพลาด ก่อนทำสิ่งนี้ ตรวจสอบให้แน่ใจว่าคุณได้รับอนุญาตเพียงพอ

นี่คือบางส่วนของระบบย่อย Windows(Windows Subsystem)สำหรับข้อความแสดงข้อผิดพลาด(Linux Error Messages)และรหัส(Codes) ของ Linux และคำแนะนำในการแก้ปัญหา เราหวังว่าสิ่งเหล่านี้จะช่วยคุณแก้ไขข้อผิดพลาดปัญหา(Problems)และปัญหา(Issues)ของ WSL



About the author

ฉันเป็นผู้เชี่ยวชาญด้านคอมพิวเตอร์และทำงานกับคอมพิวเตอร์มาหลายปีแล้ว ฉันมีประสบการณ์กับทั้ง Apple iPhone และ Microsoft Windows 10 ทักษะของฉัน ได้แก่ การใช้คอมพิวเตอร์เพื่อสร้าง เข้ารหัส และจัดเก็บข้อมูล การค้นหาและแก้ไขข้อบกพร่องในซอฟต์แวร์ และการแก้ไขปัญหา ฉันมีความรู้ในทุกด้านของการใช้คอมพิวเตอร์ รวมถึง Apple iOS, Microsoft Windows 10, การป้องกันแรนซัมแวร์ และอื่นๆ ฉันมั่นใจว่าทักษะของฉันจะเป็นประโยชน์ต่อธุรกิจหรือองค์กรของคุณ



Related posts