Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows

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

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

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

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

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

เรามาพูดถึงรายละเอียดกันดีกว่า

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

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

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

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

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

wsl --set-default-version 2

Error: 0x1bc

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

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

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

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

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

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

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

  1. เปิด พรอมต์คำสั่ง  ในฐานะผู้ดูแลระบบจาก เมนูเริ่ม
  2. คลิกขวาที่โลโก้ cmd แล้วเลือก คุณสมบัติ
  3. ตอนนี้ ยกเลิกการเลือก ใช้คอนโซลรุ่นเก่า”  แล้วคลิกตกลง

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

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

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

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

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

  1. เปิด การตั้งค่า  โดย ชนะ + ฉัน
  2. คลิก อัปเดตและความปลอดภัย> ตัวเลือกขั้นสูง
  3. ใช้ปุ่มสลับเพื่อปิดใช้งาน “รับการอัปเดตสำหรับผลิตภัณฑ์ Microsoft อื่นๆ เมื่อคุณอัปเดต Windows “.

วิธีนี้จะช่วยแก้ปัญหาให้คุณได้

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

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

C:\Users\me>wsl

WSL 2

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

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

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

$ notepad.exe

-bash: notepad.exe: command not found

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

export PATH=$PATH:/usr/sbin

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

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

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

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

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

เรามาพูดถึงรายละเอียดกันดีกว่า

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

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

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

  1. เปิด แผงควบคุม  จาก เมนูเริ่ม
  2. คลิก โปรแกรมและคุณลักษณะ> เปิดหรือปิดคุณลักษณะของ Windows
  3. เลื่อนลงเพื่อค้นหา Hyper-V ตรวจสอบแล้วคลิกตกลง

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

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

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

เปิดใช้งานการจำลองเสมือนแบบซ้อน

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

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

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

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

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

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

  1. เปิด การควบคุม  จาก เมนูเริ่ม
  2. คลิก โปรแกรมและคุณลักษณะ> เปิดหรือปิดคุณลักษณะของ Windows
  3. เลื่อนลงเพื่อค้นหา ระบบย่อย Windows สำหรับ Linux ตรวจสอบแล้วคลิกตกลง

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

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

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

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

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

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

sudo update-locale LANG=en_US.UTF8

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

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

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

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

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

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

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

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

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

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

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

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

  • ใช้ System Restore Point เพื่อแก้ไขข้อผิดพลาด
  • อัปเดตไดรเวอร์กราฟิกของคุณและดูว่าสามารถแก้ไขปัญหาได้หรือไม่

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

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

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

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

echo $PATH

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

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

cat /etc/profile

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

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

wsl -t <name of the distributor>

หรือ

wsl --shutdown

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

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

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

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

  1. เปิดตัว บริการ  จาก เมนูเริ่ม
  2. ดับเบิลคลิกที่ Internet Connection Sharing (ICS),  และคลิก เริ่ม  ถ้ามันหยุด
  3. สุดท้าย คลิก ใช้> ตกลง

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

Computer Configuration > Administrative Templates > Network > Network Connections

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

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

17] Bash หยุดทำงาน

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

18] ปัญหาการเชื่อมต่อเซิร์ฟเวอร์ OpenSSH

หากคุณพบปัญหาการเชื่อมต่อ 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] ไม่พบแอสเซมบลีอ้างอิง

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

20] แก้ไขข้อผิดพลาดการอนุญาต (ที่เกี่ยวข้องกับ 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 สำหรับข้อความแสดงข้อผิดพลาดและรหัสของ Linux และคำแนะนำในการแก้ปัญหา เราหวังว่าสิ่งเหล่านี้จะช่วยคุณแก้ไขข้อผิดพลาด ปัญหา และปัญหาของ WSL

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